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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: