Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.12.2011, 22:14   #1
nik-kang
Пользователь
 
Регистрация: 30.01.2009
Сообщений: 15
По умолчанию Метод итераций

Требуется написать программу для 2-х функций f(x) = x^2 и f(x) = sqrt(x)
Алгоритм для метода прилагается:


Пишу модуль:

unit Unit2;

interface
function F(x: real): real;
function IterF(a,b,e:real): real;
function G(x: real): real;
function IterG(a,b,e:real): real;

implementation

function f(x: real): real;
begin
result:=sqr(x);
end;

function IterF(a,b,e:real): real;
var h, x, y, m, c, x0, x1: real;
begin
h:=(b-a)/100;
x0:=(a+b)/2;
x:=a;
y:=a+h;
m:=Abs(F(y)-F(x))/h;
while y < b do
begin
x:=y;
y:=x+h;
c:=Abs(F(y)-F(x))/h;
if c > m then
m:=c;
end;
m:=m+1;
if f(a) < f(b) then
c := 1
else
c := -1;
x1:=x0-c*f(x0)/m;
while abs(x1-x0) > e do
begin
x0:=x1;
x1:=x0-c*F(x0)/m;
end;
result:=x1;
end;

function g(x: real): real;
begin
result:=sqrt(x);
end;

function IterG(a,b,e:real): real;
var h, x, y, m, c, x0, x1: real;
begin
h:=(b-a)/100;
x0:=(a+b)/2;
x:=a;
y:=a+h;
m:=Abs(G(y)-G(x))/h;
while y < b do
begin
x:=y;
y:=x+h;
c:=Abs(G(y)-G(x))/h;
if c > m then
m:=c;
end;
m:=m+1;
if G(a) < G(b) then
c := 1
else
c := -1;
x1:=x0-c*G(x0)/m;
while abs(x1-x0) > e do
begin
x0:=x1;
x1:=x0-c*G(x0)/m;
end;
result:=x1;
end;

end.

Но при вводе например данных в функцию f(x) = sqrt(x)
a: 0.1
b: 2
e: 0.001

выходит сообщение "Invalid floating point operation"
В чем ошибка?
nik-kang вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
метод итераций klubnika Помощь студентам 15 27.06.2011 13:19
Метод итераций sgvampir Помощь студентам 2 15.01.2011 16:12
Безумно сложные задачки!!!! Метод Гаусса, итераций, метод половинного деления, задача Коши и т.д. Хомяк!!!!! Помощь студентам 4 08.07.2009 10:08
Метод итераций и метод Зейделя prikolist Общие вопросы C/C++ 40 18.06.2009 17:40
Метод итераций и комбинированный метод prikolist Общие вопросы C/C++ 2 16.06.2009 20:51