Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Решение уравнения методом простых итераций



Теперь рассмотрим более общий итерационный процесс, т. е. метод последовательных приближений, частным случаем которого является и метод Ньютона. Исходное уравнение представим в виде:

x=g(x), где g(x)=f(x)+x.

Рассмотрим последвательность значений x, которая определяется следующим образом:

x(n+1)=g(x(n)), x0 задано.

Из теории вычислительной математики следует, что этот метод сходится тогда, когда |g'(x)|<1, т. е. метод применим, если производная указанной функции не принимает на отрезке поиска корня значения, превышающего по модулю 1. Вычисления необходимо произвести n>=(lg(q/(b-a))/lg(q) раз.

function NeedFunc(x: Double): Double;
begin
Result:= Sin(x) + 0.25;//здесь указывается нужная ф-ия
end;

function SimpleIter(nachpribl, eps: Double): Double;
var
Pribl1, Pribl2: Double;
begin
Pribl2:= nachpribl;
repeat
Pribl1:= Pribl2;
Pribl2:= NeedFunc(Pribl1);
until Abs(Pribl1 - Pribl2) <= eps;
Result:= Pribl2;
end;

program ITERAT;
uses crt;

const max_iter=100; {максимальное количество итераций}

var
i:integer;
x,x0,eps,M:real;

function F(x:real):real; {функция}
begin
F:=5*x*x-exp(1-x)-4;
end;

begin {основная программа}
clrscr;
write('Введите приближенное значение x='); readln(x);
write('Введите точность вычислений eps='); readln(eps);

i:=0;
repeat
M:=-(F(x+eps)-F(x-eps))/(2*eps); {коэффициент для улучшения сходимости}
x0:=x;
x:=x0+F(x0)/M; {сердце метода итераций}
inc(i);
writeln('--- Итерация ',i:3,' x=',x);
writeln('F(x)=',F(x),' точность=',abs(x-x0));
until (abs(x-x0)<=eps)or(i>max_iter);

if (abs(x-x0)<=eps) then writeln('Ответ: X=',x)
else writeln('Ответ не найден! За ',max_iter:0,' шагов итерация не сошлась.');

end.

Чтобы получить метод простых итераций, уберите строчку:

Код

M:=-(F(x+eps)-F(x-eps))/(2*eps); {коэффициент для улучшения сходимости}

И вместо строчки:

Код

x:=x0+F(x0)/M; {сердце метода итераций}

Наберите:

Код

x:=x0+F(x0); {сердце метода итераций}





Дата публикования: 2015-04-07; Прочитано: 150 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.008 с)...