Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по численным методам.doc
Скачиваний:
258
Добавлен:
02.05.2014
Размер:
4.81 Mб
Скачать

Решение нелинейных уравнений и систем нелинейных уравнений

Метод простых итераций

Порядок выполнения лабораторной работы:

  1. Найти нулевое приближение решения;

  2. Преобразовать систему f(x) = 0 к виду х = Ф(х);

  3. Проверить условие сходимости метода.

Схема алгоритма приведена на рисунке 20.

Пример. Решить методом простых итераций систему

В качестве нулевого приближения выберем точку х=1, у = 2.2, z= 2. Преобразуем систему к виду

Текст программы:

PROCEDURE Iteraz;

Var I,J,K,J1 : Integer;

S,U,U1 : Real;

X2,X3,Eps : Real;

R : tvector;

Begin

Eps:=0.01; X2:=0.0; K:=1;

Repeat

For J:=1 To Nn Do Begin

S:=0.0;

For I:=1 To Nn Do Begin S:=S+Aa[i,j]*Xx[i]; End;

R[j]:=S; End;

For J1:=1 To Nn Do Begin Xx[j1]:=R[j1]; End; X3:=Xx[1];

For I:=1 To Nn Do Begin If (Xx[i]>=X3) Then X3:=Xx[i]; Еnd;

For I:=1 To Nn Do Begin Xx[i]:=Xx[i]/X3; End;

X1:=X3; U:=Abs(X2-X1); U1:=U/Abs(X1);

If (U1>=Eps) Then X2:=X1;

K:=K+1;

Until ((K>=50)or(U1<=1e-4)) End;

Вычисления по программе привели к следующим результатам:

X(1)= 1.1132 Х(2)= 2.3718 Х(3)= 2.1365

Количество итераций:5

Рисунок 20 - Схема алгоритма метода простых итераций

Метод Ньютона

Программу можно использовать для решения систем не выше десятого порядка.

Входные параметры: n— число уравнений системы (совпадает с числом неизвестных),n£10; х—массив изnдействительных чисел, содержащий начальное приближение решения;f— имя внешней процедурыf(n, х, у), вычисляющей по заданным значениям х, расположенным в элементах массива х, текущие значения функцииfи размещающей их в элементах массива у;g— имя внешней процедурыg(n,x,d), вычисляющей по заданным значениям х из массива х элементы матрицы,которая размещается в массивеdразмерностиnxn;eps— значение условия окончания итерационного процесса.

Выходные параметры: х — массив из nдействительных чисел (он же входной) содержит при выходе из подпрограммы приближенное значение решения;k—количество итераций.

Порядок выполнения лабораторной работы:

  1. Определить из геометрических соображений начальное при­ближение решения.

  2. Составить подпрограммы fиgдля вычисления значенийfи.

  3. Составить головную программу, содержащую описание массива х, имен fиg, присвоение фактических значений параметрамn, х,eps, обращение к ТNUTONи печать результатов.

4. Провести вычисления на ЭВМ.

Схема алгоритма приведена на рисунке 21.

Пример. Решить систему уравнений

Текст программы:

procedure TNuton;

var a: T2DArray; i, j: byte; finish: boolean;

begin

IterCount:= 0;

SetLength(a, UrCount);

for i:= 0 to High(a) do SetLength(a[i], UrCount + 1);

repeat { Заполнение матрицы частных производных }

for i:= 0 to High(a) do begin

for j:= 0 to High(a[i])-1 do a[i, j]:= DerivativeFn(i, j, Results);

a[i, High(a[i])]:= -Poliz.ExternFn(i, Results);

end; { Решение полученной СЛАУ методом Гаусса }

SetLength(Gauss.Base, Length(a));

for i:= 0 to High(a) do begin

SetLength(Gauss.Base[i], Length(a[i]));

for j:= 0 to High(a[i]) do

Gauss.Base[i, j]:= a[i, j]; end; try

Gauss.Solve;

except

raise Exception.Create('Данную систему этим методом решить невозможно!');

end; { Получение очередного приближения решения СНАУ }

finish:= false;

for i:= 0 to High(Results) do begin

Results[i]:= Results[i] + Gauss.Results[i];

if not finish then finish:= (Abs(Gauss.Results[i]/Results[i]) > Eps);

end; inc(IterCount);

until not finish;

end;

В результате вычисления по программе получены следующие результаты:

X(1)= 1.1132 Х(2)= 2.3718 Х(3)= 2.1365

Количество итераций:4

Рисунок 21 - Схема алгоритма метода Ньютона

Варианты заданий

Таблица 4

1

16

2

17

3

18

sin(y+l)-x=l,2

2y+cos x = 2.

4

sinу+2х=2

cos(x-1)+y = 0,7

19

sin(y+0,5)-x=l

cos(x-2)+y =0

5

sin(y-l)+x=l,3

y-sin(x+l)=0,8

20

cos(y+0,5)-x = 2

sin x —2y= 1

6

sin(x+l)-y=l

2x+cos y = 2

21

Sin x+2y= 1,6

cos(y-1)+x=l

7

sin(x+0,5)-y=1,2

cos(y-2)+x = 0

22

Cos(x-l)+y = 0,5

x –cos y = 3

8

cos x+y= 1,5

2x-sin(y-0,5)=l

23

Cos(x+0,5)+у = 0,8

sin y — 2x=l,6

9

2y-cos(x+l)=0

x+sin y= -0,4

24

10

cos(y-l)+x=0,5

y-cos x = 3

25

cos y+x=l,5

2y-sin(x-0,5)=l

11

cos(y+0,5) + x=0,8

sin x-2y=l,6

26

2x-cos(y+l) = 0

y+sin x= -0,4

12

sin(y + 2)-x=l,5

y+cos(x-2)=0,5.

27

cos(x-l)+y=0,8

x—cos y=2

13

Cos x+y= 1,2

2x-sin(y-0,5) = 2.

28

cos(x+0,5)+y=l

siny—2x=2

14

Sin(x-1)+y= 1,5

х - sin(y+ 1)= 1

29

sin(у+1)-х=1

2y+cos x = 2

15

Cos(y-l)+x=0,8

y-cos x=2.

30

cos(x-l)+y=l

sin y+2x= 1,6

Тема лабораторной работы №4 для контроля знаний проиллюстрирована контрольно – обучающей программой.

Лабораторная работа № 5

Решение проблемы собственных значений и собственных векторов

Точные методы