ЧМ-1
.pdf21
½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
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 |
|
|
|
|
|
|
|