Вторая пачка часть 80
Вы¬¬ход¬ные: i (тип integer) - количество вы-пол¬нен¬ных ите¬рବций; ih (тип integer) - укବзатель причины око¬н¬¬ча¬ния процесса вы¬числений: если ih = 0, то корень ура⬬¬нения найден с за¬дан¬ной точностью; если ih = 1, то итерации не сходятся к кор¬ню уравнения, и это знବчит, что на отрезке [а,b] не вы¬пол¬няется ус¬ло¬вие теоремы; если ih = 2, то количество со¬вер¬¬шен¬¬ных итераций превзошло максимально до¬пус¬т謬мое чис¬ло N, что говорит ли¬бо о плохом на¬чаль¬ном при¬бли-жении, либо о ма¬лости величины |F'(х)| в ок¬рест-нос¬ти кор¬ня; x (тип real) - вы¬численное знବче¬ние корня.
PROCEDURE NEWT (N: INTEGER; X0,EPS:REAL;
VAR I,IH:INTEGER; VAR X:REAL);
VAR DEL,XS,DEL0,Y: REAL;
BEGIN DEL0 := 1.E12;
XS := X0; I := 0;
IH := 0;
REPEAT Y := FUNCP (XS);
X := XS - FUNC (XS) / Y;
DEL := ABS ( X - XS);
IF DEL <= DEL0 THEN
BEGIN
IF I>N THEN
BEGIN
IH := 2; EXIT;
END;
INC(I); XS := X;
DEL0 := DEL;
END
ELSE
BEGIN
IH := 1;
EXIT;
END;
UNTIL DEL < EPS;
END.
Для проверки процедуры решалось урав-не¬ние
F(х) = еx — 10х.
Все вычисления выполнялись с точ¬нос¬тью до 10-4. Оче¬видно, что это уравнение не может быть ре¬ше¬но ана¬ли¬ти¬ческими методами.
Корни уравнения ?1 и??? лег¬ко опре¬де-лить грବ¬фи¬чес¬ки (рис. 1.3). Ес¬ли пре¬об¬ра¬звать ис¬¬ход¬ное урав¬нение к виду y = еx; y= 10х, то пе𬬬¬вый ко¬рень будет ле¬жать на отрезке [0, 1], а вто¬рой - [3, 4]. Оп¬ре¬де¬лим ??. Для этого оценим приз¬во䬬ные F'(х) и F"(х) на на鬬ден¬¬ных от¬рез-ках:
F'(х) = еx - 10; F"(х) = -еx .
Очевидно, что F"(х) со¬хра¬ня¬ет свой знак во всей оᬬ¬¬лас¬ти оп¬ределения, в том числе и на ука¬зан-ных от¬¬¬резках. При этом
Если требуемая точность 0.0001, то в условии окон¬¬чания процесса:
;
В качестве начального приближения на от¬ре第ке [0, 1] выбираем х0 = 0, а на отрезке [3, 4] - х0 = 3.
Процедуры-функции FUNC и FUNCP будут вы¬гля¬¬деть следующим образом:
FUNCTION FUNC (X:REAL): REAL;
BEGIN
F UNC := 10
Индекс
Элементарные функции
Линейные уравнения
Нелинейные уравнения
Случайные числа