Численные Методы _ Трещёв
.pdfNMin_SPI(F , x0, ε ) |
|
|
|
|
|
Многомерная_оптимизация_методом |
% |
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
последовательной_параболической_интерполяции % |
|
|
|
||||||||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
по_каждой_переменной % |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
|
|
|
|
|
|
N |
length(x0) |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||
|
|
|
|
|
|
X2 |
x0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
X1 |
x0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
X0 |
x0 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
while 1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
Z X2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
for n |
0.. N |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
X0n |
|
X2n |
0.01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
X1n |
|
X2n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
X2n |
|
X2n |
0.01 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
f0 |
F(X0) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
f1 |
F(X1) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
while |
|
X2n |
|
X1n |
|
|
|
>ε |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
f2 |
|
F(X2) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
A |
|
f2. |
|
|
X1 |
2 |
|
|
|
|
|
|
X0 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A |
|
A |
f1. |
|
|
|
X2 |
2 |
|
|
X0 |
2 |
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A |
|
A |
f0. |
|
|
|
X2 |
2 |
|
|
X1 |
2 |
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
n |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2. |
|
f2. X1 |
|
|
X0 |
|
|
|
f1. |
X2 |
|
X0 |
|
|
|
f0. X2 |
|
X1 |
|
||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
n |
|
n |
|
|
|
|
|
|
|
n |
|
n |
|
|
|
n |
|
n |
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
f0 |
|
f1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
f1 |
|
f2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
X0 |
X1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
X1 |
X2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
X2n |
|
|
A |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
return X2 |
|
if |
|
|
|
|
X2 |
|
|
Z |
|
|
ε . N |
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. П.4.3. Программа многомерной оптимизации методом покоординатного спуска с последовательной параболической интерполяцией
81
Simplex(F , z, ε ) |
N |
rows(z) |
|
|
|
|
|
|
|||
|
x<N > |
|
z |
|
|
|
|
|
|
|
|
|
Dz |
identity(N) |
|
|
|
|
|
||||
|
for |
i |
|
0.. N |
1 |
|
|
|
|
|
|
|
|
Dz |
|
0.5. |
z |
|
|
|
|
|
|
|
|
|
i, i |
|
|
|
|
|
|
|
|
|
|
x<i> |
z |
Dz<i> |
|
|
|
||||
|
p |
Nor(x) |
|
|
|
|
|
|
|||
|
It |
0 |
|
|
|
|
|
|
|
|
|
|
while p>ε |
|
|
|
|
|
|
||||
|
|
It |
|
It |
1 |
|
|
|
|
|
|
|
|
x |
Srt(F , x) |
|
|
|
|
|
|||
|
|
|
|
|
N |
1 |
x<i> |
|
|
||
|
|
Xo |
|
1 . |
|
|
|
|
|||
|
|
|
|
|
N |
|
|
|
|
|
|
|
|
|
|
|
i = 0 |
|
|
|
|
||
|
|
R |
|
Xo |
Xo |
x<N > |
|
|
|||
|
|
FR |
|
F(R) |
|
|
|
|
|
|
|
|
|
if FR>F x<N > |
|
|
|
|
|||||
|
|
|
|
for i |
1 .. N |
|
|
|
|||
|
|
|
|
|
<i> |
|
. <0 > |
<i> |
|
||
|
|
|
|
|
x |
|
0.5 |
x |
|
x |
|
|
|
|
|
It |
|
|
|
|
|
|
|
|
|
otherwise |
|
|
|
|
|
|
|||
|
|
|
|
if |
FR<F(x<0 > ) |
|
|
||||
|
|
|
|
|
E |
Xo |
2. Xo x<N > |
||||
|
|
|
|
|
FE |
|
F(E) |
|
|
|
|
|
|
|
|
|
x<N > |
|
E if FE<FR |
|
|||
|
|
|
|
|
x<N > |
|
R |
if FE |
FR |
|
|
|
|
|
|
otherwise |
|
|
|
|
|||
|
|
|
|
|
x<N > |
|
R if FR F x<N 1 > |
||||
|
|
|
|
|
otherwise |
|
|
|
|||
|
|
|
|
|
|
C |
|
Xo |
0.5. Xo |
x<N > |
|
|
|
|
|
|
|
FC |
F(C) |
|
|
||
|
|
|
|
|
|
x<N > |
C if FC<FR |
||||
|
|
|
|
|
|
x<N > |
R if FC |
FR |
|||
|
|
p |
|
Nor(x) |
|
|
|
|
|
||
|
x<0 > |
|
|
|
|
|
|
|
|
|
|
Рис. П.4.4. Программа многомерной оптимизации симплексным методом |
82
Программа Simplex использует вспомогательные модули
Str(F,x) и Nor(x),
первый из которых проводит сортировку координат вершин симплекса, а второй – вычисляет векторную норму.
Srt(F , x) N |
cols(x) |
1 |
|
|
||
|
for |
i |
0 .. N |
|
|
|
|
f |
F x<i> |
|
|
||
|
i |
|
|
|
|
|
|
y |
stack x, fT |
|
|
||
|
y |
rsort(y, N) |
|
|
||
|
x |
submatrixy(, 0 , N |
1 , 0 , N) |
|||
|
x |
|
|
|
|
|
Nor(x) |
N |
rows(x) |
|
|
|
|
|
for |
i |
0 .. N |
1 |
|
|
|
for j i |
1 .. N |
|
|
||
|
|
Di, j |
x<i> |
x<j> |
|
|
|
max(D) |
|
|
|
||
Рис. П.4.5. Вспомогательные программы для модуля Simplex |
Пример обращения к программным модулям при минимизации функции Розенброка приведен на рис. П.4.6.
FR(x) |
|
100. |
|
x |
|
x 2 |
|
2 |
|
|
1 |
|
|
x 2 |
|
|
|
x0 |
|
|
3 |
x0 |
|
|
3 |
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||
|
|
|
|
|
|||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|||||||||||||||||||||||||||||
|
|
|
|
|
|
1 |
0 |
|
|
|
|
|
|
|
0 |
|
|
0 |
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|
|||||
X |
|
Min_G(FR, x0, 1 , 0.000001) |
XT = |
|
1.00041 |
1.000822 |
1.68434 10 |
|
7 7.751 103 |
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||
X |
|
NMin_SPI(FR, x0, 0.000001) |
XT = |
|
1.000385397 1.000770943 |
|
|
FR(X) = 1.485 10 |
|
7 |
|||||||||||||||||||||||||||
|
|
|
|
|
|||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||
|
|
|
|||||||||||||||||||||||||||||||||||
X |
|
Simplex(FR, x0, 0.000001) XT = |
|
0.999999639 0.999999236 |
|
FR(X) = 2.992 10 |
|
13 |
|||||||||||||||||||||||||||||
|
|
|
|
||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рис. П.4.6. Обращения к программам многомерной оптимизации
83
СОДЕРЖАНИЕ
Предисловие ……………………………………………………….. 3
1.ЧИСЛЕННОЕ РЕШЕНИЕ НЕЛИНЕЙНЫХ УРАВНЕНИЙ
1.1.Введение ……………………………………..……………….……... 4
1.2.Метод простой итерации ……………………...……………………. 5
1.3.Методы половинного деления и ложного положения ..………….. 8
1.4.Метод Ньютона и метод секущих ……………………..…………... 11
1.5. |
Метод Стеффенсена и ускорение сходимости Эйткена ……..…… |
15 |
1.6. |
Метод обратной квадратичной интерполяции …….……..….…… |
19 |
1.7.Численные методы поиска комплексных корней полиномов ….... 20
Литература …………………………………………………………... 22
Приложение 1. Программы решения нелинейных уравнений ..…. 23
2.РЕШЕНИЕ СИСТЕМ НЕЛИНЕЙНЫХ УРАВНЕНИЙ
2.1.Введение ………………………………………………………….…. 27
2.2.Метод простой итерации ………..……….…………………………. 28
2.3.Метод Зейделя ……………………………………………………… 29
2.4.Метод возмущения параметров ……………………………….…… 30
2.5.Итерации Пикара …………………………………………………… 31
2.6.Метод Ньютона ……………………………………………………... 32
2.7.Метод Бройдена …………………………………………………….. 37 Литература ………………………………………………………….. 41
Приложение 2.1. Решение систем уравнений, зависящих от параметра …………………………………………………………… 41
Приложение 2.2. Программы решения систем нелинейных уравнений …………………………………………………………… 43
3.МЕТОДЫ ОДНОМЕРНОЙ ОПТИМИЗАЦИИ
3.1.Введение ………………………………………………………….…. 46
3.2Метод Ньютона ……………………………………………………... 47
3.3Метод последовательной параболической интерполяции ………. 49
3.4Метод золотого сечения ……………………………………….…… 50
3.5Оптимизация методом установления ……………………………... 54
Литература ………………………………………………………….. 59
Приложение 3. Программы одномерной оптимизации ………..… 59
84
4. МНОГОМЕРНАЯ ОПТИМИЗАЦИЯ |
64 |
4.1. Введение ………………………………………………………….…. |
|
4.2. Метод покоординатного спуска …………………………………… |
65 |
4.3. Градиентные методы. Метод наискорейшего спуска ……………. |
68 |
4.4. Метод Ньютона. Квазиньютоновские методы …………………… |
70 |
4.5. Симплексный метод Нелдера-Мида ………………………………. |
73 |
Литература …………………………………………………………... 78 |
|
Приложение 4. Программы многомерной оптимизации ………… |
78 |
85
Учебное издание
Зайцев Валерий Васильевич Трещев Владимир Михайлович
ЧИСЛЕННЫЕ МЕТОДЫ ДЛЯ ФИЗИКОВ.
НЕЛИНЕЙНЫЕ УРАВНЕНИЯ И ОПТИМИЗАЦИЯ
Учебное пособие
Авторская редакция Компьютерная верстка, макет И.К.Зайцева
86