Скачиваний:
178
Добавлен:
15.06.2014
Размер:
672.39 Кб
Скачать

Министерство образования Республики Беларусь

Учреждение образования БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ

Кафедра «Вычислительные методы и программирование»

Синицын А. К., Навроцкий А. А.

ВЫЧИСЛИТЕЛЬНАЯ МАТЕМАТИКА

Лекции для студентов 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