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

ЧМ пособие

.pdf
Скачиваний:
2
Добавлен:
01.06.2024
Размер:
2.37 Mб
Скачать

x

(4 10y)

;

 

y

(8 10x)

 

 

 

 

 

 

 

 

2

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(8 10

4 10y

)

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

12

 

1

 

 

4 10 / 4

 

3

 

y

 

 

 

 

;

y

 

;

x

 

.

 

 

 

 

 

 

 

 

 

2

 

 

 

48

4

2

4

 

 

 

 

 

 

 

 

 

 

 

 

 

f

 

 

 

f

 

 

 

 

f

 

2

 

 

 

2

 

 

 

 

2

 

 

x

2

2;

y

2

2;

 

 

x y

10.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

10

,

2 0;

 

 

4 10 10 96 0.

 

 

 

2

10

2

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Следовательно, функция f(x,y) не имеет точки минимума.

Аналитический метод поиска минимума применяется только для ограниченного круга задач. В основном это связано с необходимостью решения системы нелинейных уравнений, при этом, как правило, численными методами. Поэтому целесообразнее использовать для решения задачи минимизации функции, специально предназначенные для этого численные методы. Рассмотрим некоторые из методов.

8.2. Методы спуска

Большинство итерационных методов, применяемых для решения задач минимизации функции нескольких переменных, относятся к классу методов спуска. Это такие методы, для которых каждая итерация (шаг) приводит к уменьшению значения целевой функции: f(xk+1)<f(xk), для всех k 0.

Структура типичного алгоритма метода спуска для функции двух переменных Q(x,y) состоит в следующем:

1.Задается начальная точка (x0, y0), принадлежащая области допустимых значений функции.

2.На текущей k-й итерации (k=0,1, …n) определяется вектор G(pk ,sk ), задающий направление спуска, причем такой, чтобы для всех достаточно малых значений >0 (где - коэффициент, являющийся шагом поиска) выполнялось неравенство:

Q(xk+ pk, yk+ sk) <Q(xk,yk).

3.Вычисляется шаг поиска - k, для которого выполняется условие п.2, и за очередное приближение к точке минимума принимается точка:

(xk+ pk, yk+ sk), где xk+ pk = xk+1, аyk+ sk = yk+1.

71

4. Проверяется выполнение критерия окончания итераций. Если

критерий метода

выполняется, то полагают (x*,y*) (xk+1,yk+1). В

противном случае

осуществляется переход к п.2 и выполняется

следующая итерация.

Последовательность точек х1, х2, …, хk,получаемую методом спуска,

называют траекторий спуска.

В градиентных методах спуска направление движения к точке минимума целевой функции совпадает с направлением антиградиента, а направление спуска выбирается по формулам:

p

 

Q(x,y) x x

x

y y

k

 

 

 

 

k

s

 

 

Q(x,y) x x

k

 

 

 

y

 

 

k

 

 

y y .

k

 

 

 

 

k

Для использования градиентного метода оптимизации необходимо определить правило выбора шага k на каждой итерации и правило прекращения итерационного процесса.

При решении вопроса о выборе шага k следует учитывать, что выбор малого шага на каждой итерации приведет к малым изменениям аргумента и функции, и, следовательно, к увеличению числа итераций, необходимых для решения задачи. Выбор слишком большого шага k может привести не к убыванию целевой функции Q(x,y), а к ее увеличению, и, следовательно, процесс не будет сходиться к точке минимума.

По способу выбора шага спуска среди градиентных методов наиболее известными являются метод градиентного спуска с дроблением шага (ГДШ) и метод наискорейшего спуска (НС).

8.3. Метод градиентного спуска с дроблением шага

На каждой итерации шаг спуска k выбирается таким образом, чтобы выполнялось условие:

Q(x

,y

 

) Q(x

 

λ

 

p ,y

 

λ

 

s

)

λk

(p2

s2 ).

(8.3-1)

k

k

k

k

k

 

k

 

 

 

k

 

k

 

2

k

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Выбор шага в методе ГДШ заключается в следующем.

Задается начальное значение шага k = 0 (как правило, 0=0,5). Проверяется условие сходимости, приведенное выше. Если условие сходимости выполняется, то шаг спуска для данной итерации выбран, а если оно не

72

выполняется, то принимают новый шаг k = k/2, и снова проверяют условие сходимости (и т.д.).

Алгоритм метода ГДШ можно описать следующей последовательностью действий:

1.При k = 0 задаемся начальной точкой спуска (xk, yk), требуемой точностью и начальным шагом 0(пусть 0 =0,5).

2.Вычисляем значения

Q(xk,yk );

Q

 

;

Q

 

.

(8.3-2)

x

x ,y

y

x ,y

 

k

k

k

k

 

 

 

 

 

3. Вычисляем новые значения переменных

x

 

x

 

λ

 

 

Q

 

 

 

;

 

k 1

k

k

x

x ,y

 

 

 

 

 

 

 

 

 

k

 

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

y

 

y

 

λ

 

 

Q

 

 

 

 

 

.

k 1

k

k

y

x ,y

 

 

 

 

 

 

 

 

 

 

k

 

k

 

 

 

 

 

 

 

 

 

 

 

 

 

4. Проверяем условие сходимости:

(8.3-3)

Q(x

,y

 

) Q(x

,y

 

)

λ

k

((

Q

 

)

2

(

Q

 

2

).

k

k 1

 

 

 

x ,y

 

 

x ,y

)

k

 

 

k 1

 

2

 

x

 

 

 

y

 

 

 

 

 

 

 

 

 

 

k

k

 

 

k

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(8.3-4)

Если условие выполняется, то полагаем величину шага равной k, в противном случае k = k/2 и переходим к п.3.

5.Проверка окончания процесса итераций (необходимого условия существования минимума):

|

Q

 

 

| ε;

и

|

Q

x

x

,y

y

 

 

k 1

k 1

 

 

 

 

 

 

 

 

x

,y

k 1

 

k 1

| ε.

(8.3-5)

Если условие выполнено, то минимум найден, а если нет - вычисление координат следующей точки (k=k+1) и передача управления п.2.

Траектория спуска с использованием метода ГДШ приведена на Рис. 8.3-1.

Рис. 8.3-1.

73

Пример 8.3-1. Найти минимум функции Q(x,y) методом ГДШ.

Пусть Q(x,y) = x2 +2y2; x0 = 2;y0 = 1.

Проверим достаточные условия существования минимума:

Q

2x;

2Q

2;

Q

4y;

2Q

4;

2Q

0.

x

x2

y

y2

x y

 

 

 

 

 

 

2

0

 

1 2 0;

2 8 0.

 

 

 

 

 

4

;

 

 

 

 

0

 

 

 

 

 

 

 

 

 

Проделаем одну итерацию согласно алгоритму.

1.Q(x0,y0) = 6.

2.При х = x0и y = y0 ,

3.Шаг k = 0 = 0,5

Q

4

x

 

Q

4.

y

 

4.

Q(x

,y

 

) Q(x

 

λ

Q

,y

 

λ

Q

)

λ

((

Q

2

(

Q

2

).

0

0

 

0

 

 

 

)

 

 

)

 

0

 

 

 

x

 

 

y

 

2

 

x

 

 

 

y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Таким образом, 4 < 8, следовательно, условие сходимости не выполняется и требуется, уменьшив шаг ( = /2), повторять п.п.3-4 до выполнения условия сходимости. То есть, полученный шаг используется для нахождения следующей точки траектории спуска.

8.4. Метод наискорейшего спуска

Суть метода состоит в следующем. Из выбранной точки (x0,y0) спуск осуществляют в направлении антиградиента до тех пор, пока не будет достигнуто минимальное значение целевой функции Q(x, y) вдоль луча (рис.8.4-1). В найденной точке луч касается линии уровня. Затем из этой точки спуск проводится в направлении антиградиента (перпендикулярном линии уровня) до тех пор, пока соответствующий луч не коснется в новой точке, проходящей через нее линии уровня, и т.д.

74

Рис. 8.4-1

Выразим целевую функцию Q(x, y) через шаг . При этом представим целевую функцию на определенном шаге как функцию одной переменной, т.е. величины шага

(λ) Q(x

k

λ

p ,y

k

λ

s

).

 

k

k

k

k

 

Величина шага на каждой итерации определяется из условия минимума функции (λ) :

(λ*)

= min(

( ))

k = *(xk, yk),

>0.

Таким образом, на каждой итерации выбор шага k предполагает решение задачи одномерной оптимизации. По способу решения этой задачи различают:

-аналитический метод (НСА);

-численный метод (НСЧ).

В методе НСА значение шага получают из условия

'(λ) 0

, а в методе

НСЧ величину k находят на отрезке [0;1]c заданной точностью, используя один из методов одномерной оптимизации.

Пример 8.4-1. Найти минимум функции Q(x,y)=x2 + 2y2 с точностью =0.1, при начальных условиях: x0=2; y0=1.

Проделаем одну итерацию методом НСА. Выразим целевую функцию через величину :

Q

2x;

Q

4y;

Q

 

4;

Q

 

4 .

 

 

 

 

 

 

x

y

x

x0,y0

y

x0,y0

 

 

 

 

 

 

 

 

 

 

(λ)

=(x-2 x)2+2(y-4 y) 2 = x2-4 x2+4 2x2+2y2-16 y2+32 2y2.

Из условия ( )=0 найдем значение *:

λ

x2 4y2

.

2x2 16y2

 

 

 

75

 

 

 

Полученная функция

 

= (x,y) позволяет найти значение . При x=2 и

y=1 имеем =0.3333.

 

 

 

 

 

Вычислим значения координат следующей точки:

x

1

x

0

λ Q

2 0.3333 4 0.6666,

 

 

x

x0,y0

 

 

 

 

y

1

y

0

λ Q

1 0.3333 4 0.3333.

 

 

y

x0,y0

 

 

 

 

Проверим выполнение критерия окончания итераций при k=1:

 

Q

 

 

 

 

 

 

ε;

 

x |x

 

 

 

 

 

 

k 1

,y

k 1

 

Q

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ε

 

y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

|x

k 1

,y

k 1

 

 

 

 

 

 

Поскольку |2*0.6666|>0.1 и |-0.3333*4|>0.1 , то условия окончания процесса итераций не выполнены, т.е. минимум не найден. Поэтому следует вычислить новое значение при x=x1 и y=y1 и получить координаты следующей точки спуска. Вычисления продолжаются до тех пор, пока не выполнятся условия окончания спуска.

Отличие численного метода НС от аналитического состоит в том, что поиск значения на каждой итерации происходит одним из известных численных методов одномерной оптимизации (например, методом дихотомии или методом золотого сечения). При этом в качестве интервала неопределенности служит диапазон допустимых значений € [0;1].

8.5. Метод покоординатного спуска

Выбор антиградиента в качестве направления спуска к минимуму, к сожалению, не всегда является удачным. Градиентный метод сходится достаточно быстро, если для минимизируемой функции поверхности уровня близки к сферам (при m=2 линии уровня близки к окружностям). Однако если поверхности уровня функции сильно вытянуты в некоторых направлениях, что характерно для «овражных» функций, градиентный метод сходится крайне медленно.

У таких функций (в двумерном случае) рельеф поверхности U=Q(x1,x2) напоминает рельеф местности с оврагом. Поэтому такие функции называют «овражными». На рис.8.5-1 приведены графики поверхности и линий уровня «овражной» функции Q(x, y) x2 7 y2 .

76

Q

Q

Рис. 8.5-1

Вдоль направлений, характеризующих «дно оврага», «овражная» функция меняется незначительно, а в других направлениях, характеризующих «склон оврага», происходит резкое изменение значений функции.

Если начальная точка Х0 попадает на «склон оврага», то направление градиентного спуска оказывается почти перпендикулярным «дну оврага» и очередное приближение Х1 попадает на противоположный «склон оврага». Следующий шаг в направлении ко «дну оврага» возвращает приближение Х2напротивоположный «склон оврага» и т.д. В результате вместо того, чтобы двигаться вдоль оврага (в направлении точки минимума), траектория спуска совершает зигзагообразные скачки поперек «оврага» (рис.8.5-2).

Рис. 8.5-2.

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

Проблему «оврагов» позволяет решать, например, метод циклического покоординатного спуска. В этом методе в качестве очередного направления спуска выбирают направление одной из координатных осей.

Рассмотрим n+1 цикл одного из вариантов этого метода, считая, что n–ое приближение (Хn) к минимуму функции Q(X)=Q(x1, … xm) уже найдено.

77

(n+1) , …
На последнем m-ом шаге координату xm(n+1)

1-й шаг. На первом шаге проводят спуск по координате x1. Значения остальных координат x2 = x2(n) , x3 = x3(n) , … , xm= xm(n) фиксируют, а x1(n)

выбирают из условия:

Q(x1(n+1) , x2(n) … xm(n) ) = min Q(x1, x2(n) … xm(n) )

Фактически решается задача минимизации функции одной переменной

Q(x1) = min Q(x1, x2(n) … xm(n) ).

2-шаг. На втором шаге производится спуск по координате x2. Значения остальных координат x1 = x1(n) , x3 = x3(n), … , xm= xm(n) фиксируют, а x2(n+1)

выбирают как решение задачи одномерной оптимизации

Q(x1(n+1), x2(n+1) , x3(n) … xm(n+1) ) = min Q(x1(n+1), x2, x3(n)… xm(n) ).

Аналогично осуществляют следующие шаги.

определяют из условия

Q(x1(n+1) , x2(n+1) , … xm-1(n+1),xm(n+1) ) = minQ(x1(n+1), … xm-1(n+1),xm).

 

В результате получается очередное приближение x(n+1)

к точке

минимума.

Далее цикл метода снова повторяется. Каждый цикл метода состоит из m шагов (т.е. по количеству переменных). Так как на k-том шаге очередного

цикла значение координаты xk(n+1) определяют из условия минимизации функции Q по направлению xk, то необходимо, чтобы в точке (x1(n+1) , x2

xk-1(n+1), xk, xk+1(n+1) , …xm(n+1)) производная

Q

обращалась в ноль.

x

 

 

На рис. 8.5-3 изображена графическая иллюстрация циклического покоординатного спуска для случая m=2.

 

 

(x1y0)

(x0y0)

 

y

 

 

 

 

ymin

 

 

(x1y1)

 

 

 

 

 

 

(x2y1)

 

 

 

x

0

 

xmin

 

 

 

Рис. 8.5-3

 

 

 

78

 

Пример 8.5-1. Найти минимум функции Q(x,y)=x2+10y2-xy-y с точностью =0.01, при начальных условиях: x0=2; y0=3методом циклического покоординатного спуска.

p

 

 

Q

2x y

s

 

 

Q

20 y x 1

x

x

y

y

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1-я итерация: фиксируем y=y0

px

 

Q

0

x1

 

y

0

1.5

;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

 

2

 

 

фиксируем x=x1

 

 

 

Q

0

 

 

x

 

1

0.125

s

 

 

y

1

 

y

 

 

 

 

 

 

y

 

1

 

 

20

 

 

 

 

 

 

 

 

 

Q(x1, y1 ) 2.094 px 2.875; sy 0

2-я итерация: фиксируем y=y

 

p

 

Q

0

 

x

 

 

y1

0.063 ;

 

x

 

2

 

 

 

1

 

 

x

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

фиксируем x=x2

 

 

sy

 

Q

 

0

y2

x2 1

0.053

 

 

y

 

 

20

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Q(x

, y

) 0.024 p

x

0.072;

 

s

y

0

 

 

 

 

 

 

 

2

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

3-я итерация: фиксируем y=y2

фиксируем x=x3

Q(x3 , y3 ) 0.026 px

p

 

 

Q

0

x

x

 

 

 

 

 

 

 

 

 

 

 

 

 

s

 

 

Q

0

 

 

y

y

 

 

 

 

 

 

 

 

 

 

 

0.00179; sy

x

3

 

 

 

 

 

 

y

3

 

 

 

0

 

y

2

0.027

;

 

2

 

 

 

 

 

 

x

3

1

0.053

 

 

 

20

 

 

 

 

 

Тема 9. Методы решения систем линейных уравнений

9.1. Постановка задачи

Методы решения систем линейных уравнений (СЛУ) обычно разделяют

на две большие группы:

точные методы, представляющие собой алгоритмы, позволяющие находить точные решения за конечное число арифметических операций, каждая из которых выполняется точно;

приближенные итерационные методы, при применении которых решение получают в результате бесконечного процесса приближений (сходящийся бесконечный процесс при заданной точности ограничивается конечным числом итераций).

Вобщем виде СЛУ записывается следующим образом:

79

a

x

1

a

 

x

2

 

... a

 

x

n

b

 

 

11

12

 

 

 

1n

 

 

 

1

 

x

a

 

 

x

 

 

a

 

 

x

 

b

 

a

22

2

2n

n

2

 

 

21

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

..............................................

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

a

 

 

x

 

 

a

x

 

 

 

b

 

a

 

 

2

n

 

 

 

 

n1

1

n2

 

 

 

nn

 

 

 

n

 

Другая форма записи – матричная форма:

(9.1-1)

 

 

 

 

 

 

 

 

 

x

1

 

 

b

 

 

 

 

a a

 

...a

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

11 12

1n

 

 

 

 

 

 

 

A

 

a

a

 

...a

 

 

X

x2

 

B

b2

 

,

 

 

 

 

 

 

 

 

 

 

 

 

 

21

22

 

2n

 

 

 

 

 

 

 

a

a

 

...a

 

 

 

...

 

 

...

 

 

 

n2

 

 

 

 

 

 

 

 

 

 

 

 

n1

nn

 

 

x

 

 

 

b

 

 

 

 

 

 

 

 

 

 

 

 

n

 

n

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A X B,

(9.1-2)

где А – матрица коэффициентов, Х – вектор неизвестных, В – вектор свободных членов.

Решением системы (9.1-1) является такой набор значений неизвестных

x ,x

,...x

 

, при котором n уравнений системы обращаются в тождества.

1 2

 

n

 

 

СЛУ может иметь единственное решение, не иметь решения, иметь бесконечное множество решений. Поэтому перед тем как решать СЛУ, надо исследовать ее на предмет существования единственного решения. Исследование сводится к следующему:

если

 

a

a

 

...a

 

11

12

 

1n

 

a

a

22

...a

det A

 

21

 

1n

................

 

 

a

a

n2

...a

 

 

n1

 

nn

0,

то система имеет единственное решение;

если detA= 0 , то система не имеет решения или имеет бесконечное множество решений.

Однако часто

det A 0

могут иметь СЛУ, при решении которых за счет

 

 

накапливания погрешностей получают неверные решения. Такие СЛУ называют плохо обусловленными системами. В случае плохо обусловленных систем решение найти трудно, а точность решения сомнительна.

9.2.Метод Гаусса

Идея метода Гаусса заключается в последовательном исключении неизвестных из уравнений системы. Рассмотрим этот метод на примере СЛУ с тремя неизвестными. Такая система имеет следующий общий вид:

80