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

Численные Методы _ Трещёв

.pdf
Скачиваний:
33
Добавлен:
07.06.2015
Размер:
777.6 Кб
Скачать

NMin_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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]