* Данный текст распознан в автоматическом режиме, поэтому может содержать ошибки
Язык программирования системы Maple
1061
x0 := 2.360830634 x0 := 2.356194357 x0 := 2.356194490 x0 := 2.356194490 x0 := 2.356194490 Нетрудно заметить, что, испытав скачок в начале решения, значения x доволь но быстро сходятся к конечному результату, дающему корень заданной функции. Последние три итерации дают одно и то же значение x. Заметим, что этот метод дает только одно решение, даже если корней несколько. Вычислить другие корни в таком случае можно, изменив начальное условие. Можно попробовать с помощью полученной процедуры получить решение и для другой функции:
> expr:=ln(x^2)-0.5;
expr := ln(x2) – .5
> F:=NI(expr,x);
>> x0:=0.2;
x0 := .2
> to 8 do x0:=F(x0);od;
x0 := .5718875825 x0 := 1.034437603 x0 := 1.258023119 x0 := 1.283760340 x0 := 1.284025389 x0 := 1.284025417 x0 := 1.284025416 x0 := 1.284025417 Здесь итерационная формула имеет (и вполне естественно) уже другой вид, но сходимость к корню также обеспечивается за несколько итераций. Возможна и иная форма задания итерационной процедуры с применением оператора дифференцирования D и заданием исходной функции также в виде процедуры:
> MI:=proc(f::procedure) > (x->x)-eval(f)/D(eval(f)); > end; > g:=x->x-cos(x); > SI:=MI(g);
MI := proc(f::procedure)(x > x) – eval(f)/D(eval(f)) end proc g := x > x – cox(x)
> x0:=0.1;
x0 := .1