- •Математические модели и численные методы
- •Структура погрешности при решении задачи на эвм
- •Решение уравнений с одной переменной Постановка задачи
- •Отделение корней
- •I. Графический способ отделения корней
- •II. Отделения корней программным способом.
- •Уточнение корней
- •Метод половинного деления
- •Метод хорд
- •Метод касательных
- •Метод простой итерации
- •Оценка погрешности метода итераций
- •Преобразование к итерационному виду
- •Решение системы линейных алгебраических Постановка задачи
- •Метод Гаусса
- •Метод простой итерации
- •Решение слу методом Зейделя
- •Интерполирование функций Постановка задачи
- •Интерполяционный многочлен Лагранжа
- •Интерполяционный многочлен Ньютона для равноотстоящих узлов
- •Первая интерполяционная формула Ньютона
- •Вторая интерполяционная формула Ньютона
- •Численное дифференцирование
- •Вычисление производной по определению
- •Вычисление производной на основе интерполяционного многочлена Лагранжа
Метод простой итерации
Заменим уравнение F(x)=0 равносильным уравнением x = f(x).
Теорема.
Пусть уравнение x=f(x) имеет единственный корень на отрезке [a,b] и выполнены условия:
функция f(x) определена и дифференцируема на отрезке [a,b];
x [a,b] f(x) [a,b]
q x[a,b] |f’(x)|q<1
Тогда итерационная последовательность xn=f(xn-1) (n=1,2,...) сходится при любом начальном члене x0[a,b].
Таким образом, наша задача: преобразовать уравнение F(x)=0 к виду x = f(x), удовлетворяющему условиям теоремы 1-3 (хотя итерационная последовательность может сходиться и при невыполнении некоторых условий).
В зависимости от вида функции сходимость может происходить ступеньками либо по спирали.
y
y=x
y
y=x
f(x2)
y=f(x)
f(x1)
y=f(x)
f(x0)
f(x1)
f(x2)
f(x0)
O
x
x0
x1
x2
x3
O
x
x0
x1
x2
x3
Оценка погрешности метода итераций
Пусть xn – приближение к истинному значению x* корня уравнения x=f(x).
Абсолютная ошибка xn=|x*-xn|.
Для оценки погрешности n-го приближения используется формула . Приняв за нулевое приближение xn-1 и учитывая, что при 0<q<1 будет qn<q, для оценки погрешности n-го приближения можно использовать формулу .
Значение q можно получить как верхнюю грань модуля производной |f’(x)| при x[a,b]. Чем q меньше, тем быстрее сходится ряд.
Чтобы достаточно потребовать , откуда получим условие окончания счета
Преобразование к итерационному виду
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,ε,q
n:=0
|p|<a
Вывод
x, n
конец
+
n:=n+1 y:=f(x) p:=x-y x:=y
|
Введите начальное приближение - x: -2 Введите требуемую погрешность - e: .0001 Введите - q: .82 Приближенное значение корня - Х = -1.7963237043E+00 Число итераций - N = 7
|