- •РАЗДЕЛ I. МЕТОДЫ ОПТИМИЗАЦИИ
- •1. ПОСТАНОВКА ЗАДАЧ ОПТИМИЗАЦИИ И ИХ КЛАССИФИКАЦИЯ.
- •1.1. Постановка задачи
- •1.2. Методы нахождения минимума функции одной переменной
- •Метод деления отрезка пополам
- •Метод золотого сечения
- •Метод последовательного перебора
- •Метод квадратичной параболы
- •Метод кубической параболы
- •1.3. Рельеф функции
- •1.4. Представление функции в окрестности минимума
- •1.5. Классификация методов оптимизации
- •2.МЕТОДЫ НУЛЕВОГО ПОРЯДКА
- •2.1. Описание общего алгоритма методов покоординатного спуска.
- •2.2 Метод ГАУССА-ЗЕЙДЕЛЯ
- •2.3. Метод ПАУЭЛЛА
- •2.4. Метод ДСК
- •2.5. Метод РОЗЕНБРОКА
- •2.6. Метод покоординатного последовательного перебора
- •2.7. Метод ХУКА-ДЖИВСА
- •2.8. Метод НЕЛДЕРА-МИДА
- •3. МЕТОДЫ ПЕРВОГО ПОРЯДКА И МЕТОДЫ С ПЕРЕМЕННОЙ МЕТРИКОЙ
- •3.1. Метод спуска по градиенту
- •3.3. Метод Давидона-Флетчера-Пауэлла
- •3.4. Метод проективного градиента
- •3.5. Метод Мак-Кормика 1
- •3.6. Метод Мак-Кормика 2
- •3.7. Метод Гольдфарба
- •3.8. Метод Гринстадта
- •4. МЕТОДЫ УСЛОВНОЙ ОПТИМИЗАЦИИ ФУНКЦИИ N ПЕРЕМЕННЫХ.
- •4.1. Метод штрафных функций
- •РАЗДЕЛ II. ЧИСЛЕННЫЕ МЕТОДЫ УРАВНЕНИЙ МАТЕМАТИЧЕСКОЙ ФИЗИКИ
- •1. МАТЕМАТИЧЕСКИЕ МОДЕЛИ И ЧИСЛЕННЫЕ МЕТОДЫ
- •1.1. Как исследуются физические явления и решаются задачи
- •1.2. Как оценивается погрешность вычислений?
- •1.3. Откуда возникают погрешности расчетов?
- •1.4. Итерационные методы решения задач
- •2. КЛАССИФИКИЦИЯ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ
- •2.1. Определение дифференциальных уравнений
- •2.2. Постановка задач для обыкновенных ДУ
- •2.4. Как получают дифференциальные уравнения
- •2.5. Подобие физических явлений, безразмерные переменные
- •3. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ МЕТОДА СЕТОК
- •3.1. Теоретические основы метода сеток
- •3.2 Решение систем обыкновенных дифференциальных уравнений
- •4. РЕШЕНИЕ КРАЕВОЙ ЗАДАЧИ ДЛЯ ДИФФЕРЕНЦАЛЬНЫХ УРАВНЕНИЙ 2-ГО ПОРЯДКА МЕТОДОМ ПРОГОНКИ
- •5. РЕШЕНИЕ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ В ЧАСТНЫХ ПРОИЗВОДНЫХ
- •5.1. Одномерное нестационарное уравнение теплопроводности
- •5.2. Задача Дирихле для двухмерного уравнения Пуассона
Министерство образования Республики Беларусь
Учреждение образования БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ
ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ
Кафедра «Вычислительные методы и программирование»
Синицын А. К., Навроцкий А. А.
ВЫЧИСЛИТЕЛЬНАЯ МАТЕМАТИКА
Лекции для студентов 2-го курса специальностей I - 39 01 03-“Радиоинформатика”,
I - 41 01 03-“Квантовые информационные системы
факультет факультет радиотехники и электроники
Минск 2008
СОДЕРЖАНИЕ |
|
РАЗДЕЛ I. МЕТОДЫ ОПТИМИЗАЦИИ................................................................. |
6 |
1. ПОСТАНОВКА ЗАДАЧ ОПТИМИЗАЦИИ И ИХ КЛАССИФИКАЦИЯ. ....... |
6 |
1.1. Постановка задачи............................................................................................ |
6 |
1.2. Методы нахождения минимума функции одной переменной..................... |
6 |
Метод деления отрезка пополам......................................................................... |
7 |
Метод золотого сечения ...................................................................................... |
8 |
Метод последовательного перебора................................................................... |
8 |
Метод квадратичной параболы........................................................................... |
9 |
Метод кубической параболы............................................................................. |
10 |
1.3. Рельеф функции.............................................................................................. |
11 |
1.4. Представление функции в окрестности минимума..................................... |
12 |
1.5. Классификация методов оптимизации......................................................... |
12 |
2.МЕТОДЫ НУЛЕВОГО ПОРЯДКА...................................................................... |
14 |
2.1. Описание общего алгоритма методов покоординатного спуска............... |
14 |
Особенности программной реализации. .......................................................... |
14 |
2.2 Метод ГАУССА-ЗЕЙДЕЛЯ............................................................................ |
15 |
2.3. Метод ПАУЭЛЛА........................................................................................... |
15 |
2.4. Метод ДСК...................................................................................................... |
15 |
2.5. Метод РОЗЕНБРОКА..................................................................................... |
15 |
2.6. Метод покоординатного последовательного перебора.............................. |
15 |
2.7. Метод ХУКА-ДЖИВСА................................................................................ |
16 |
2.8. Метод НЕЛДЕРА-МИДА .............................................................................. |
16 |
3. МЕТОДЫ ПЕРВОГО ПОРЯДКА И МЕТОДЫ С ПЕРЕМЕННОЙ |
|
МЕТРИКОЙ............................................................................................................... |
19 |
3.1. Метод спуска по градиенту ........................................................................... |
19 |
3.2. Метод сопраженных градиентов (Флетчера-Ривса).................................... |
19 |
3.3. Метод Давидона-Флетчера-Пауэлла............................................................. |
20 |
3.4. Метод проективного градиента..................................................................... |
20 |
3.5. Метод Мак-Кормика 1.................................................................................... |
21 |
3.6. Метод Мак-Кормика 2.................................................................................... |
21 |
3.7. Метод Гольдфарба.......................................................................................... |
21 |
3.8. Метод Гринстадта........................................................................................... |
21 |
4. МЕТОДЫ УСЛОВНОЙ ОПТИМИЗАЦИИ ФУНКЦИИ N ПЕРЕМЕННЫХ. 22 |
|
4.1. Метод штрафных функций............................................................................ |
22 |
РАЗДЕЛ II. ЧИСЛЕННЫЕ МЕТОДЫ УРАВНЕНИЙ МАТЕМАТИЧЕСКОЙ |
|
ФИЗИКИ .................................................................................................................... |
24 |
4
1. |
МАТЕМАТИЧЕСКИЕ МОДЕЛИ И ЧИСЛЕННЫЕ МЕТОДЫ....................... |
24 |
|
1.1. Как исследуются физические явления и решаются задачи........................ |
24 |
|
1.2. Как оценивается погрешность вычислений? ............................................... |
25 |
|
1.3. Откуда возникают погрешности расчетов? ................................................. |
27 |
|
1.4. Итерационные методы решения задач......................................................... |
28 |
2. |
КЛАССИФИКИЦИЯ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ .................... |
30 |
|
2.1. Определение дифференциальных уравнений.............................................. |
30 |
|
2.2. Постановка задач для обыкновенных ДУ.................................................... |
30 |
|
2.3. Постановка задач для ДУ в частных производных (ДУЧП) ...................... |
31 |
|
2.4. Как получают дифференциальные уравнения............................................. |
34 |
|
2.5. Подобие физических явлений, безразмерные переменные........................ |
35 |
3. |
ТЕОРЕТИЧЕСКИЕ ОСНОВЫ МЕТОДА СЕТОК............................................. |
38 |
|
3.1. Теоретические основы метода сеток............................................................ |
38 |
|
3.2 Решение систем обыкновенных дифференциальных уравнений............... |
42 |
|
3.2.1. Задача Коши.............................................................................................. |
42 |
4. |
РЕШЕНИЕ КРАЕВОЙ ЗАДАЧИ ДЛЯ ДИФФЕРЕНЦАЛЬНЫХ |
|
УРАВНЕНИЙ 2-ГО ПОРЯДКА МЕТОДОМ ПРОГОНКИ.................................. |
47 |
|
5. |
РЕШЕНИЕ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ В ЧАСТНЫХ |
|
ПРОИЗВОДНЫХ ...................................................................................................... |
49 |
|
|
5.1. Одномерное нестационарное уравнение теплопроводности..................... |
49 |
|
5.2. Задача Дирихле для двухмерного уравнения Пуассона............................. |
50 |
5
РАЗДЕЛ I. МЕТОДЫ ОПТИМИЗАЦИИ
1. ПОСТАНОВКА ЗАДАЧ ОПТИМИЗАЦИИ И ИХ КЛАССИФИКАЦИЯ.
1.1. Постановка задачи
Главной целью большинства выполняемых на компьютере расчетов является принятие оптимального в конкретной ситуации решения или, что тоже самое, сделать наилучший выбор из множества допустимых вариантов. Например, сколько и куда вложить деньги, чтобы получить наибольшую прибыль; по какой дороге поехать, чтобы сэкономить бензин, время и при этом обеспечить безопасность; как выбрать параметры прибора, что бы при его минимальной стоимости изготовления достигался максимум КПД.
В каждом случае при решении задачи выбора требуется построить математическую модель, описывающую конкретную ситуацию. Формулировка модели содержит определенное число параметров x ={x1,..., xn }, значение кото-
рых соответствует конкретному варианту. Результатом решения соответствующей математической задачи при заданном значении параметров является значение целевой функции f (x) , определяющей ценность выбранного варианта.
Так для вышеприведенных примеров ситуаций: f1(xr) −величина прибыли, f2 (xr) −номер дороги, f3(xr) −величина КПД.
В результате, задача принятия оптимального решения приводит к нахождению оптимального (максимального или минимального) значения f (x) . Следует отметить, что нахождение максимума f (x) эквивалентно нахождению
минимума |
− f (x) , поэтому стандартные программы разрабатываются, как |
|||||||||
правило, для нахождения min f (x) . |
|
|||||||||
|
|
|
Пусть |
в |
Евклидовом пространстве En |
задана функция f (x) |
||||
|
xr = (x , x ,..., x |
). |
|
|||||||
1 2 |
n |
|
|
|||||||
|
|
|
Говорят, что f (xr) имеет локальный минимум в точке xr*, если существует |
|||||||
некоторая |
ε −окрестность точки x *, в которой |
выполняется f (x*) < f (xr) , |
||||||||
|
|
|
xr − xr* |
|
|
|
≤ ε |
|
|
|
|
|
|
|
|
|
|
||||
В отличие от задач дискретной оптимизации, здесь будем полагать, что f (xr) непрерывная дважды дифференцируемая функция.
1.2. Методы нахождения минимума функции одной переменной
Задача нахождения минимума функции одной переменной min f(x) нередко возникает в практических приложениях. Кроме того, многие методы решения задачи минимизации функции многих переменных сводятся к многократному поиску одномерного минимума. Поэтому разработка все новых, более эффективных одномерных методов оптимизации продолжается и сейчас, несмотря на кажущуюся простоту задачи.
6
Наиболее часто используемые методы можно разбить на два класса:
1)методы уточнения минимума на заданном интервале [a, b] (метод де-
ления пополам, метод золотого сечения);
2)методы спуска к минимуму из некоторой начальной точки x0 (метод последовательного перебора, метод квадратичной параболы, метод кубической параболы).
Методы из класса 1 предназначены для нахождения условного минимума. Задача ставится следующим образом: требуется найти такое значение xm из
отрезка [a, b], при котором достигается минимум функции ym=f(xm), т.е. для любого x [a, b] выполняется условие ym ≤ f (x) .
Методы из класса 2 предназначены для поиска и уточнения безусловного локального минимума. Задача ставится следующим образом: требуется найти такое значение xm , xm < ∞, при котором достигается локальный минимум
ym=f(xm), т.е. для любого x из некоторой ε окрестности E ={x, x − xm < ε} выполняется ym ≤ f(x). В этом случае при нахождении точки xm обычно нет доста-
точно точной информации о ее положении, кроме соображений физического характера. Поэтому из этих соображений задают некоторое начальное приближение x0, с которого начинают спуск к точке минимума.
Нахождение требуемого минимума функции осуществляется в два этапа:
1.Приближенное определение местоположения минимума из анализа таблицы значений функции.
2.Вычисление точки минимума xm c заданной точностью одним из ниже приведенных методов.
Метод деления отрезка пополам
Задаются a, b и погрешность ε.
1. Берем две точки вблизи середины интервала [a, b]: x1 = (a +b −ε) / 2, x2 = (a + b +ε) / 2 .
2. |
Вычисляем y1 = f (x1), y2 = f (x2 ) . |
|
3. |
Если y1 > y2, тогда присваивается |
a=x1, |
|
иначе присваивается |
b=x2. |
4. |
Если b-a>2ε, тогда повторяем с п.1., иначе с п.5. |
|
5. |
Вычисляем xm = (a + b) / 2, ym = f (xm ). |
|
6. Конец.
В среднем за одно вычисление функции отрезок, на котором находится x, уменьшается примерно в 0.75 раза. Этот метод прост в реализации, позволяет находить минимум разрывной функции, однако требует большого числа вычислений функции для обеспечения заданной точности.
7
Метод золотого сечения |
|||
Золотое сечение - это такое деление отрезка a b на две неравные части a |
|||
x1 и x1 b, при котором имеет место следующее соотношение: |
|||
x1b / ab = ax1 / x1b =1−ξ 0.62, |
ξ = 2 /(3 + |
5) 0.381966011. |
|
|
|
Алгоритм поиска минимума анало- |
|
|
|
гичен описанному выше MDP и отлича- |
|
|
|
ется тем, что вначале точки x1 и x2 выби- |
|
|
|
раются так, чтобы выполнялось золотое |
|
|
|
отношение, и вычисляются значения |
|
|
|
функции в этих точках: |
|
|
|
В последующем, после очередного |
|
|
|
сокращения интервала путем отбрасыва- |
|
|
|
ния неблагоприятной крайней точки, на |
|
|
|
оставшемся отрезке уже имеется точка, |
|
|
|
делящая его в золотом отношении, (точ- |
|
|
|
ка x1 на рис. 1.1) известно и значение |
|
|
|
функции в этой точке. Остается лишь |
|
Рис. 1.1 |
|
выбрать ей симметричную и вычислить |
|
|
значение функции в этой точке для того, |
||
|
|
||
отбросить. |
|
чтобы решить, какую из крайних точек |
|
|
|
|
|
1. x1 = a +ξ(b − a), x2 = b −ξ(b − a), y1 = f (x1), y2 = f (x2 ) . |
|||
2. Если y1>y2, тогда a=x1, |
x1=x2, y1=y2, |
x2=b-ξ(b-a); y2=f(x2), |
|
иначе b=x2, |
x2=x1, y2=y1, |
x1=a+ξ(b-a), y1=f(x1). |
|
3. Если (b-a)>ε, тогда повторить п.2. |
|
||
4. xm = (a +b) / 2, ym = f (xm ) . |
|
|
|
5. Конец. |
|
|
|
За одно вычисление функции отрезок, на котором находится xm, уменьшается в |
|||
1-ξ 0.62 раза, т.е. быстрее, чем МДР. Данный метод является наилучшим сре- |
|||
ди методов класса 1. |
|
|
|
Метод последовательного перебора
Идея этого метода состоит в том, что, спускаясь из точки x0 с заданным шагом h в направлении уменьшения функции, устанавливают интервал длиной h, на котором находится минимум, и затем его уточняют. Уточнение можно осуществить либо методом золотого сечения, либо повторяя спуск с последней точки, уменьшив шаг и изменив его знак. Алгоритм последнего варианта приведен ниже.
Задаются x0, некоторый шаг h и погрешность ε .
1.Из точки x0 делается шаг x1=x0+h и вычисляются y1 = f (x1) .
2.x0=x1, y0=y1 - запоминается удачная точка.
3.x1=x0+h, y1=f(x1) - делаем следующий шаг в удачном направлении.
4.Если функция убывает, y1<y0, то повторить с п.2, иначе п.5.
8
5.h=−h/4. В точке x1 функция оказалась большей, чем в x0, следовательно, мы перешагнули точку минимума и организуем спуск в обратном направлении.
6.Если h >ε / 4 , тогда повторить с п.2, иначе перейти к п.7.
7.xm = x0, fm = f0 , конец.
Скорость сходимости данного метода существенно зависит от удачного выбора начального приближения x0 и шага h. Шаг h следует выбирать как половину оценки расстояния от x0 до предполагаемого минимума xm.
Метод квадратичной параболы
Для ускорения спуска к минимуму из некоторой точки x0 используют локальные свойства функции вблизи этой точки. Так, скорость и направление убывания можно определить по величине и знаку первой производной. Вторая производная характеризует направление выпуклости: если f''>0, то функция имеет выпуклость вниз, иначе - вверх. Вблизи локального безусловного минимума дважды дифференцируемая функция всегда выпукла вниз. Поэтому, если вблизи точки минимума функцию аппроксимировать квадратичной параболой, то она будет иметь минимум. Это свойство и используется в методе квадратичной параболы, суть которого в следующем.
Вблизи точки x0 выбираются три точки x1, x2, x3. Вычисляются значения y1, y2, y3. Через эти точки проводится квадратичная парабола
p(x − x )2 |
+ q(x − x ) + r = pz2 + qz + r, |
|
|
|
|
|
|
|
|
||||||||||||
|
3 |
|
|
|
|
|
3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
z = x − x3, |
|
|
z1 = x1 − x3, |
z2 = x2 − x3, |
r = y3, |
|
|
|
(2.1) |
||||||||||||
|
( y − y |
3 |
)z |
2 |
−( y |
2 |
− y |
3 |
)z |
( y − y |
3 |
)z2 |
−( y |
2 |
− y |
3 |
)z2 |
||||
p = |
1 |
|
|
|
|
1 |
, q = |
1 |
|
2 |
|
|
1 |
. |
|||||||
|
z1z2 (z1 − z2 ) |
|
|
|
z1z2 (z2 − z1) |
|
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|||||||||||||
Если p>0, то парабола имеет минимум в точке zm = −q /(2 p).. Следова-
тельно, можно аппроксимировать положение минимума функции значением xm1 = x3 + zm и, если точность не достигнута, следующий спуск производить,
используя эту новую точку и две предыдущие. Получается последовательность xm1, xm2 , xm3, ... , сходящаяся к точке xm.
Алгоритм метода можно записать следующим образом
Задается x0, h и ε.
1.Выбираем 3 точки: x1 = x0 − h, x2 = x0, x3 = x0 + h ,
2. |
Вычисляем y1 = f (x1), y2 = f (x2 ), y3 = f (x3) . |
3. |
Проверяем положительность знака второй производной: |
h2 f ′′ y1 − 2 y2 + y3 > 0 , если да, то переходим к п.4,
иначе начальное приближение x0 выбрано неудачно (в x0 имеется выпуклость вверх) и следует закончить вычисления с таким сообщением.
4.Вычисляем z1, z2, p, q, r, zm по вышеприведенным формулам (2.1).
5.Переименовываем точки, отбрасывая точку x1:
x1=x2, y1=y2, x2=x3, y2=y3, x3=x3+zm, y3=f(x3).
9
