метод итераций
Добавлено: 09.02.2012 00:37:26
Ну что ж, ладно, с интерактивным вводом выражений и извратными кодами поразбирались
Теперь проблема немного другая. Вот код с реализацией решения уравнения вида f(x)=0 методом итераций на интервале [0;0.85] c с точностью 0.0001 (вернее это задано по условию задачи). Уравнение, соответственно содержится в подпрограмме f. В чем-то ошибка. Не считается X в процедуре iter. Можете подсказать в чем?
Теперь проблема немного другая. Вот код с реализацией решения уравнения вида f(x)=0 методом итераций на интервале [0;0.85] c с точностью 0.0001 (вернее это задано по условию задачи). Уравнение, соответственно содержится в подпрограмме f. В чем-то ошибка. Не считается X в процедуре iter. Можете подсказать в чем?
- Код: Выделить всё
program lab2_1_2;
var x,e,a,b: real;
function f(x:real): real;
begin
f:=x-(1/(3+sin(3.6*x)));
end;
procedure prov(x: real); {проверяет, соответствует ли первая производная условию}
begin
if (abs(1-((3.6*cos(3.6*x))/((sin(3.6*x)+3)* (sin(3.6*x)+3))))>1) then
begin
writeln ('error');
readln;
halt;
end
else writeln ('ответ: ', x);
readln;
end;
function iter (a,b,e: real): real;
var x,x0: real;
begin
x:=a;
repeat
x0:=x;
x:=x0+f(x0);
until (abs(x-x0)<=e);
writeln ('x= ', x);
iter:= x;
end;
begin {main}
write ('a= ');
readln (a);
write ('b= ');
readln (b);
write ('e= ');
readln (e);
prov (iter (a,b,e));
readln;
end.