РЕШЕНИЕ СИСТЕМ НЕЛИНЕЙНЫХ УРАВНЕНИЙ Фактически

advertisement
РЕШЕНИЕ СИСТЕМ НЕЛИНЕЙНЫХ УРАВНЕНИЙ
Фактически все методы решения нелинейных уравнений
итерационными.
Система уравнения в скалярном (в общем) виде:
 f 1 x1 , x 2 ,  , x n   0
 f x , x ,, x   0
 2 1 2
n
(1)









 f n x1 , x 2 ,  , x n   0
 
т.е. f x   0
являются
Метод простой итерации
Необходимо систему уравнений привести к определенному виду.
f1 x1 , x 2 ,, x n   x1  x1
f x , x ,, x   x  x
 2 1 2
n
2
2


f n x1 , x 2 ,, x n   x n  x n
переходим к системе
1 x1 , x 2 ,, x n   x1  x1


 x , x ,, x   x  x
n
2
2
 2 1 2
 
Ax  x имеет конечное решение.
 - релаксационный множитель, подбирается так чтобы оператор от задаваемой
функции был сжимающим.
Подбирая коэффициенты  переходим к следующему шагу.
 
(2а)
x   x


 
x1   x 2    x1  x 2 , 0<  <1
(  - сглаживающий оператор), т.е. образы ближе чем праобразы.
Метод простых итераций применим к системе вида (2), процедура перехода к этой
форме от формы (1) и последующие применения метода простой итерации носит
название релаксационный метод.
Смысл метода простых итераций.

Существует строгая последовательность векторов x k
 


x k 1  x k , x k  x
(3)
1



 x ( k 1)  1 x ( k ) , x ( k ) ,, x (nk )
1
2
 1
(
k

1
)
(
k
)
(
 x1
 1 x1 , x 2k ) ,, x (nk )

 x1( k 1)  1 x1( k ) , x (2k ) ,, x (nk )

Условие выхода:


x k 1  x k  



(4)
(5)
если не произойдет, значит, процесс сходится, оператор не сжимающий

Исходя из начального вектора x 0 , строится последовательность векторов xk по (3).
Если последовательность сходится к некоторому x, следовательно x – искомый корень.
Метод Ньютона
Разложим каждую из функций fi в окрестность некоторой точки
Тейлора, ограничиваясь только линейными числами разложения:

f i x   f i x1 , x 2 ,, x n  


n

 
f 
 f i x 0    i x 0  x j  x j0  0 x  x 0
j 1 x j
В векторной форме:

где J ( x 0 ) 
f i 
x 0 
x i
 
  
0  f x 0   Jx 0 x  x 0  ,

x 0 по формуле
 i  1, n 
(1)
- матрица Якоби.
f j 
x 0 
x j
 
 


 
x  x 0  J 1 x 0 f x 0  , x k 1  x k  J 1 x k f x k 
В скалярной форме:
 
n
 ( k 1)

 x1( k )   a1 jf j x ( k )
 x1
j 1


n
 x ( k 1)  x ( k )  a f x ( k )
 2j j
2
2
(N) 
j 1



n
 x ( k 1)  x ( k )  a f x ( k )

n
n
nj j

j

1

 
 
aij – элементы обратной матрицы J-1 Якоби.
Т.о. процедура решения нелинейных систем методом Ньютона:
2
1. Выбирается начальный вектор x0, обычно x0 – есть грубо найденное
решение каким-либо другим плохо сходящимся методом, который надо
уточнить.
2. Реализуется циклический процесс построения k+1 итераций из k-той по
формуле (N), при этом для каждой k приходится рассчитывать матрицу
Якоби в точке xk и обращать ее.
3. Выход из цикла обычно когда последние итерации были меньше
заданной  .
 


Jx k x k 1  f x k 
(2)
Иногда из уравнения (1) записывают уравнение (2) относительно разности k и k+1



итераций. Решим эту линейную систему, затем x k 1  x k  x k 1
(3)
Модифицированный метод Ньютона


  
(N’)
x k 1  x k  J 1 x 0 f x k 
Обращение к матрице Якоби считается только 1 раз. Если метод Ньютона является
квадратичным (только в окрестности решения), то модифицированный является только
линейным.
2 семестр
Проблема собственных чисел и собственных векторов матрицы
A: L  L,
где А – оператор, L – линейное пространство.
Элементы пространства: x  L и y  Ax , результат действия оператора A.
Может оказаться, что на некоторый элемент действует некоторый оператор A
Ax  x (1)
Элемент x называется собственным элементом оператора A, а  – собственное
значение оператора A. Но, если L – эвклидово пространство, то линейный оператор –
это матрица, где x – собственный вектор A,  – собственное число A.
3
Пример.
Оператор дифференцирования A 
d
dt
x(t)
t
de
 ae at ,
dt
at
где e - собственный элемент оператора дифференцирования, a – число.
Есть плоское пространство.
 
Ax  b

y
 
x , b раскладываем по базису.
e at ,

x

x
Находим k
векторов.



r    k xk
Ax *


Axk   k xk

b    k xk



Ax    k Axk    k xk


собственных
 k xk


  k  k xk    k xk

  k  k  xk  0
 k 
k
k

Вектора xk - линейнонезависимы.
Смысл: подобрать базис, состоящий из собственных векторов.
В информатике это может быть использоваться в задачах МНК.
Если есть базис, состоящий из собственных векторов матрицы, то оператор
состоит просто из собственных чисел по диагонали.
Вывод: значение собственных векторов матрицы состоит в том, что в базисе,
состоящем из собственных векторов данной матрицы, она принимает вид
диагональной, а на диагоналях стоят соответствующие собственные числа
Матрицы подобны, если связаны следующим соотношением:
A  F 1BF
A и B представляют собой один и тот же спектр в разных базисах. Т.е. вместо
 
 
уравнения Ax  b будем решать F 1BFx  b .
4
Алгебраическая проблема собственных чисел
 
(1)
Ax  b
Данный оператор в линейном Евклидовом пространстве, который
представляется матрицей А в данном базисе.


Ax  x , x  0
(2)
x1
a11
a1n
x2

.
x
;
A
aij

amn
xn
Запишем в виде координат, получим:
a11 x1  a12 x2    a1n xn  x1
a x  a x    a x   x
22 2
2n n
2
 21 1

(2а*)

a
x

a
x



a
x



a
x


x
ii i
in n
i
 i1 1 i 2 2


an1 x1  an 2 x2    ann xn  xn
Приведем подобные:
(a11  ) x1  a12 x2    a1n xn  0
a x  ( a   ) x    a x  0
22
2
2n n
 21 1

(2а)

ai1 x1  ai 2 x2    (aii  ) xn    ain xn  0


an1 x1  an 2 x2    (ann  ) xn  0
Последняя система уравнений эквивалентна исходному уравнению (2), только
записывается в координатах. Эта система относительно координат самостоятельного

вектора x .
 - пока произвольный параметр, который мы еще не знаем.
Мы имеем линейную однородную систему, которая всегда имеет одно решение
– нулевое. Но нас оно не устраивает. Значит нужна система, имеющая более одного
решения, а это возможно, если определитель этой системы равен нулю.
В матричной форме это уравнение будет выглядеть:

( A  E ) x  0
(2б)
det( A  E )  0
(3)
(3) – характеристическое уравнение матрицы А, оно
представляет собой
алгебраическое уравнение степени n.
Левая часть характеристического уравнения называется характеристическим
многочленом.
Данная задача неоднородна.
1. Раскрытие определителя.
2. Решить характеристическое уравнение.
3. Решить однородную систему уравнений (2а).
5
Метод интерполяции
Раскрытие определителя
Проблема в том, чтобы раскрыть определитель
det A A  E  F ()
Метод интерполяции состоит в том, чтобы найти эту функцию, которая является
многочленом степени n от  .
Идея состоит в том, чтобы задаться n+1 числом.
1. 1 , 2 ,, n 1 .
Для каждого из них посчитать
2. F (i )  det A  i E .
Это даст сетку, по которой строится интерполяционный многочлен Ньютона.
3. Pn ()  F ()
Ограничения:
1. Обычно этот метод применим для n  10 .
2. Как найти  ?
i  A
Считается что окружность содержит множество собственных чисел
Выбираются числа  i  A
Сферическая норма:
i
A сф 
A
 aij 2
i
 2
1
j
n 1
 i 1
Для некоторых частных случаев частных
видов матриц задачу можно упростить.
Рассмотрим трех диагональную матрицу.
ai1
0
0
0
0
ai 2   0
0
A
0
0

0
0
0
0
ann
Определитель m порядка, 0  m  n .
6
Dm2  
0
0
a m2,m1
Dm   =
a m 1,m  2 a m1,m 2  
0
0
a m ,m 1
a m 1,m
=
a m ,m  
Разложим по элементам последней строки:
am,m   Dm1    am,m1 Bm1  am,m   Dm1    a m,m1  am1,m  Dm2  
Чтобы посчитать m=2 необходимо знать m=1 и m=0
Пусть: D0    0; D1    1.
Данная формула в методе интерполяции заменяет метод Гаусса, но только для
трехдиагональных матриц. Она также часто используется для расчета λ матриц, но тоже
трехдиагональных.
После раскрытия характеристического многочлена и каждого из его корней, то
есть собственное значение матриц (метод парабол), возникает проблема нахождения
собственных векторов.


Ax  x  0
 A  i E x  0
Метод обратных итераций.
Нахождение собственных векторов матриц
Теоретически собственный вектор, соответствующий собственному числу i
является ненулевым решением уравнения

(*)
 A  i E xi  0
Чтобы это уравнение имело отличное от нуля решение, необходимо чтобы
определитель системы был равен нулю, а это обеспечивается точным значением hi .
Однако, в общем случае hi найти точно невозможно (за счет округлений). Поэтому
фактически имеем уравнение:
~  
(**)
x  i E x  0
~
i  i
~
, поэтому det A  i E  0 .
~
i  i
Следовательно, система (**) будет всегда даваь нулевое решение для x.
Что делать?
Берем любой вектор
~ 
(***)
b  A  i E x, b  0 ,
это и будем называть методом обратных итераций.




7
Рассмотрим простой случай, предположив, что все n собственных векторов
образуют линейно независимую систему и образуют базис пространства, тогда:
n
~
  n

xi   ij x j , b    j k j , Axi  i xi .
j 1
j 1
Подставим эти выражения в (***).

~ ~
Axi  i ~
xi  b




  ij Ax j  i   ij x j    j x j
j
j
j


  ij  j x j   ij  i ~x j    j x j
j
j
 
Отсюда:  i ,  ij 
j
 j  i
j

~
ij
 j  ij  i   j x j  0
  ii   ij , если j  i .

~ 
x
Если нормируем (т.е. разделим на длину)   1,   0 , т.е. x1  xi , так как   1
x

Замечание. Выбор вектора b случайный. Найденный ~
xi мы подставим в

систему (**), это будет означать что b выбран нормально. Если это не так, то
 ~
случайное  i мало. Необходимо выбрать другой b  x .
H
ii
H
ij
Виды матриц
Матрица B называется подобной матрице A, если
B  F 1 AF ,
где F – несобственная матрица.
Теорема 1.
Спектры подобных матриц совпадают, а их собственные вектора связаны
определенным образом.
Спектр – набор всех собственных значений в матрице.
Доказательство.

Пусть y и  - собственный вектор и собственное значение матрицы В, то есть


By  y .
Это значит




F 1 AFy  F 1 Fy или F 1 Ax  F 1x ,




где x  Fy . Умножаем слева на F, получаем Ax  x .


Значит  - собственное значение A, а вектор x  Fy - собственный вектор.
Геометрический смысл: в сущности, дело в том, что подобные матрицы
представляют собой один и тот же оператор, но в разных базисах матрицы.
Практический смысл применения теоремы: целесообразно для нахождения
спектра матриц переходить к такой ей подобной, для которой собственные вектора
могут быть найдены просто.
Обычно, при изучении матриц пользуются не вещественным эвклидовым
пространством, а комплексным, где координаты векторов комплексные числа, при этом
приходится изменить форму скалярного произведения.
8
Имеем комплексное пространство n измерений (координаты – комплексные числа).


x  ( x1 , x2 ,, xn ) *, y  ( y1 , y2 ,, yn ) *.
n
 
 
 
Тогда скалярное произведение ( x , y )   xi yi , поэтому ( x , y )  ( x , y ) .
i 1
Матрица А
место выражение:
H
называется эрмитовски сопряженной к матрице А, если имеет

 


xy, ( Ax, y)  ( x, A H y)
Легко видеть, что
AH  ( A)*  ( A* ) , т.е. aijH  aij
Если А – действительная, то A H  A*
Пример.
i 3i
i 2
A
; AH 
.
2  2i
3  i 2i
Матрица называется эрмитовской, если она совпадает со своей эрмитовски
сопряженной, т.е. A H  A .
Матрица называется косо-эрмитовской, если A H   A .
Матрица U называется унитарной, если обратная ей совпадает с эрмитовски
сопряженной, т.е. U 1 U H .
Соответствие между комплексными и вещественными матрицами
Комплексные
Эрмитовски сопряженная
Эрмитовская
Унитарная
Вещественные
Транспонированная
Симметричная
Ортогональная
Матрица называется нормальной, если она коммутирует со своей эрмитовски
сопряженной, т.е. AH  A  A  AH .
Эрмитовские, косо-эрмитовские и унитарные матрицы являются нормальными.
Теорема 2.
Если  - собственное значение A, то  - собственное значение A H .
Доказательство.


Ax  x  det A  E  0  det A*  E *  0
 det A*  E  0  det A*   E  0
Следствие: у эрмитовских (симметричных) матриц спектр вещественный.
Теорема 3.
Собственные вектора матриц A и A H , соответствующие не комплексно
сопряженным,  и  - ортогональны.
Доказательство.
Имеем
9


 Ax  x
 
 


  выч.
( Ax , y )   ( x , y )
( x, A H y)   ( x, y)

 
 
 H
    H
 A y  y  H  
   0  (   )( x , y )  ( x , y )  0
( A y, x )   ( y, x )
( x, A y)   ( x, y)
  

Следовательно, собственные вектора, отвечающие взаимносопряженным собственным
числам расположены коллинеарно.
Теорема 4.


Унитарная матрица не меняет длины вектора, т.е. Ux  x и углов между
векторами (так как не меняет скалярного произведения),
 
 
(Ux ,Uy )  ( x , y ) .
Доказательство.
E

 
 H 
 
(Ux,Uy)  ( x,U Uy)  ( x, y)


Следствие. Ux  x
Обратное тоже верно: если какое-то преобразование пространства не меняет ни длины
векторов, не углы между ними, то ему соответствует унитарная матрица.
Теорема 5. Шура.
Для
любой
матрицы
А
найдется
такая
унитарная
U,
что
1
H
U AU  U AU  верхняя треугольная матрица.
Теорема 6.
Если матрица А нормальная, то U (унитарная)
U 1 AU  diag
Теорема 7.
У диагональных матрицы собственные вектора образуют ортогональный базис,
0  0  0 
1
0






 
2

 1  2    1 .
2

     
 


    
 
т  0  0 
0
0
Теорема 6 и 7 дают следствие. Унитарные преобразования не меняют углов,
поэтому у нормальной матрицы собственные вектора образуют ортогональный
базис.
Устойчивость
Дана задача:


(1)
Ax  x

  
 
 A  Ax  x      x  x 
(2)
Решая задачу (1) мы вынуждены из-за погрешности задания матрицы А

фактически должны решать задачу (2), где A - погрешность матрицы А, x 
погрешность определения собственного вектора,  - погрешность определения
собственного значения.
Задача является устойчивой, если при достаточно малом возмущении А , x и
 для нас достаточно малы. Если же А мало, а x и  - велики, задача не устойчива.
Существует соотношение, оценивающее величину этих погрешностей,


10


n
xi   ij x j ,
j 1
i  æ i max alk ,
l ,k
 ij 
æi
1
cos  i
æ
 max al ,k ,
i   j l , k
где  - координата погрешности, æ i - коэффициент переноса,  i - угол между xi и yi ,
xi и yi - собственные вектора между A и A H соответственно.
Чем меньше угол, тем меньше коэффициент переноса (коэффициент переноса равен 1
для нормалоной Эрмитовской матрицы).
Минимальные ошибки у Эрмитовских матрицы, а максимальные у Жаржановых клеток.
Пример Жардановых клеток:
a 1 0 0 0 
0 a 1 0 0


J  0 0 a 1 0


0 0 0 a 1 
0 0 0 0 a 
Метод Крылова
Функция от матрицы.
Рассмотрим аналитическую функцию, например экспоненту,

a2
an
ak
f (a)  e a  1  a 

   .
2!
n!
k 0 k!
Выполним разложение и для матрицы А:

A2
An
Ak
a
(1)
f (a)  e  E  A 

  
2!
n!
k 0 k!
Так же вместо ряда можно взять многочлен:
(2)
Pn (
 )  n  p1n1    pn1  pn
A
Pn ( A)  A n  p1 A n1    p n1 A  p n E
(3)
Некоторый многочлен называется аннулирующим для данной матрицы, если
после подстановки вместо  матрицы А получим нулевую матрицу
Теорема Гамильтона-Келли.
Характеристический многочлен является аннулирующим для своей матрицы.
Пример.
5 4
A
;
 2 3
1. Построить характеристический многочлен,
2. Подставить А вместо  и убедиться, что это нулевая матрица, т.е. докажем теорему
Гамильтона-Келли.
11
1.
4 
5  
A
 15  5  3  2  8  2  8  7,

3  
 2
2  8  7  0
1  7, 2  1
2.
5 2 5 2 40 16  7 0 33 16 33 16 0 0
A2  8 A  7 E  







4 3 4 3 32 24 0 7 32 17 32 17 0 0
Следовательно, если многочлен (2) характеристический, то (3) равен нулю.
Формула Лагранжа-Сильвестра.
n
n
f (a )  
k 1 s 1
sk
( A  s E )
 f ( k ) ,
( k   s )
где  s - собственное число матрицы.
Пример.
( A  2 E )( A  3 E )
( A  1 E )( A  3 E )
( A  1 E )( A  2 E )
f ( A) 
 f (1 ) 
 f (2 ) 
 f (3 )
(1  2 )(1  3 )
(2  1 )(2  3 )
(3  1 )(3  2 )
.
Непосредственно метод Крылова.
Метод Крылова используется для расчета собственных чисел и собственных
векторов.
Характеристический многочлен: D( )  n  p1n1  p 2 n2    p n ;
подставим матрицу А:
(1)
An  p1 An1    pn1 A  pn E  0̂ ,
т.е. матрица порядка n, вся состоящая из нулей.
Берем любой вектор
 y10 
 0
y
(0)
y  2,

 0
 y n 





подставим в (1), получим: An y (0)  p1 An1 y (0)    pn1 Ay (0)  pn y (0)  0 .
 (1)
 (0)
 ( k )  y  Ay
k  ( 0)
Пусть A y  y :   ( k )
,
(2)

 y  Ay ( k 1)
 p1 y1n 1  p 2 y1n 2    p n 1 y11  p n y10   y1n

n 1
n2
1
0
n
 p y  p 2 y 2    p n 1 y 2  p n y 2   y 2
Тогда  1 2
(3)







 p y n 1  p y n 2    p y 1  p y 0   y n
2 n
n 1 n
n n
n
 1 n
Алгоритм нахождения собственных значений методом Крылова:
1. выбор y ( 0) ,
12
2. расчет (2) и подстановка в (3),
3. решение (3) методом Гаусса
характеристического многочлена.
относительно
коэффициентов

Pi i  1, n

Пример.
1 2
2 1
Имеем A  
3 2

4 3
1 
1
 2
2


y 1   ; y 2  
 3
3
 

 4
4
1

 4 2
y 
3

4
2
1
2
3
3
2
1
2
3 4
2 3
;
1 2

2 1
2 3
1 2
2 1
3 2
1 
0 
выберем вектор y ( 0 )    .
0 
 
0 
4 1  30 
1 2





3 2 22  3 2 1


; y 
3 2
2 3 18 
    

1  4 20
4 3
3
2
1
2
4 30   208
3 22 178 


;
2 18  192 
   

1  20 242
4  208 2108
208 p1  30 p 2  1 p3  1 p 4  2108
178 p  22 p  2 p  0 p  1704





3 178  1704 

1
2
3
4


 
2 192  1656 
192 p1  18 p 2  3 p3  0 p 4  1656
 
 

242 p1  20 p 2  4 p3  0 p 4  1992
1  242 1992 
p1  4, p2  40, p3  56, p4  20 .
Получим: det A  E  4  43  402  56  20
Нахождение собственных векторов по методу Крылова.
Алгоритм расчета собственных векторов по методу Крылова:
Характеристический многочлен уже известен, известны собственные значения и
 

значения векторов y ( 0) , y (1) ,, y ( n1) .
1. Находим многочлены
D ( )
 i   
,
  i
где i - i тое число, D – характеристический многочлен матрицы.
Схема Горнера (деление многочлена на двучлен):

q0i  1
коэффициенты многочлена  i 

q ji  i q j 1,i  p j ( j  1, n  1)
i ( )  n1  q1,i n2    qn1,i
2. Собственные не нормированные вектора находятся по формулам:
 


Yi  y ( n1)  q1,i y ( n2)    qn1,i y ( 0)


Yi
Не нормированный собственный вектор X i 
, соответствующий значению i
 i ( i )
Рассмотренный алгоритм годится только для простых (не кратных) корней –
собственных значений (иначе деление на 0).
13
Метод Леверрье
det E  A  n  p1n1  p2 n2    pn
Задача, найти p1 , p2 ,, pn . Введем обозначения: S k  1k  k2    kn , k  1, n
Сумму диагональных элементов матрицы называют следом (Spur):
spur A  a11  a22    ann
Теорема.
След матрицы является инвариантом преобразования подобия
spur F 1 AF  Spur A .
Спектром матрицы называется множество ее собственных чисел.
spectr A k  1k , k2 ,, kn 
Этот факт является следствием того, что spectr любой матрицы является суммой
его собственных значений.
Для любой матрицы числа S k можно легко найти. Для этого необходимо путем
соответственного числа умножения матрицы саму на себя определить сумму
диагональных элементов этой матрицы Аk , это и будет суммой k степеней собственных
чисел матрицы A.
Справедливы формулы Ньютона:
S k  p1 S k 1  p2  S k 2    pk 1 S1  kpk
 p1   S1

 p 2   1 ( S 2  p1 S1 )
2



Теорема Виета для k=2: 
1
 p k   k ( S k  p1 S k 1    p k 1 S1 )



1
 p n   ( S n  p1 S n1    p n 1 S1 )
n

(*) позволяет по всем известным S k найти все p по очереди.
Пример.
1 2 3 4 
 2 1 2 3
.
Имеем A  
 3 2 1 2


4 3 2 1 
30 22 18 20
208 178 192 242
2108
22 18 16 18 
178 148 154 192 
1704
2
3
4




A 
; A 
; A 
18 16 18 22
192 154 148 178 
1656





20 18 22 30
242 192 178 208
1992
(*)
1704 1656 1992 
1388 1368 1656 
1368 1388 1704 

1656 1704 2108
14

S1  Spur A  1  1  1  1  4,
S 2  Spur A 2  30  18  18  30  96,
S 3  Spur A3  208  148  148  208  712,
S 4  Spur A 4  2108  1388  1388  2108  6992;
p1  4,
1
p 2   (96  4  4)  40,
2
1
p3   (712  4  96  40  4)  56,
3
1
p 4   (6992  4  712  40  96  56  4)  20;
4
Получим: det E  A  4  43  402  56  20 .
Замечание: этот метод не применяется для n>10, из-за вычислительных
трудностей и округлений.
Методы, предназначенные для
эрмитовых матриц
Эти методы основаны на преобразовании подобия с помощью унитарных
матриц (ортогональны для действительных матриц). При этом они позволяют
преобразовать исходную матрицу общего вида к верхней почти треугольной, что для
эрмитовых означает к трех диагональной.
Матрица называется почти треугольной, если все элементы, находящиеся ниже
первой нижней побочной диагонали равны нулю.
Метод отражения
Этот метод приведения путем подобных преобразований, являющихся к тому же
унитарными преобразованиями.
Данный метод решает ограниченную задачу: приводит произвольную матрицу к
верхнему почти треугольному виду с помощью унитарных преобразований.
Так как для эрмитовской матрицы это равносильно получению трех
диагональной формы, а для таких матриц есть простой устойчивый алгоритм
раскрытия характеристического многочлена (см. выше), то этот метод и служит
решением нашей задачи, т. е. раскрытие определителя любой эрмитовской матрицы.
Метод состоит в преобразовании матрицы при отражении пространства
относительно некоторой плоскости проходящей через начало координат.
15
Формула для оператора отражения:

y

y
 
y  y   y|| ;





z   y   y|| ;
 

 
y    (y )   H y




 
y||
 H
z  y  2 y   y ( E  2 )  R


где  - вектор-столбец,  H - вектор-строка,

R - матрица отражения относительно

плоскости проходящей через начало
z
 y

координат, где   1 .
Задача
решается
подбором
последовательности отражений (т.е. нахождением плоскости векторов k ), которые
уничтожат все элементы стоящие ниже второй побочной диагонали. Фактически для
матрицы n порядка таких отражений необходимо выполнить n-2.
Пример.
Пусть проведено q-1 шагов, а пишем шаг q:
n=7, q=3
q
А=
q
n-q
A1 A2
q
A3 A4
n-q
=
n-q
q
n-q
E 0 
R  R 1  
;
0 W 
Wij   ij  2i *j , (q  1  i, j  n),
Wi q  0 при i  q.
Формулы для нахождения i (q  1  i  n) :
1. Находим bq 1,q для модуля
2
 n
2
bq1,q    aiq  , где aiq - элемент столбца q блока A3 .
 i q 1

Для аргумента: arg bq 1,q    arg a q 1,q .
Для вещественных матриц: sign bq1,q   sign aq1,q .
16
2. Определяем параметр  :


  2 bq 1,q bq 1,q  aq 1,q

1/ 2
3. Определяем  i :
для i  q  1
для i  q  1
при i  q  1
i  aiq 

 q 1  (a q 1,q  bq 1,q ) 

i  0
Прямой метод вращения
Как и метод отражения, прямой метод вращения имеет цель, с помощью
унитарных преобразований, привести эрмитовскую матрицу к трехдиагональному
виду, для матрицы общего вида - к верхнему почти треугольному виду.
Данный метод уступает по быстродействию методу отражения, но имеет более
простые формулы расчета. Он основан на последовательности поворотов пространства
параллельно некоторой гиперплоскости. Так как повороты изменяют длины векторов и
углов между ними, то эти преобразования унитарны.
Задача:
1) Дать формулы для осуществления поворота на главный угол.
2) Указать, как подобрать углы (параметры) поворота.
3) Указать в какой последовательности осуществлять поворот.
k
0
1
U kl
=
l
- β*
α
0
1
β
0
k
0
α
0
где k и l образуют плоскость,
  cos  ,
0
l
  e  j sin  ,
 *  e j sin  .
1
B



С  U AU kl  C  U klH B
H
kl
bik  aik    ail   *
bil  aik   *  ail  
i  1, n
Остальные bij  aij
C ki  bki  bli  *

Cli  bki   bli
Рассмотрим исходную матрицу А:
17
k
l
ak ,k 1

k
a
l
2
k , k 1
 al2,k 1
al ,k 1

ak2,k 1  al2,k 1
al ,k 1
0
Мы должны позаботиться о том, чтобы при последующих поворотах элементы,
аннулированные на предыдущих поворотах, оставались равными нулю.
n 2  3n  2
Общее число поворотов: N 
.
2
1
А
=
n-2
элемента
2
6
3
7
10
4
8
11
13
5
9
12
14
15
n-2 элемента
Итерационный метод вращения
Все предыдущие методы нахождения собственных векторов состоят из двух
частей:
1. раскрытия характеристического определителя,
2. решения характеристического уравнения, нахождения корней.
Итерационный метод вращения этими недостатками не обладает, т.к. сразу
находит собственные числа. При этом как итерационный метод он теоретически
содержит бесконечное число поворотов. Но на практике всегда ограничивается
конечным, хотя и очень большим числом поворотов.
Спектральная норма: А spectr  max k
Сферическая норма (Евклидова): A сф 
n
n
 a
i 1 j 1
2
ij
, A сф  S
2
18
Свойства S:
1. преобразования поворота не меняют сферическую норму на матрицу,
2. сферическую норму разделяют на не диагональную и диагональную.
n
S  S1  S 2 , S1   aii2
i 1
При преобразовании С  U AU kl . Если k  l , то не диагональные элементы S 2
H
kl
2
изменяются так же, как и a kl :
2
 S 2 =  a kl .
На основании этого целесообразно так подобрать повороты U kl , чтобы S 2
уменьшилась.
В силу эрмитовости (симметричности) при уничтожении U kl будет
уничтожаться akl . Целесообразно аннулировать на каждой итерации самый
наибольший по модулю элемент на главной диагонали.
Для обнуления akl необходимо подобрать  и  следующим образом:
1 
1
1

2
1  2




1
   (sign  ) 1 1 


2
1  2



 , где   2a kl

a kk  all

Частичная проблема собственных значений
Метод линеаризации
Этот метод позволяет уточнить некоторое собственное значений и
соответствующий собственный вектор, грубо найденный какими-либо другими
прямыми методами.
Метод основан на методе Ньютона решения системы нелинейных уравнений.
Его преимущество состоит в том, что он однороден: одновременно (и равноправно)
находятся собственные значения и собственный вектор.
Запишем уравнение:
 
Ax  x  0 ;
в скалярном виде:
n
a
k 1
ik
x k   xi  0
i  1, n .


Fi x,    aik xk  xi , Fi x,    0


Разложив в ряд Fi x,    0 , получим: x ( 0) , ( 0)
Уравнения системы:
F 
F 

Fi x ( 0 ) , ( 0 )   i x ( 0) , ( 0) dxk  i x ( 0) , ( 0) d  
 0
xk

ïðåíåáðåãàåì


n
a
k 1
ik





dxk  ( 0 ) dxi  xi( 0) d   Fi x ( 0) , ( 0) , i  1, n
(1)
19
Уравнение (1) есть линейная система n уравнений приращения неизвестных dxk
и d относительно n+1 неизвестного. Это не проблема, т.к. собственный вектор
определяется с точностью до множителя. Одну из координат можно считать
неизвестной.
Если найдем из (1) эти приращения, то получим:
 (1)  ( 0)


 x  x  dx

 (1)
(0)




d



(1)
(0)
 x1  x1  dx1
 (1)
(0)
 x  x 2  dx 2
 2

 x (1)  x ( 0 )  dx
n
n
 n
По (2) построим первое приближение из нулевого:
n

 aik dxk  ( S ) dxi  xi( S ) d   Fi x ( S ) , ( S ) , i  1, n
k 1



 x ( S 1)  x ( S )  dx
 ( S 1)
 ( S )  d

(2)
(1а)
(2а)
lim ( S )  
 S 
Если x и  выбраны близкими к k, то 
 (S )  .
lim
x
x
 x
Сходимость метода квадратичная.
(0)
(0)
Пример.
 3 2
A

4 5
Пусть мы грубо определили первое приближение:
  1.01 
( 0)  1.05 , x  
.
 0.95
Найдем первое приближение по данному методу:
3dx1  2dx2 1.05  dx1 1.01 d  0.0695
 ( 0) ( 0)
F1 x ,   (3 1.01  2(0.95))  1.05 1.01 ,
4dx1  5dx2 1.05  dx2  0.95  d  0.2875 .
Будем считать dx2  0 , x2  0.95 . Получим систему уравнений:
 


4.95  dx1  1.01 d  0.0695
 d  0.047, dx1  0.083

4  dx1  0.95  d  0.2875
Тогда   1.097,
 0.927
x
.
 0.95
20
Степенной метод
Этот метод служит для определения наибольшего по модулю собственного
значения матрицы. С самого начала модули значений расположены в порядке
убывания:
1  2  3    n .
Сущность метода:
Строим следующий итерационный процесс:


x ( S 1)  Ax ( S )

x ( 0 ) раскладываем:
n


x ( 0 )    i xi , i  xi
(1)
i 1



x ( S )    i iS xi  11S x1( 0 )
n
i 1
Ясно, что с ростом S первое слагаемое будет «забивать» все остальные.
Поскольку абсолютная величина вектора S будет катастрофически нарастать, это
приведет к переполнению, поэтому необходимо на каждом шаге нормировать
результат, т.е. полагать:


1) y S 1  Ax ( S ) ;


2) y  S 1  max x ( S 1) ;

 ( S 1)

y  S 1
   S 1  x max
3) x
y
max : берутся всевозможные координаты векторов, отличающиеся друг от друга на  .
Пример:
max  2, x
(S )
 3
 5,
7
y
( S 1)
6 
 10
14
Условие выхода из итерационного процесса:
x ( S 1)
x ( S 1) x ( S 1)
max  1 ( S )  2( S )    n( S ) .
x1
x2
xn
Замечание:
Данный метод не сходится в случаях когда 1  2 , а 1  2 . При
1  2 может сойтись.
Обратные итерации со сдвигом
Пусть найдено грубо некоторое собственное число i , его можно уточнить
методом обратных итераций со сдвигом.
21
~
А   Е  А
det A  E  0
det A   Е   Е  0
det A  (   ) E  0
Теорема 1: если  собственное число матрицы А, то    собственное число матрицы
~
A  A   E .
Теорема 2: если  собственное число матрицы А, то  1 - собственное число матрицы
A 1 .
Доказательство:

 
( А  Е ) х  0, тогда А -1 ( А  Е )  0

( Е  А 1 ) х  0 (поделим на  )
1 
( А 1  Е ) х  0

Отсюда следует: для того чтобы найти самое минимальное (по модулю)
собственное число матрицы А, надо найти максимальное по модулю собственное
число матрицы А 1 .


A 1 х s  х s 1
()


Aх s 1  х s
()
Таким образом, для нахождения минимального собственного значения и
соответствующего собственного вектора необходимо найти обратную матрицу и
использовать () , либо многократно решать систему () .
min    max
~
~
~
Пусть i - грубо найденное число. Требуется найти i . Рассмотрим А  А  i E .
~
~
Если мы нашли i достаточно близко к i , то у сдвинутой матрицы А собственные
~
~
числа будут  j  i , j  1, n . Самым малым по модулю из этих чисел будет i  i . Его

~ 
можно найти по () или () . А  i E xs 1  xs   , воспользовавшись,   найдем
~
~
истинное значение, а i - грубо найденное значение. Можно
i , где i воспользоваться () , но для этого надо найти матрицу обратную к сдвинутой, что
целесообразно при большом числе итераций.
Этот метод удобен для матриц больших размерностей и большим числом нулей
~
(до 1000). Если i не точно найдено к i , то процесс может сойтись к другому
собственному числу.


Численное решение дифференциальных уравнений
Дифференциальные уравнения решаются следующими методами:
1. точными аналитическими методами;
2. приближенными (аналитическими, итерационными) методами;
3. численными методами.
22
Достоинства и недостатки методов.
Точные методы.
Достоинство: возможность получения общего решения с возможностью его
анализа, например, анализа влияния отдельных параметров системы на характер
движения.
Недостаток: существует очень узкий класс дифференциальных уравнений,
который можно решить аналитически.
Приближенные методы.
Приближенные методы – аналитические методы с целью получить
приближенное аналитическое решение для точного решения уравнения.
Как правило, это итерационные методы. Наиболее известный метод Пикара,
метод малого параметра.
Недостаток: не для всех уравнений можно применить данный метод,
приближенный.
Численные методы.
Численные методы – это “чисто” арифметические методы, основанные на замене
бесконечно малых величин на “достаточно малые” приращения.
Достоинства: всеядность, так как все равно придется переходить к числу, значит
стоит сразу начать с числа.
Недостаток: невозможно получить общее решение, всегда частное. Невозможно
провести анализ влияния отдельных параметров уравнения на решение.
Классы задач на дифференциальных уравнениях
1. Задачи Коши.
2. Краевые задачи.
3. Задачи на собственные значения.
Задача Коши
Пусть имеется система дифференциальных уравнений следующего вида:
U k (t )  f k (t ,U1 ,U 2 ,U 3 ,...,U n ); k  1, n (1)
Запись (1) называется формой Коши. Каждое уравнение 1-го порядка разрешено
относительно производной.
Задача Коши – задача с начальными условиями, то есть необходимо найти такое
решение выражения (1), которое в заданной точке аргумента U k ( ) принимает
значение  k , то есть U k ( )   k (k  1, n) (2)
U k ( ) - начальная точка,  k - неизвестные числа.
Задача Коши: найти решение (1) с условиями (2).
Рассмотрим приближенный метод решения задачи Коши: метод Пикара.
23
Метод Пикара
Решаем одномерную задачу, а именно задачу Коши для следующего уравнения:
U / ( x)  f ( x,U ( x)) (1)
U (x)  искомая функция от х, f – известная функция 2-х аргументов x и U.
Ищем U (x) такую, чтобы выполнялось условие: U ( )   (2)
 x X
U
U(x)


x
x
Перейдем от (1) к интегралу, получим: U ( x)     f ( x,U ( x)) dx (1a)

(1а) – интегральное уравнение равносильное нашей задаче Коши (1) и (2). Построим
последовательность функций U k (x) , такую, что U 0 ( x)   ,
x
U k 1     f ( x,U k ( x)) dx (3)

По формуле (3) можно считать бесконечно, при определенном условии: U k ( x)  U ( x)
k 
Условие Липшица:  L x
f ( x,U1 )  f ( x,U 2 )  L U1  U 2
U1 ,U 2 , x - числа; функция растет быстрее, чем некоторая линейная функция, при этом
условии процесс сходится к решению уравнения (2), если функция непрерывна и
дифференцируема на отрезке  , x .
Пример.
Решить уравнение, которое аналитически не решается.
U / ( x)  x 2  U 2 ( x) (1)

(2)
U (0)  0
U0  0
x
U 1  0   ( x 2  0)dx 
0
x
U 2  0   (x2 
0
1 3
x
3
1 6
1
1 4
x )dx  x 3 (1 
x )
9
3
21
1 3
1 4
2 8
1
x  (1 
x 
x 
x 12 )
3
21
693
19845
И так далее.
Решение будет получено в виде ряда, который сходится. Этот процесс быстро
сходится, так как коэффициенты быстро убывают.
U3 
24
Из примера видно, что данный метод выгодно применять, если интегралы
можно вычислять через элементарные функции. Если интегралы не берутся в
квадратурах, то их все равно приходится считать численным методом, и тогда смысл
применять эти приближенные методы пропадает. Поэтому лучше сразу
воспользоваться численным методом.
Численные методы решения задач Коши
Самый простой метод – метод ломанных или метод Эйлера.
Метод Эйлера.
U1
U0
t0 t
1
U
tk
U /  f (U , t )
U (t k 1 )  U (t k )
U / (t k ) 
h
f (t k )  f k
U k 1  U k
h
U k 1  U k
 f (U k , t k )  f k
h
U k 1  U k  h * f k
U k/ 
t k 1
t
(1)
( 2)
(3)
(4)  Метод Эйлера
U 0  U (t 0 ) - начальное условие
h  t k 1  t k
h - шаг интегрирования.
Таким образом, метод сводится к замене интеграла кривой к касательной этой
кривой, которая при увеличении шага все дальше отходит от этой кривой. Так как эту
замену истинного решения прямой линии мы осуществляем через некоторый шаг h. То
фактически кривую мы заменяем ломанной. Метод считается самым грубым
(неточным), имеет 1-й порядок точности, то есть погрешность нарастает как 1-ая
степень шага. Однако он чрезвычайно прост.
Существует более точные численные методы, в частности метод Рунге-Кутта,
метод Адамса.
25
Методы Рунге-Кутта 2-го порядка
Рассмотрим методы 2-го порядка, в которых погрешность равна квадрату шага,
то есть h2.
U k -точное значение U k  U k (t k )
y k - приближенное значение.
1-й метод
h
1
y n 1  y n  h * f ( x n  , y n  h * f ( x n , y n ))
2
2
f ( xn , y n )
yn
xn
xn 
h
2
x n 1
2-й метод – Метод предиктор-корректор
y n 1  y n 
xn
h
 f ( xn , y n )  f ( xn  h, y n  h * f ( xn , y n ))
2
xn 
h
2
x n 1
26
Метод Рунге-Кутта 4-го порядка
Есть система n-уравнений:
U 1 
U 
(i )
(i )

U 1  f (U , t ); U   2  i  1, n
 
 
U n 
y - приближенное значение вектора U . U зависит от t, y зависит от tk,
следовательно y k  U (t k )
h
y k(i)1  y k(i )  k1(i )  2k 2(i )  2k 3(i )  k 4(i )
6


k1(i )  f (i ) ( y k , t k )
h
h
k 1, tk  )
2
2
h
h
 f (i ) ( y k  k 2 , t k  )
2
2
k 2(i )  f (i ) ( y k 
k 3(i )
k 4(i )  f (i ) ( y k  h k 3 , t k  h)
1
RRK
(1) 
ba 2
h max f ''
24

a, b 


ba 2
h max f ''
a , b 
12
ba 4

h max f |v
a ,b 
2880
2
RRK
( 2) 
4
RRK
( 4)
предиктор  корректор
Неявные схемы
y k 1  y k  hf ( y k , t ) - явный метод Эйлера.
h
y k 1  y k   f ( y k , t )  f ( y k 1 , t ) - неявная схема Эйлера.
2
Неявную схему надо решать относительно y k . Неявная схема содержит
неизвестные в правой части, которые надо извлечь путем решения этого уравнения. С
точки зрения затрат времени ясно, что здесь надо решить нелинейное уравнение,
посчитать нельзя. Неявная схема требует наличие метода решения нелинейных
уравнений. Следовательно, это требует дополнительных затрат времени. Это плата за
то, что производные рассчитываются более точно, следовательно, этот метод должен
быть более точный.
Если для решения нелинейного уравнения применить метод простой итерации,
то на каждом шаге интегрирования y k 1 получится, как предел: y n  lim y ns
s 
y ns 1


1
 y n  f ( y n , t )  f ( y ks 11 , t ) , сходится хорошо, когда h f y'  2
2
Рассмотрим случай линейный, стационарный.
27
 x  A x  b

 x(0)  x0
( )
b и x - постоянные вектора, x 0 - начальное состояние системы, b - внешнее
воздействие на систему, A - матрица постоянных коэффициентов.


x (t )
b

 
x  Ax  b
Матричная экспонента:
e11 (t )  e1n (t ) 
A 2
Ak t k
е  E  At  t  ... 
 ...   
eij (t )
 
2!
k!
en1 (t )  enn (t )
d At
A k t k 1
e  0  A  At  ... 
 ...  Ae At
dt
(k  1)!

 

Ищем решение в виде: х  е Аt с , х  Ах


x  e At c - общее решение однородного дифференциального уравнения.



xон  xоо  xч.н - общее решение неоднородного уравнения. Предположим, что


x0 (t )  0 при t  , следовательно, x ч.н  0
 



0  Аxч.н  b , xч.н   A 1b


x  e At c  A 1  общее решение неоднородного уравнения.




Из условия x(0)  x0 , x 0  Ес  А 1b , c  x0  A 1b .




x (t )  e At ( x0  A1b )  A1b  решение задачи Коши .
At
A
Ak h k
Пусть t k  0, t k 1  h , e Ah  E  Ah  h 2  ... 
.
2
!
k
!



xk 1  e Ah  xk  d
Решим систему неявной схемой:

 





h 
h 
h 
x k 1  x k  ( Ax k  b  Ax k 1  b ), x k 1  Ax k 1  x k  Ax k  b  h
2
2
2

h 
h 
( E  A) x k 1  ( E  A) x k  h  b
2
2


h
h 
h
x k 1  ( E  A) 1  ( E  A) x k  h  ( E  A) 1  b
2
2
2
Краевые задачи
 U ( x) 
  неизвестны
z  
V ( x) 
U ( x)  f ( x,U ,V )
(1)

V ( x)  g ( x,U ,V )
 (U (a), V (a))  0
(2)  краевые условия

 (U (b), V (b))  0
28
В отличие от задачи Коши в краевой задаче (1), (2) нам не известны начальные
значения неизвестных функций U и V, но нам известна связь между значениями U и V
на краях отрезка интегрирования.
Метод стрельб
Будем решать систему уравнений (1) при краевых условиях (2) методом стрельб.
U / ( x)  f ( x,U ,V )
(1)

V
(
x
)

g
(
x
,
U
,
V
)

 (U (a)), V (a))  0
(2)


(
U
(
b
)),
V
(
b
))

0

U (a)
V (b )
V (a )
U (a)
а
b
Рассматриваем уравнение относительно двух переменных  ( ,  )  0 . Если
задать число V (a)   и подставить в уравнение  ( , )  0 . Выберем произвольно
значение V (a)   и подставим в первое уравнение из равенств (2), получим уравнение
относительно  , это нелинейное уравнение будем решать его, например, методом
Ньютона. Найдем,  причем   U (a ) , которое будем рассматривать как U (a) . Таким
образом, полученную пару значений  и  , которые определялись тем, какое 
выбрали. Эти значения можно рассматривать как начальные и решить задачу Коши и
получить какие-то кривые.
U (a )  
V (a)  
~
U (b)


а
~
b
~
~
~
V (b)
~
 (U (b), V (b))  0, U (b) и V (b) будут зависеть от  , то есть это будет функция  ( ) .
29
 ( )
 (1 )
 ( 3 )
0
3
 ( 2 )
2
1

Надо решить  ( )  0 , воспользуемся методом секущих. Запишем схему
  ( s   s 1 ) ( s )
секущих:  s 1  s
 ( s )  ( s 1 )
Это и есть метод стрельб. Данный метод применим, когда размерность не
больше двух.
Пример.
U /  5U  6V  3
(1)

V  4U  3V
U 2 (0)  V (0)  3
(2)
 2
V (1)  U (1)  4
Рассмотрим линейный стационарный случай, то есть система уравнений может

 
х  ах  b
быть
записана
в
матричной
форме
следующим
образом:
(1)


b - правая часть, x - вектор, который мы хотим найти.


x (T )  kx (0)
(2)
Берем общее решение и вместо t подставим Т.



(3)
х (T )  e AT  x (0)  (e AT  E ) A1b

(3) – общее решение 1, взятое в точке t=T и исходящее из х (0) .




kx (0)  e AT  x (0)  (e AT  E ) A 1b отсюда можно найти x (0)


x (0)  (k  e AT )  (e AT  E ) A 1b
(4)

(4) – начальное значение х (t ) , при котором выполняется (2).



х (t )  e At  x (0)  (e At  E ) A 1b
(5)
(5) – точное решение краевой задачи (1), (2).
Разностный метод решения краевых задач
Идея метода: сведение краевой задачи дифференциального уравнения к СЛАУ,
если ДУ линейное и к нелинейной САУ, если ДУ – нелинейное.
Сведение производится через аппроксимацию производных конечными
разностями.
30
Пример (уравнение 2-го порядка)
U // ( x)  P( x)U ( x)  f ( x), a  x  b
U (a)  

U (b)  

U n 1
Un

h
а
h
x n 1 x n
b
ba
N
U n  U n1
h
/
/
U  ( xn )  U ( xn 1 ) 1
 2 (U n1  2U n  U n 1 )
Аппроксимация второй производной U n// 
h
h
U(x) – точное значение, y(x) – приближенное значение, которое находим.
y n  y( xn ), Pn  P( xn ), f n  f ( xn )
Аппроксимация первой производной U / ( xn )  U n/ 
y n 1  2(h 2 p n ) y n  y n 1  h 2  f n
Получится N-1 линейных алгебраических уравнений. Неизвестных точек N+1.
 y0  

2
2
 y n 1  2(h p n ) y n  y n 1  h  f n
y  
 N



2
  h f 1 
 
Получим вектор b  2
, Ay  b
h f 
N


 

3-х диагональная матрица, которая решается методом прогонки.
1
0
0
0
0
1
1  (2  h 2 p )
1
0
0
0
1

0
1
 (2  h 2 p 2 ) 1
0
0
A

0
1

1
0
0
2
0
0
1  (2  h p n 1 ) 1
0
0
0
0
0
1
1

Условие сходимости на всей диагонали: 2  h 2 p n  2
31
Разностный метод
Пример
U // ( x)  U ( x)   x; 0  x 

2
U (a)  0

U (b)  0

4

2 случай. h 
8

U ( x)  sin x  x
2
h  4 h  8
1 случай. h 
 8
–
0.2122
0.2084
 4
0.3503
0.3311
0.3253
3 8
–
0.2778
0.2731
Метод Галеркина (Метод Бубнова - Галеркина)
Данный метод, может быть, применим не только к краевым задачам с ДУ, но и с
другими операторными уравнениями. Краевая задача будет выглядеть следующим
образом: оператор А действует на неизвестную функцию А(U ( х))  f ( x) (1)–
операторное уравнение. Краевые условия: U (a)   ,U (b)   (2) – краевые условия.
Рассмотрим некоторую полную систему функций, заданных на отрезке [a;b].
Система функций  k (x) в данном классе функций Ф называется полной, если
b
имеет место следующее: k   k ( x)  y( x)dx  0  y( x)  0
a
N
Пусть U ( x)   0 ( x)   c j j ( x) , при этом функция  j (x ) должна удовлетворять
j 1
краевым условиям.
 j (a)  0
 0 (a)  
 j ( x)  
,  0 ( x)  
 j (b)  0
 0 (b)  
Задача заключается в нахождении c j .
Решение:
А(U ( х)  f ( x)  0
(1/)
32
А – известный линейный оператор. Подставим U(x) с неизвестными пока c j в левую
часть выражения (1/), умножим левую часть на  j и проинтегрируем это уравнение от а
до b.
b
b
N
b
b
a
j 1
a
a
 ( A  (U )  f )   k dx   A   0 ( x)   k ( x)dx   c j  A  ( j ( x)   k ( x)dx   f ( x)   k ( x)dx  0
a
N
Получим систему :  a kj  c j  bk , k  1, 2, , N , где bk  bk/  bk// .
j 1
Тогда в силу полноты системы (1/)=0.
Пример.
Решим ту же самую задачу, что и разностным методом.  0 - тождественно

положим равным нулю. Краевая задача U //  U   x, U (0)  U ( )  0,  0 ( x)  0 .
2

Полная система имеет вид:  k  x k (  x); k  1,  . Решим эту систему.
2
y
x
U


3
8
4
8
0.445
0.208
0.685
0.315
0.582
0.273


1  x(  x),  2  x 2 (  x)
2
2
Так как N мало, то значение неточное, зато мы сразу получим аналитическое
выражение.
Минимизация функции и функционалов.
Оптимизация может быть условная и безусловная.
Минимизация функции одной переменной.
Все методы оптимизации функции можно поделить:
1. прямые методы
2. «градиентные» методы
Прямые методы – методы, которые используют только значения функций.
«Градиентные» – методы, которые используют значения производных.
Так как минимизация функций нескольких переменных, так или иначе, сводится
к минимизации функций одной переменной, начнем с минимизации функций одной
переменной.
Из всех прямых методов самый интересный – метод золотого сечения.
33
Метод «золотого сечения»
a
b

.
b ab
1
 
  2   1  0 .
 1
Правило золотого сечения
Пусть

a
a
1
 
b
b a
1
b
Найдем
решение
уравнения:
5 1
   12  1  14   12  5 2 
 0.617  0.612
2
1
1     0,388

Договоримся, что первоначальная точка отрезка [a,b], на котором задана
минимизированная функция, мы выберем из соображения золотого сечения.

а

 


x1

x2


   0.62

f ( x0 ), f ( x2 ), f ( x4 ),  f ( x1 ) . Выбросим из старых точек ту точку, которая наиболее
удалена от точки х1, так как в ней функция минимальна. Это точка х4. Мы сузим
отрезок в 0.62 раза, таким образом, остались точки x0 , x1 , x 2 . Надо теперь добавить
точку х3, ее надо выбрать так, чтобы х3 =а+х2-х1
(*)
Окажется, что вновь полученная четверка х0, х1, х2, х3 делит новый отрезок в той
же пропорции, что и точки х0, х1, х2, х4 – исходный отрезок. Это будет соблюдено в
дальнейшем, если будем следовать правилам:
1. Посчитав функцию в единственной новой точке х3 сравниваем значения
f ( x0 ), f ( x1 ), f ( x3 ), f ( x2 ) .
2. Выбираем из этих чисел минимальное и отбрасываем ту точку вместе с
соответствующим
отрезком,
которая
наиболее
удалена
от
этой
соответствующей точки.
3. Вновь пользуемся формулой (*), вновь находим новую точку и так далее.
Таким образом, длины второго отрезка  2 , следовательно длины отрезков будут
уменьшены в геометрической прогрессии с значением   0.62 .
Как только  k (b  a)   , то есть k ln   ln( b  a)  ln  .
ln 
Тогда k 
 условие останова .
ln 
34
Метод парабол
Связь между минимизацией функции и решением уравнений.
Мы должны решить уравнение Ф ( х)  0 , для F ( x)  0 - (минимизировать)
F ( xk )
Ф( xk )
решим его методом Ньютона: xk 1  xk 
. Заменим производные
 xn 
F ( xk )
Ф( xk )
h  Ф( xk  h)  Ф( xk  h)
разностями. В результате чего: xk 1  xk 
2  Ф( xk  h)  2  Ф( xk )  Ф( xk  h)
аппроксимировали 1-ю и 2-ю производные разностями.
Ф( xk 1 )  Ф( xk )
Ф( xk 1 )  Ф( xk )
.
, Ф( xk ) 
h
h
Таким образом, мы перешли к прямому методу (нет производных).
Будем численным методом искать экстремумы функции. Существуют задачи
поиска безусловного условного экстремума.
Задача Лагранжа.
1) f ( x)  extr, f ( x)  0
2)  ( x )  0 (условие)
f  ( x)  f ( x)     ( x)
Так как Ф( xk ) 
f  ( x,  )
 f ( x)     ( x)
x
f 
  ( x)  0
x
Введение  - неопределенный коэффициент, который надо определить.
35
Минимизация функций многих переменных
Задача безусловного экстремума
Рельеф функции
Самый простой случай: размерности 2.
Виды рельефа:
1) Котлованный (самый удобный случай).
2) Устранимый овраг.
3) Истинный овраг (самый не удобный случай).
х2
х2
х1
х1
1) котлованный
2) устранимый овраг
х2
х1
3)истинный овраг
Существуют функции для проверки методов, например, функция Розенброка:

f ( x1 , x2 )  100( x2  x12 )  (1  x1 ) 2 , x   (1;1)
Покоординатный спуск
f ( x1 , x2 ,, xn )  extr
1) Выбираем начальное приближение x1( 0 ) , x 2( 0 ) ,  , x n( 0 ) .
2) Выбираем шаг h1 , h2 ,, hn .
36
Состоит в том, что выбирая начальное приближение и шаги, в цикле по каждой из
координат, последовательно начиная с первой, спускаемся вдоль соответствующей оси.
Закончив цикл по всем координатам уменьшаем шаг и опять спускаемся.
Метод Хука-Дживса
В сущности, этот метод есть усовершенствованный метод покоординатного спуска.
Данный метод состоит из двух этапов:
1) Исследование функции вокруг базисной точки.
2) Движение по образцу.
Указанные этапы есть этапы каждого шага. Итак,

а) выбрав начальную базисную точку b1 и шаг по каждой координате hi , вычисляем функцию

f (b1 ) , а затем
по каждой координате попеременно двигаемся с шагом
hi .




b1  h1e1  h2 e2    hn en
0
0
0
0
«+»- значит, что будем двигаться в сторону увеличения соответствующей координаты,
если это приводит к уменьшению функции, или «-» означает уменьшение функции, или
0 – если изменение координаты не вызывает изменения функции. В результате
прохождения
всех
координат
получим
приращение.







b2  b1  h1e1  h2 e2    hn en , f (b2 )  f (b1 )
0
0
0
0





S  h1e1  h2 e2    hn en , вектор S  образец движения..
0
0 0

б) После b2 строим
точку b1 , то есть двигаемся по образцу, то есть
 

 
 

b1  b2  S1  b1  2(b2  b1 )  2b2  b1 .

После этого уменьшаем шаг в 2 раза и поступаем так же в окрестности b1 , пока
максимальный из шагов не станет меньше  .
37
Download