- •РАЗДЕЛ 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. Задача Дирихле для двухмерного уравнения Пуассона
3.ТЕОРЕТИЧЕСКИЕ ОСНОВЫ МЕТОДА СЕТОК
3.1.Теоретические основы метода сеток
До появления вычислительных машин для решения дифференциальных уравнений использовались в основном приближенные методы, основанные на поиске решения в виде разложения его в ряд по некоторому параметру. Эти методы обычно требуют очень глубоких аналитических исследований решаемой задачи и поэтому не могут быть универсальными.
Прогресс в области вычислительной техники позволяет разрабатывать универсальные алгоритмы решения дифференциальных уравнений, требующие от пользователя лишь корректно поставить задачу и правильно задать программе начальные и граничные условия. Одним из наиболее широко используемых универсальных методов решения задач для дифференциальных уравнений является метод сеток.
Суть метода сеток в том, что решение ДУ получают в отличие от классических методов не в виде некоторой комбинации функций, а в виде достаточно подробной таблицы значений искомого решения в узлах сетки, покрывающей область определения решения (область исследуемого поля). При этом получаемая таблица должна обладать свойством аппроксимации, т.е. возможностью восстановления всех значений искомого точного решения с заданной погрешностью.
Постановка задачи
Будем иллюстрировать реализацию метода сеток на решении простейшей
одномерной краевой задачи Дирихле для ОДУ второго порядка: |
|
|||||
|
∂ |
|
|
|
|
|
|
g(x,u) |
∂u |
= f (x,u); |
u(0) =α; u(b) = β. |
(3.1) |
|
|
|
|||||
|
∂ x |
∂ x |
|
|
|
|
В общем случае задачу Дирихле для дифференциального уравнения запишем в виде
Lu = f ; u |
|
Г =ϕ(Г), |
(3.2) |
|
|||
|
|
где L - дифференциальный оператор u = u(x) , Г - граница многомерной об-
ласти Ω, внутри которой необходимо получить решение. В рассматриваемом частном случае Ω представляет собой отрезок [0,b], Г - точки [0], [b].
Решение методом сеток предполагает следующие этапы.
1. Построение сетки, представляющей собой набор узлов (точек), «рав-
номерно» распределенных по области Ω. Множество таких узлов будем обо- |
||||
значать |
ωh ={xi , xi Ω}. |
Для |
одномерного |
случая |
ωh ={0 = x1 < x2 <... < xn+1 = b}, hk = xk+1 − xk −шаг сетки. Если hk = h = b / n , сетка |
||||
называется равномерной. Для упрощения в дальнейшем будем использовать |
||||||
равномерные |
по |
координатам |
сетки: |
ωh ={(i −1)h, i =1...n +1}, |
||
ωh ,h |
y |
={ (i − |
1)hx , ( j −1)hy , i =1...n +1, |
j =1...m +1} и т.д. Параметр h (в общем |
||
x |
|
|
|
|
|
|
38
случае hr = (hx , hy ,...) ) является основным параметром метода сеток. Главное
требование к выбору сетки состоит в том, чтобы при h → 0 узлы сетки покрывали все точки Ω, а при конечном h таблица должна обладать хорошими аппроксимационными свойствами.
2. Получение конечно-разностной схемы. Решение u(x) ищется в виде таблицы значений в узлах выбранной сетки uh ={ui = u(xi )}(для двухмерной области uh ={uij = u(xi , y j )}). При этом дифференциальное уравнение заменяет-
ся системой алгебраических уравнений, связывающих между собой значения искомой функции в соседних узлах. Такая система алгебраических уравнений называется конечно-разностной схемой.
Для записи конечно-разностной схемы, полученной для уравнения (3.2),
введем следующие обозначения: |
|
|||||||||||
|
Lh |
|
h = |
|
|
|
|
|
|
(3.3) |
||
u |
fh , |
|||||||||||
здесь |
u |
h = ( |
u1, |
u |
2 ,..., |
u |
n+1 )−полученные |
в результате решения конечно- |
||||
разностной схемы значения искомой функции u(x) в узлах сетки. Ввиду погрешностей расчета значения uh заведомо будут отличны от точных значений uh , поэтому расчетные значения будем отмечать «крышкой»; Lh - оператор, обычно это матрица системы; fh − таблица усредненных значений функции f (x) в узлах сетки.
Имеется несколько способов получения конечно-разностной схемы. Приведем для примера один из универсальных – интегроинтерполяционный. Согласно этому способу, область Ω = [0,b] разобьем на элементарные непересе-
кающиеся подобласти, в центре каждой |
|
из |
которых |
имеется |
узел |
сетки: |
||||||||||||||||||||||||
Ωi |
=[xi−1/ 2 , xi+1/ 2 |
], xi−1/ 2 |
= xi − h / 2, xi+1/ 2 = xi |
+ h / 2, |
|
i = 2...n . После |
чего |
проин- |
||||||||||||||||||||||
тегрируем (4.1) по каждой области Ωi |
и получим следующую систему |
n −1 |
||||||||||||||||||||||||||||
уравнений: |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
xi+1/ 2 |
∂ |
|
|
|
|
xi+1/ 2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
∫ |
|
|
g ∂u |
dx = |
|
∫ |
f (x) dx; |
i = 2...n. |
|
|
|
|
(3.4) |
|||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
|
|
|
|
|
∂x |
∂x |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
xi−1/ 2 |
|
|
xi+1/ 2 |
|
xi−1/ 2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
Обозначим |
|
= 1h x |
∫ |
f (x) dx f (xi ); |
fh ={ |
|
|
fn}. |
|
|
|
|
|
|
||||||||||||||||
fi |
f2 ,..., |
|
|
|
|
|
|
|||||||||||||||||||||||
|
|
|
|
|
|
|
|
|
i−1/ 2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
Левую часть уравнения (4.4) преобразуем следующим образом: |
|
|
|
|
|
|||||||||||||||||||||||||
1 |
xi+1/ 2 |
∂ |
|
∂u |
|
|
1 |
|
|
|
|
∂u |
|
|
|
|
1 |
|
|
|
|
ui −ui−1 |
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||||||
|
∫ |
g |
dx |
= |
g ∂u |
|
|
− g |
|
|
|
|
gi+1/ 2 ui+1 −ui − gi−1/ 2 |
. |
||||||||||||||||
h |
|
∂x |
∂x |
h |
|
|
∂x |
|
|
|
h |
|
||||||||||||||||||
|
|
|
|
∂x |
|
xi+1/ 2 |
|
|
|
|
|
|
h |
|
|
h |
|
|
||||||||||||
|
xi−1/ 2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
xi−1/ 2 |
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||
В результате из (3.4) получаем следующую конечно-разностную схему, каждое уравнение которой связывает значения таблицы в трех смежных узлах сетки (т.е. используется трехточечный шаблон):
39
|
g |
i−1/ |
|
|
g |
i−1/ 2 |
+ g |
i+1/ 2 |
|
|
g |
i+1/ |
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
||||||||||||
|
|
2 |
ui−1 |
− |
|
|
|
|
ui |
+ |
|
2 |
ui+1 |
= fi , i = 2...n. |
(3.5) |
|||||||
|
|
2 |
|
|
|
h |
2 |
|
|
2 |
|
|||||||||||
|
|
h |
|
|
|
|
|
|
|
|
|
h |
|
|
|
|
|
|
|
|||
После добавления двух уравнений |
u1 =α, |
u |
n+1 = β, являющихся следстви- |
|||||||||||||||||||
ем граничных условий (3.1), имеем систему из n +1 уравнений с n +1 неизвестными, которая является конкретной реализацией общей записи (3.3).
3. Решение системы конечно-разностных уравнений. Если коэффициен-
ты исходного дифференциального уравнения g и f не зависят от u , конечно-
разностная схема представляет собой систему линейных алгебраических уравнений с ленточной матрицей. В нашем примере одномерная задача (3.5) приводится к следующей стандартной системе с трехдиагональной матрицей вида:
b1 |
c1 |
0 |
0 ... |
0 |
0 |
0 |
|
u1 |
|
d1 |
|
|
|
||||||||
a |
b |
c |
0 ... |
0 |
0 |
0 |
|
u |
2 |
|
d |
2 |
|
|
|
||||||
|
2 |
2 |
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
|
0 |
a3 |
b3 |
c3 ... |
0 |
0 |
0 |
|
|
|
|
|
|
|
|
|
|
, |
(3.6) |
||
|
|
|
|
|
|
||||||||||||||||
|
u3 |
|
= d3 |
|
|||||||||||||||||
... ... ... |
... ... ... ... |
... |
... |
|
... |
|
|
|
|||||||||||||
|
0 |
0 |
0 |
0 ... |
a |
b |
c |
|
u |
|
|
|
d |
|
|
|
|
||||
|
|
|
|
|
n |
|
n |
n |
|
|
n |
|
|
|
n |
|
|
|
|||
|
0 |
0 |
0 |
0 ... |
0 |
a |
n1 |
b |
|
u |
n1 |
|
d |
n1 |
|
|
|
||||
|
|
|
|
|
|
|
n1 |
|
|
|
|
|
|
||||||||
здесь n1 = n +1; b1 =1; c1 = 0; d1 =α; an1 = 0; bn1 =1; dn1 = β;
a = g |
|
; |
c = g |
|
; |
b = −a −c ; |
d |
|
= h2 |
|
; i = 2...n. |
|
i−1/ 2 |
i+1/ 2 |
i |
f |
|||||||||
i |
|
i |
|
i |
i i |
|
|
i |
|
|||
Решение такой системы получают эффективным методом прогонки, который реализуется в 2 цикла:
1) прямой ход
|
ξ1 = −c1 / b1; η1 = d1 / b1; |
|
||||||||||||||
для |
i = 2...n вычисляем: ξi = −ci / (bi + aiξi−1 ); ηi = (di − aiηi−1 )/ (bi |
+ aiηi−1 ); |
||||||||||||||
|
2) обратный ход |
|
||||||||||||||
|
u |
n1 = (dn1 − an1ηn )/ (bn1 + an1ηn ); |
|
|||||||||||||
для |
i от n до 1 вычисляем: |
ui =ξi |
ui+1 +ηi . |
|
||||||||||||
|
Достаточным (хотя не необходимым) и легко проверяемым условием ус- |
|||||||||||||||
тойчивости прогонки является выполнение неравенства |
|
|||||||||||||||
|
|
|
bi |
|
≥ |
|
ai |
|
+ |
|
ci |
|
, |
(3.7) |
||
|
|
|
|
|
|
|
|
|||||||||
причем хотя бы для одного i 1...n1 должно быть выполнено строгое неравенство. В нашем примере b1 > c1 и bn1 > an1 .
В случае нелинейной задачи, когда g(x,u) , f (x,u) , решение (3.6) ищется итерационным методом задается некоторое начальное приближение искомого решения uh0 , находятся gh (uh0 ), fh (uh0 ), ai , bi , ci , di , после чего решается система (4.6) и находится новое приближение uh1 . Итерации производятся до
достижения сходимости или же до констатации расходимости итерационного процесса.
4. Нахождение погрешности аппроксимации. При замене дифференци-
ального уравнения системой алгебраических уравнений вносится так называе-
40
мая погрешность аппроксимации конечно-разностной схемой дифференци-
ального уравнения, которая получается следующим образом: подставим в ко- нечно-разностную схему (3.3) вместо uh значения точного решения uh . Ввиду
того, что Lhuh − fh = 0 , но uh ≠ uh , после такой подстановки получается невязка:
ψh = Lhuh − fh ≠ 0 . |
(3.8) |
Эта невязка и называется погрешностью аппроксимации. Если погрешность аппроксимации велика, то, естественно, никакого приближения полученного решения к искомому нет. Поэтому основное требование к конечно-разностной схеме – погрешность аппроксимации должна стремиться к нулю при h → 0 , т.е. должна иметь место оценка:
|
ψ |
h |
|
|
≤ C h p ; |
(3.9) |
|
|
|
||||
|
|
|||||
|
|
|
|
ψ |
|
|
|
|
|
|
|
|
|
Сψ не зависит от h ; р – порядок погрешности аппроксимации.
Нахождение и оценка погрешности аппроксимации обычно осуществляются без труда с использованием разложения решения в ряд. Например, для нашей
схемы (4.5) |
|
|
|
|
|
h u (x |
+ h)−u (x ) |
|
|
|
|
h u(x )−u |
(x |
− h) |
|
||||||||
|
|
|
1 |
|
|
|
|
|
|
|
|
|
|||||||||||
ψ |
h |
= |
|
|
g |
|
x |
+ |
|
|
i |
i |
− g |
|
x |
− |
|
|
i |
i |
|
|
− f (x ) . |
|
|
|
|
|
|
|
|
||||||||||||||||
|
|
h |
|
i |
|
2 |
|
h |
|
i |
|
2 |
h |
|
|
i |
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
Используем начальные члены разложения u (x) в ряд Тейлора:
|
+ |
h |
ui+1/ 2 + |
h |
ui′+1/ 2 |
+ |
h2 |
ui′′+1/ 2 + o(h3 ), |
u (xi + h)= u xi+1/ 2 |
|
2 |
4 |
|||||
|
|
2 |
|
|
|
|
|
|
|
− |
h |
|
ui+1/ 2 − |
h |
ui′+1/ 2 |
|
+ |
h2 |
ui′′+1/ 2 −o(h3 ), |
|
|||||||
u (xi )= u xi+1/ 2 |
2 |
|
2 |
|
4 |
|
||||||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||
u (xi )= ui−1/ 2 + |
h |
|
|
|
h2 |
|
|
|
|
|
|
|
|
|
|
|
|
|||
2 ui′−1/ 2 + |
4 ui′′−1/ 2 + o(h3 ), |
|
|
|
|
|
|
|||||||||||||
u (xi−1 − h)=u (xi−1/ 2 − h |
/ 2)= ui−1/ 2 − |
h |
|
|
h2 |
|
|
|
||||||||||||
2 ui′−1/ 2 + |
|
4 ui′′−1/ 2 −o(h3 ). |
||||||||||||||||||
После подстановки получим |
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
ψh = |
1 |
|
h |
|
+ |
h |
|
|
|
|
h |
|
|
− |
h |
|
− f (xi ). |
|||
g xi + |
2 |
u′ xi |
2 |
− g xi − |
2 |
u′ xi |
2 |
+ o(h2 ) |
||||||||||||
|
h |
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
± |
h |
, и учи- |
Проделывая аналогичные разложения с функцией υ = gu′ xi |
|
||
|
|
2 |
|
тывая, что υ′(xi ) = f (xi ), получим окончательную оценку ψh o(h2 ) .
Таким образом, полученная нами оценка конечно-разностной схемы (3.5) имеет погрешность аппроксимации второго порядка.
5. Оценка погрешности решения и проверка устойчивости схемы. Раз-
ность между uh и uh называется погрешностью решения: |
|
εh = uh −uh . |
(3.10) |
Аппроксимация является необходимым, но еще не достаточным условием того, чтобы погрешность решения εh было мала. Необходимым условием мало-
41
