Преобразование к итерационному виду

1) Универсальный способ приведения уравнения F(x)=0 к виду x=f(x).

Уравнение F(x)=0 приводится к равносильному уравнению x = x – m F(x), таким образом, f(x) = x – m F(x).

Исходя из третьего условия теоремы: ($q) ("xÎ[a,b]) [ |f’(x)|£q<1] следует, что должно выполняться неравенство: 0 < |1– mF’(x)| < 1.

Достаточно подобрать m так, чтобы выполнялось неравенство 0<mF’(x)<1, откуда следует и .

Тогда q можно принять .

Примечания:

· Если ("xÎ[a,b]) f’(x)<0, то вместо уравнения F(x)=0 переходим к равносильному уравнению: – F(x)=0 .

· Если при приведении уравнения F(x)=0 к итерационному виду x=f(x) получилось, что "xÎ[a,b] |f’(x)|>1, то от функции вида y=f(x)переходят к функции x=g(y), обратной для f(x). При этом рассматривается уравнение y=g(y) или x=g(x), причем по свойству обратных функций .

2) Иногда удается преобразовать уравнение F(x)=0 к виду x=f(x) более простым способом, выразив x из уравнения.


Программа решения уравнения методом итераций:

program met_iter;

var x,y,e,q,a,p:real;

N:integer;

function f(x: real):real;

begin {записать, функцию в виде

f:=[математическое выражение], где f(x) удовлетворяет условиям сходимости итерационного процесса}

f:=x-1/11*(x*x*x-x+4)

end;

begin

write('Введите начальное приближение - x: ');readln(x);

write('Введите требуемую погрешность - e: ');readln(e);

write('Введите - q: '); readln(q);

a:=e*(1-q)/q;

N:=0;

repeat N:=N+1; y:=f(x);

p:=x-y; x:=y

until abs(p)<=a;

writeln('Приближенное значение корня - Х = ',x);

writeln('Число итераций - N = ',N);

readln

end.

Блок-схема метода итераций: Результаты выполнения программы:
 
 
 

 

Введите начальное приближение - x: -2 Введите требуемую погрешность - e: .0001 Введите - q: .82 Приближенное значение корня - Х = -1.7963237043E+00 Число итераций - N = 7