Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЧМ-1

.pdf
Скачиваний:
11
Добавлен:
12.05.2015
Размер:
220.83 Кб
Скачать

21

½x2(3) - x2(2) ½= ½- 1.945+ 1.569½= 0.376

½x3(3) - x3(2) ½= ½2.024-1.788½= 0.236

3.Численные методы решения систем нелинейных уравнений.

Требуется решить систему нелинейных уравнений вида:

F1(x1,x2,x3,...,xn) = 0

F2(x1,x2,x3,...,xn) = 0

. . . . . . . . . . . (3.1)

Fn(x1,x2,x3,...,xn) = 0

3.1. Метод простой итерации (метод Якоби).

Систему нелинейных уравнений (3.1) после преобразований

xi =xi - Fi(x)/Mi ; i=1, 2, 3, ..., n

(здесь Mi определяются из условия сходимости), представим в виде:

x1

=f1(x1,x2,x3,...,xn)

 

x2

=f2(x1,x2,x3,...,xn)

 

 

. . . . . . . . . . .

(3.2)

xn =fn(x1,x2,x3,...,xn)

Из системы (2.3) легко получить итерационные формулы метода Якоби. Возьмем в качестве начального приближения какую-нибудь совокупность чисел x1(0),x2(0),...,xn(0). Подставляя их в правую часть (3.2) вместо переменных x1,x2,...,xn получим новое приближение к решению исходной системы:

x1(1) =f1(x1(0),x2(0),x3(0),...,xn(0))

x2(1) =f2(x1(0),x2(0),x3(0),...,xn(0))

. . . . . . . . . . . (3.3)

xn(1) =fn(x1(0),x2(0),x3(0),...,xn(0))

22

Эта операция получения первого приближения x1(1),x2(1),...,xn(1) решения системы уравнения (3.2) называется первым шагом итерации. Подставляя полученное решение в правую часть уравнения (3.2) получим следующее итерационное приближение: (x1(2),x2(2),...,xn(2)) и т.д.

Итерационный процесс можно считать законченным, если все значения переменных, полученных k+1-ой итерации, отличается от значений соответствующих переменных, полученных от предыдущей итерации, по модулю меньше наперед заданной точности e, т.е. если:

max½xi(k+1)

1[i[n

-xi(k)½< e.

(3.4)

3.2. Метод Зейделя.

Метод Зейделя отличается от метода Якоби тем, что вычисления ведутся не по формулам (3.3), а по следующим формулам:

x1(k+1)

=f1(x1(k),x2(k),x3(k),....,xn(k))

 

x2(k+1)

=f2(x1(k+1),x2(k),x3(k),....,xn(k))

 

 

. . . . . . . . . . .

(3.5)

xn(k+1) =fn(x1(k+1),x2(k+1),x3(k+1),...,xn(k)).

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

Сходимость метода Зейделя (Якоби тоже) зависит от вида функции в (3.2), вернее она зависит от матрицы составленной из частных производных:

 

f¢11 f¢12

f¢13

f¢1n

 

 

 

 

F¢ =

f¢21 f¢22 f¢23 ...

f¢2n

 

(3.6)

 

. . . . .

. . . . .

.

 

 

f¢n1 f¢n2

f¢n3 ...

f¢nn

 

 

 

 

где f¢ij = fi(x1,x2,...xn)/xj.

Итерационный процесс сходится, если сумма модулей каждой строки F¢ меньше единицы в некоторой окрестности корня:

½f¢i1½+½f¢i2½+½f¢i3½+....f¢in½< 1; i=1, 2, 3, ..., n

23

n

или max ½f¢ij½< 1.

1[i[n j =1

Пример: Найти решение системы (3.7) методом Зейделя с точностью e=0,001.

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

(3.7)

G(x,y)=10cos(y-1)-x+0.4 = 0

Решение: Представим (3.7) в виде (3.5):

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

(3.8)

y = f2(x,y) = y-(10cos(y-1)-x+0,4)/M2

Строим графики кривых системы (3.7) и определяем начальные при-

ближения x0=-1, y0=-0,7.

Запишем достаточное условие сходимости и определяем M1, M2:

f¢1x

f¢1y

1-2cos(x+1)/ M1

1/ M1

F¢ =

 

=

 

f¢2x

f¢2y

-1/M2

1+10sin(y-1)/M2

½1-2cos(x0+1)/M1½+½1/M1½<1 и ½-1/M2½+½1+10sin(y0-1)/M2½< 1,

½1-2cos(1-1)/M1½+½1/M1½<1 и ½-1/M2½+½1+10sin(-0,7-1)/M2½< 1,

½1-2/M1½+½1/M1 ½< 1 и ½-1/M2½+ ½1-9,91665/M2½< 1,

Определяем частные значения M1=2, M2=10, которые удовлетворяют неравенствам

1-2/2+1/2 < 1 и 1/10+ 1-9,91665/10 < 1,

Переходим к реализации итерационного процесса:

xk+1 = xk-(2·sin(xk+1)-yk-0,5)/2

yk+1 = yk-(10·cos(yk -1)-xk+1+0,4)/10

24

x1=x0-(2·sin(x0+1)-y0-0,5)/2= -1-(2·sin(-1+1)+0,7-0,5)/2=-1,1

y1=y0-(10·cos(y0-1)-x1+0,4)/10=

=-0,7-(10·cos(-0,7-1)+ 1,1+0,4)/10=-0,72116 x2=x1-(2·sin(x1+1)-y1-0,5)/2=

=-1,1-(2·sin(-1,1+1)+ 0,72116-0,5)/2=-1,11075 y2=y1-(10·cos(y1-1)-x2+0,4)/10=

=-0,72116-(10·cos(-0,72116-1)+1,11075+0,4)/10=-0,72244 x3=x2-(2·sin(x2+1)-y2-0,5)/2=

=-1,11075-(2·sin(-1,11075+1)+ 0,72244-0,5)/2=-1,11145 y3=y2-(10·cos(y2-1)-x3+0,4)/10=

=-0,72244-(10*cos(-0,72244-1)+1,11145+0,4)/10=-0,72252

Определяем погрешность по формуле

max½xi(k+1)

1[i[n

-xi(k)½< e.

½x3

-x2½< e

½-1,11145+1,11075½= 0,0007< e=0,001

½y3

- y 2½< e

½-0,72252+0,72244½= 8E-05< e=0,001

Таким образом, имеем решение: x* =-1,11145; y* =-0,72252.

Программа, реализующая решение данной задачи, представлена на рис.3.2.

CLS

REM LR-3-2, m=13, n=5

INPUT X,Y, M1,M2

1X=X-(2*SIN(X+1)-Y - 0.5)/M1 Y=Y-(10*COS(Y-1)-X+0.4)/M2 PRINT X,Y

INPUT TT GOTO 1 END

правки Dxk=xk+1

25

Рис.3.2. Программа решения методом Зейделя.

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

Основная идея метода Ньютона состоит в выделении из уравнений системы линейных частей, которые являются главным при малых приращениях аргументов. Это позволяет свести исходную задачу к решению последовательности систем линейных уравнений.

Рассмотрим систему двух нелинейных уравнений с двумя неизвестными вида:

F(x, y)=0

 

G(x, y)=0

(3.9)

Пусть известно некоторое приближение xk,yk корня x*,y*. Тогда по- -xk, Dyk+yk+1-yk можно найти решая систему:

F(xk+Dxk, yk+Dyk)=0

G(xk+Dxk, yk+Dyk)=0. (3.10)

Для этого разложим функции F, G в ряд Тейлора по Dxk, Dyk. Сохранив только линейные по Dxk, Dyk части, получим систему линейных уравнений:

F(xk,yk)

F(xk,yk)

¾¾¾¾ Dxk + ¾¾¾¾ Dyk = - F(xk,yk)

x

y

 

(3.11)

G(xk,yk)

G(xk,yk)

¾¾¾¾ Dxk + ¾¾¾¾ Dyk = - G(xk,yk)

x

y

относительно неизвестных поправок Dxk и Dyk. Решая эту систему линейных уравнений, определяем значения Dxk, Dyk.

Таким образом, решение системы уравнений по методу Ньютона состоит в построении итерационной последовательности:

xk+1 =xk +Dxk

 

yk+1 =yk +Dyk

(3.12)

26

где Dxk, Dyk - решения систем линейных уравнений, вида (3.11) на каждом шаге итерации.

В методе Ньютона также для обеспечения хорошей сходимости важен правильный выбор начального приближения.

Пример: Найти решение системы (3.7) методом Ньютона с точностью e=0,001.

F(x,y)=2·sin(x+1)-y-0.5 = 0

 

G(x,y)=10·cos(y-1)-x+0.4 = 0

(3.13)

методом Ньютона, при этом добиться точности e =0.001.

Решение: Начальные приближения x0=-1 и y0=-0,7. Определим частные производные:

F(x, y) F(x, y)

¾¾¾¾ = 2·cos(x+1); ¾¾¾¾ = -1;

x

y

G(x, y)

G(x, y)

¾¾¾¾ = -1;

¾¾¾¾ = -10·sin(y-1).

x

y

и используя (3.11), построим систему линейных уравнений относительно поправок

2·cos(x0+1) · Dx0 -1 · Dy0 = - 2·sin(x0+1)+y0+0.5 -1· Dx0 -10·sin(y0 -1) · Dy0 = - 10·cos(y0 -1)+x0 -0.4

Подставляя начальные приближения x0=-1; y0=-0,7 и решая систему линейных уравнений определяем поправки на первом шаге итерации

Dx0=-0,1112 Dy0=-0,0225

Далее начальное приближение уточняем по формулам (3.12)

x1 =x0 +Dx0= - 1 - 0,1112 = - 1,1112 y1 =y0 +Dy0= - 0,7 - 0,0225= - 0,7225

27

Подставляя результаты первой итерации x1=-1,1112; y1=-0,7225 и решая систему линейных уравнений

2·cos(x1+1) · Dx1 -1 · Dy1 = - 2·sin(x1+1)+y1+0.5 -1· Dx1 -10·sin(y1 -1) · Dy1 = - 10·cos(y1 -1)+x1 -0.4

определяем поправки на втором шаге итерации

Dx1=0,00026 Dy1=0,00004

Далее x1 и y1 уточняем по формулам (3.12)

x2 =x1 +Dx1= -1,1112+0,00026= - 1,1115 y2 =y1 +Dy1=-0,7225+0,00004= - 0,7225

Определяем погрешность по формуле

 

max½xi(k+1) -xi(k)½< e.

 

1[i[n

 

½x2

-x1½< e или ½Dx1½< e

½0,00026½< e=0,001

½y2

- y1½< e или ½Dy1½< e

½0,00004½< e=0,001

Таким образом имеем решение: x* = - 1,1115; y* = - 0,7225.

Программа реализующая метод Ньютона для указанной задачи представлена на рис. 3.3.

REM LR-3-3, m=13, n=5

INPUT X, Y

1F = 2*SIN(X+1)-Y - 0.5 G = 10*COS(Y-1)-X+0.4 Fx =2*COS(X+1)

Fy =-1 Gx =-1

Gy =-10*SIN(Y-1) D = Fx*GyGx*Fy DX=(G*Fy-F*Gy)/D DY=(F*Gx-G*Fx)/D X =X+DX

Y =Y+DY

PRINT X;Y; F;G;DX;DY;

28

INPUT TT

GOTO 1

END

Рис.3.3. Программа, реализующая метод Ньютона

4.1.Приближение функции по методу наименьших квадратов (МНК).

Очень часто в практической работе возникает необходимость найти в явном виде функциональную зависимость между величинами x и y, которые получены в результате измерений.

Как правило, общий вид этой функциональной зависимости или так называемой эмпирической формулы известен, а некоторые числовые параметры закона неизвестны.

Процесс выражения опытных данных функциональной зависимостью с помощью метода наименьших квадратов состоит из двух этапов: на первом этапе выбирают вид искомой формулы, а на втором этапе для формулы подбирают параметры. Для первого этапа удобно графическое представление этой зависимости и по ней выбрать вид возможной зависимости во втором этапе, в соответствии с идеей МНК, необходимо минимизировать сумму отклонений:

n

 

S = (y (xi)-yi)2

(4.1)

i =1

где xi, yi - значения опытных данных y (xi) - значение функции, вычисленное в точке xi ; n - число опытов.

В случае линейной эмпирической формулы (4.1) принимает вид:

n

 

S(a,b) = (axi + b - yi)2

min (4.2)

i =1

 

Функция (4.2) имеет минимум в точках, в которых частные производные от S по параметрам a и b обращаются в нуль, т.е.

S(a,b)/a=0, S(a,b)/b=0

(4.3)

n

2(a xi+ b - yi) xi = 0

i=1 n

2(a xi+ b - yi) = 0

i =1

29

n

n

n

 

a xi2 + b xi = xi yi

 

i =1

i =1

i =1

 

n

 

n

 

a xi + b n =

yi

(4.4)

i =1

 

i =1

 

Решая систему уравнений (4.4), получим значения a и b уравнения y=ax+b.

Пример: Подобрать аппроксимирующий полином первой степени y=ax+b для данных

xi

0

1

2

3

yi

0.1

0.9

2.1

3

Решение: Для удобства вычисленные значения расположим в таблице.

Таблица 4.1

i

xi

xi2

yi

xiyi

1

0

0

0.1

0

2

1

1

0.9

0.9

3

2

4

2.1

4.2

4

3

9

3

9

 

 

 

 

 

n

 

 

 

 

6

14

5.1

14.1

i =1

 

 

 

 

 

 

 

 

 

Система для определения коэффициентов имеет вид:

14 a + 6 b = 14.1

 

6 a + 4 b = 5.1

(4.5)

Решая систему (4.5), получим следующие значения параметров a=1.29; b=-0.675. Следовательно, искомый полином имеет вид y = 1.29 x - 0.67.

В случае квадратичной зависимости (4.1) принимает вид:

n

 

S(a,b,c) = (axi2 + bxi + c - yi)2

min (4.6)

i =1

 

Функция (4.6) имеет минимум в точках, в которых частные производные от S по параметрам a, b, c обращаются в нуль:

30

 

S(a,b,c)/a=0, S(a,b,c)/b=0, S(a,b,c)/c=0

(4.7)

В результате дифференцирования и элементарных преобразований для определения параметров получают систему линейных уравнений:

n

S(a,b,c)/a = 2 (axi2 + bxi + c - yi) xi2=0

i =1 n

S(a,b,c)/b = 2 (axi2 + bxi + c - yi) xi=0

i =1 n

S(a,b,c)/c = 2 (axi2 + bxi + c - yi) *1=0

i =1

Система линейных уравнений состоит из трех уравнений с тремя неизвестными:

n

n

n

n

 

a xi4 + b xi 3 + c xi2 = xi2 yi

 

i =1

i =1

i =1

i =1

 

n

n

n

n

 

a xi3

+ b xi

2 + c xi = xi yi

(4.8)

i =1

i =1

i =1

i =1

 

n

n

n

 

 

a xi2 + b xi + c n = yi

 

 

i =1

i =1

i =1

 

 

Решая систему линейных уравнений (4.8) получим значения a, b, c

уравнения y=ax2+bx+c.

Пример: Используя МНК построить эмпирическую зависимость y=ax2+bx+c, аппроксимирующую следующие табличные значения:

xi

-2

-1

0

1

2

yi

6

2

-1

-2

-1

Решение: Расчеты представим в виде таблицы 4.2.

i

xi

xi2

xi3

xi4

yi

xiyi

xi2yi

1

-2

4

-8

16

6

-12

24

2

-1

1

-1

1

2

-2

2

3

0

0

0

0

-1

0

0

4

1

1

1

1

-2

-2

-2

5

2

4

8

16

-1

-2

-4

n

 

 

 

 

 

 

 

0

10

0

34

4

-18

20

i =1