|
Иллюстрация
итерационного решения уравнения f (х) = х
Классическим методом решения нелинейных
уравнений является сведение их к виду х =f(x) и применение
метода простых итераций xk =s(xk-1) при заданном значениих0.
Приведем пример такого решения:
>f
:=x ->3*1n(x+l);
f:=x->
3ln(x+1)
>x||0 := 0.5:
x0:=5
>x0 := .5;
x0:=.5
>for k from 1 to 16 do x||k := evalf( f(x||(k-l) )): od;
xl := 1.216395324
x2 := 2.387646445
x3
:= 3.660406248
x4:=
4.617307866
x5:=
5.177557566
x6:=
5.462768931
x7:=
5.598173559
x8:=
5.660378631
x9
:= 5.688529002
xl0:=
5.701181910
x11
:= 5.706851745
x12
:= 5.709388956
x13:=
5.710523646
x14
— 5.711030964
xl5:=
5.711257755
x16:=
5.711359134
Нетрудно заметить, что значения
xk в ходе итераций явно сходятся к некоторому значению. Проведем
проверку решения, используя встроенную функцию solve:
Результат выглядит необычно — помимо
довольно "очевидного корнях x= 0 значение другого корня получено в виде
специальной функции Ламберта. Впрочем, нетрудно найти и его численное значение:
> evalf(%);
0., 5.711441084
Однако как сделать процесс решения
достаточно наглядным? Обычно для этого строят графики двух зависимостей — прямой
х и кривой f(x) — и наносят на них ступенчатую линию перемещения точки xk.
Специальной функции для графиков подобного рода Maple 7 не имеет. Однако можно
составить специальную процедуру для их построения .Ее листинг, заимствованный
из примера, описанного в пакете обучения системе Maple 7 - PowerTools, представлен
ниже:
Параметрами этой процедуры являются:
f1 — функция f(x); а и b — пределы
изменениях при построении графика; х0 — значение х, с которого начинаются итерации.
Исполнив команду:
>rec_p1ot(
f(x), 0, 8, х0):
можно наблюдать график, иллюстрирующий
итерационный процесс. Он представлен на рис. 12.45.
Рис. 12.45.
Иллюстрация процесса итераций
Нетрудно заметить, что для данной
функции процесс итераций хотя и не очень быстро, но уверенно сходится к точке
пересечения прямой у = х и кривой y=f(x). Вы можете, меняя
зависимость f(x), провести исследования сходимости уравнений х
= f(x).
|