- •РАЗДЕЛ 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. Задача Дирихле для двухмерного уравнения Пуассона
сти погрешности решения является еще требование устойчивости конечноразностной схемы к ошибкам округления.
Теоретическое исследование устойчивости конечно-разностной схемы сводится обычно к доказательству того, что малые возмущения fh − f%h правой части (или начальных данных) системы приводят к малым изменениям решения
|
|
% |
% |
% |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||||||||
uh −uh ; Lhuh = fh : |
|
|
|
|
|
|
||||||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
% |
|
|
|
|
|
|
|
|
|
uh −uh |
|
≤ C0 |
|
|
, |
(3.11) |
||||
|
|
|
|
|
|
|
|
|
fh − fh |
|
||||||
|
|
|
|
|
|
% |
|
|
|
|
|
|
|
|
||
где C0 |
- константа устойчивости. |
|
|
|
|
|
|
|||||||||
Основная теорема теории метода сеток утверждает, что если схема ус-
тойчива и аппроксимирует исходное ДУ, то при h → 0 погрешность решения εh стремится к нулю с тем же порядком, что и погрешность аппроксимации:
|
ε |
h |
|
|
|
≤ C |
|
|
|
ψ |
h |
|
|
|
≤ C C hp . |
(3.12) |
|
|
|
|
|
|
|
||||||||||
|
|
|
|
|
0 |
|
|
|
|
|
|
|
0 ψ |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3.2Решение систем обыкновенных дифференциальных уравнений
3.2.1.Задача Коши
|
|
dur |
|
r |
r |
r0 |
. |
|
|
|
|
|
(3.13) |
|
|
|
dx |
= f (x,u); |
u(0) = u |
|
|
|
|
|
|||||
|
|
|
Ω ={0 ≤ x ≤ b} |
покрываем |
равномерной |
сеткой |
||||||||
Область |
интегрирования |
|||||||||||||
ωh ={kh, |
k = 0..n}. Для нахождения таблицы решения |
u |
h |
={urk ur(xk )} |
исполь- |
|||||||||
зуем интегроинтерполяционный |
способ |
с |
разбиением Ω на подобласти |
|||||||||||
Ωk ={xk |
≤ x ≤ xk+1}. |
Согласно этому |
способу, для |
получения |
конечно- |
|||||||||
разностной схемы |
проинтегрируем уравнение (3.13) на каждом |
интервале |
||||||||||||
[xk , xk+1] для k = 0,...,n-1 и разделим на длину этого интервала: |
|
|
||||||||||||
|
1 xk +1 dur |
dx = |
urk+1 −urk |
1 xk +1 |
r |
r |
|
|
(3.14) |
|||||
|
∫ |
|
|
= |
∫ |
f (x, u(x))dx . |
|
|
||||||
|
h x |
dx |
|
|
h |
|
h x |
|
|
|
|
|
|
|
|
k |
|
|
|
|
|
k |
|
|
|
|
|
|
|
Интеграл в правой части (3.14) аппроксимируем одной из квадратурных |
||||||||||||||
формул, после чего получаем систему уравнений относительно приближенных неизвестных значений искомой функции uh :
urk+1 −urk |
= |
1 |
∑α j Fr j , Fr j = fr(x j ,ur j ); xk−l ≤ x j ≤ xk+1; l = 0,1,2,.... |
(3.15) |
h |
|
h |
j |
|
здесь xj - точки внутри интервала, используемые для получения квадратурной формулы.
Структура конечно-разностной схемы (3.15) для задачи Коши такова, что она устанавливает закон рекуррентной последовательности urk+1 =ϕ(urk ) для
искомого решения ur0 , ur1, ur2 , ..., urn . Поэтому, используя начальное условие
42
задачи (3.13) и задавая ur0 =ur0 , затем по рекуррентным формулам последовательно находят все urk , k =1, ..., n.
При замене интеграла приближенной квадратурной формулой вносится погрешность аппроксимации дифференциального уравнения разностным, которая получается как невязка, если в конечно-разностном уравнении (3.15) под-
ставить вместо |
u |
k значение точного решения urk : |
|
|||||
|
|
|
urk+1 −urk |
|
1 |
|
|
|
|
|
ψk = |
− |
∑α j f (x j , urj ) |
. |
(3.16) |
||
|
|
|
h |
|
h |
j |
|
|
Воспользовавшись соотношением (3.14), получаем простое выражение для вычисления ψk (h) :
1 |
xk +1 |
r |
r |
r |
|
ψk (h) = h |
∫ |
f |
(x, u |
(x))dx − ∑α j F j |
(3.17) |
|
xk |
|
|
j |
|
Таким образом порядок погрешности аппроксимации на единицу меньше порядка погрешности квадратурной формулы, используемой в (3.15).
Явная схема 1-го порядка (Эйлера)
Заменим интеграл в (3.14) по формуле левых прямоугольников:
|
|
|
|
|
1 xk +1 |
r |
r |
|
Frk h |
r |
|
|
|
|
|
|
|
|
∫ |
f (x,u(x)dx |
≈ |
|
= F k . |
|
|
|
|
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
h x |
|
|
|
h |
|
|
|
|
Получим |
|
|
|
|
k |
|
|
|
|
|
|
|
|
|
|
r |
k+1 −urk |
|
|
|
|
|
|
|
|||
|
|
|
= fr(x ,urk ), k |
|
|
|
|
||||||
|
|
u |
= 0, 1, 2, ..., n . |
(3.18) |
|||||||||
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
rh |
|
k |
|
|
|
|
|
|
r |
0 |
|
|
|
|
|
|
|
|
|
|||
Задавая u |
=u0 , с помощью (3.18) легко получить все последующие зна- |
||||||||||||
чения urk , k =1, |
|
|
2, ..., n , так как формула явно разрешается относительно |
u |
k+1 . |
||||||||
Погрешность аппроксимации ψ(h) и соответственно точность ε(h) имеют первый порядок в силу того, что формула левых прямоугольников на интервале [xx , xk+1] имеет погрешность второго порядка, а схема устойчива.
Неявная схема 1-го порядка
Используя в (4.15) формулу правых прямоугольников, получим |
|
|||
|
urk+1 −urk |
= fr(x |
,urk+1) . |
(3.19) |
|
|
|||
|
h |
k+1 |
|
|
|
|
|
|
|
Эта схема неразрешима явно относительно u k+1 , поэтому для получения u k+1 требуется использовать итерационную процедуру решения уравнения (3.19) (см. метод простой итерации в подразд.1.4):
urk+1, s = urk + h f (x |
, urk+1, s−1); s =1, |
2, ...− номер итерации. |
||
k+1 |
|
|
k+1, 0 |
= urk c предыдущего |
За начальное приближение берется значение |
u |
|||
шага. Обычно, если h выбрано удачно, достаточно сделать 2, 3 итерации для
43
достижения заданной погрешности 
urk+1, s −urk+1, s−1
<ε . Эффективность неяв-
ной схемы заключается в том, что у нее константа устойчивости С0 значительно меньше, чем у явной схемы.
Неявная схема 2-го порядка |
|
|
|||
Используя в (3.15) формулу трапеций, получим |
|
|
|||
urk+1 −urk |
|
f (x, urk ) + fr(x |
, urk+1) |
|
|
h |
= |
k+1 |
|
. |
(3.20) |
2 |
|
||||
|
|
|
|
||
Так как формула трапеций имеет третий порядок точности, то погрешность аппроксимации ψ(h) - второй.
Схема (3.20) не разрешена относительно u k+1 , поэтому требуется итерационная процедура (см.(4.19)):
r |
r |
|
h |
r |
r |
r |
(x |
r |
+1, s−1); |
s =1, 2, ...; |
r |
|
r |
|||
u k |
+1, s = u k + |
|
( f (x |
, u k ) + f |
,u k |
u k+1, 0 |
= u k . (3.21) |
|||||||||
|
|
|
2 |
k |
|
|
k+1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Схема Рунге-Кутта 4-го порядка |
|
|
|
|
|
|||||||
Используя в (4.15) формулу Симпсона, получим |
|
|
|
|
|
|||||||||||
urk+1 −urk |
= |
1 |
r |
|
r |
r |
|
|
r |
r |
|
|
r |
. |
(3.22) |
|
|
h |
|
f (x , u k ) + 4 f (x |
|
, u k+1/ 2 ) + f (x |
|
, u k+1) |
|||||||||
|
|
6 |
k |
|
|
k+1/ 2 |
|
k |
+1 |
|
|
|
|
|||
Ввиду того, что формула Симпсона имеет пятый порядок, погрешность |
||||||||||||||||
аппроксимации (3.22) имеет четвертый порядок. |
|
|
|
|
|
|
||||||||||
Можно по-разному реализовать расчет неявного по urk+1 |
уравнения (3.22), |
|||||||||||||||
однако наибольшее распространение получила реализация предиктор-
корректор вида |
|
r |
r |
|
|
h |
r |
|
|
r |
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
(x |
|
|
|
|
|
|
|
||||||
|
|
|
|
|
u k+1/ 2,1 |
= u k + |
|
|
( f |
|
, u k ), |
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
2 |
|
k |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
r |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
r |
r |
|
h |
|
|
|
r |
|
|
|
|
|
|
||
|
|
|
|
|
u k+1/ 2, 2 |
= u k + |
2 |
f (x |
|
|
, u k+1/ 2,1), |
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
k+1/ 2 |
|
|
|
|
|
|
|
|||
|
|
|
|
|
urk+1,1 = urk |
+ hfr(x |
|
, urk+1/ 2, 2 ), |
|
|
|
|
|
|||||||
|
|
h |
|
|
|
r |
|
|
|
k+1/ 2 |
|
|
|
r |
|
|
r |
|
|
|
r |
r |
f (x |
r |
(x |
|
|
|
r |
+1/ 2,1) + |
(x |
r |
(x |
r |
|||||||
u k+1 |
=u k + |
6 |
, u k ) + 2 f |
|
|
|
u k |
2 f |
u k+1/ 2, 2 ) + |
f |
,u k+1, 1) . |
|||||||||
|
|
|
k |
|
k |
+1/ 2, |
|
|
|
|
|
k+1/ 2, |
|
|
k+1 |
|
||||
Многошаговые схемы Адамса
При построении всех предыдущих схем для вычисления интеграла в правой части (3.14) использовались лишь точки в диапазоне одного шага [xk , xk+1].
Поэтому при реализации таких схем для вычисления следующего значения u k+1
необходимо знать только одно предыдущее значение u k , т.е. рекуррентная последовательность получается первого порядка. Такие схемы называют одношаговыми. Мы, однако, видели, что для повышения точности при переходе от xk к приходилось использовать и значения функции F внутри интервала
44
[xk+1/ 2 , urk+1/ 2 ] . Схемы, в которых это используется, называют схемами с дроб-
ными шагами. В этих схемах повышение точности достигается за счет дополнительных затрат на вычисление функции F(x) в промежуточных точках интервала [xk , xk+1].
Идея методов Адамса заключается в том, чтобы для повышения точности использовать уже вычисленные на предыдущих шагах значения u k , urk−1, urk−2 , ....
Заменим в (3.14) F(x) интерполяционным многочленом Ньютона вида
F(x) ≈ F(xk ) + (x − xk ) F(xk ) −hF(xk−1) +
+(x − xk )(x − xk−1) F(xk ) − 2F(xk−1) + F(xk−2 ) + ... .
2h2
После интегрирования на интервале [xk , xk+1] получим явную экстраполяци-
онную схему Адамса. (Экстраполяцией называется получение значений интерполяционного многочлена в точках x, выходящих за крайние узлы сетки). В нашем случае интегрирование производится на интервале [xk , xk+1], а полином
строится по узлам xk , xk−1, xk−2 .
Порядок аппроксимации схемы в этом случае определяется количеством использованных при построении полинома узлов (например, если используются xk , xk−1, то схема второго порядка).
Если в (3.14) заменим F(x) многочленом Ньютона вида
F(x) ≈ F(xk+1) + (x − xk+1) F(xk+1)h− F(xk ) +
+(x − xk+1)(x − xk ) F(xk+1) − 2F(xk ) + F(xk−1) +... , 2h2
то после интегрирования получим неявную интерполяционную схему Адамса. Заметим, что неявная интерполяционная схема второго порядка совпадает со схемой (3.20).
Явная экстраполяционная схема Адамса 2-го порядка |
|
||||||
|
|
r |
k+1 −urk |
=1,5 fr(x |
, urk ) −0,5 fr(x |
, urk−1) . |
|
u |
(3.23) |
||||||
|
|
|
|
||||
|
|
|
h |
k |
k−1 |
|
|
|
|
|
|
|
|
|
|
Схема двухшаговая, поэтому для начала расчетов необходимо найти u1 по методу (3.20), после чего ur2 , ur3, ... , вычислять по (3.23).
Явная экстраполяционная схема Адамса 3-го порядка |
|
||||||||||||
urk+1 −urk |
|
23 r |
r |
16 |
r |
|
r |
5 |
r |
r |
|
||
|
= |
|
f (x , u k ) − |
|
f (x |
k−1 |
, u k−1) + |
|
|
f (x |
,u k−2 ) . |
(3.24) |
|
|
|
|
|
|
|||||||||
h |
|
12 |
|
k |
12 |
|
|
12 |
k−2 |
|
|
||
|
|
|
|
|
|
|
|
|
|||||
45
Схема трехшаговая, поэтому для начала расчетов необходимо найти методу (3.22), после чего ur3, ur4 , ..., вычислить по (3.24).
r |
r |
|
|
Неявная схема Адамса 3-го порядка |
|
|||||||||
u k+1 |
−u k |
|
5 |
r |
r |
8 |
r |
r |
1 |
r |
r |
|||
|
|
= |
|
|
f (x |
, u k+1) + |
|
|
f (x , u k ) − |
|
|
f (x |
, u k−1). |
|
|
|
|
|
|
|
|
|
|||||||
h |
|
12 |
k+1 |
|
12 |
|
k |
12 |
k−1 |
|
||||
|
|
|
|
|
|
|
||||||||
u1, ur2 по
(3.25)
Так как схема двухшаговая, то для начала расчетов необходимо найти |
u |
1 по |
|||||||||||||||||||
методу (3.20), после чего ur2 , ur |
3, ..., вычислить по (3.25). |
|
|
|
|
|
|
||||||||||||||
Для нахождения urk+1 требуется использовать метод простой итерации: |
|||||||||||||||||||||
urk+1, s = urk + h |
5 |
fr(x |
|
, |
urk+1, s−1) + |
|
8 |
fr(x |
, urk ) |
− |
|
1 |
fr(x |
|
, urk−1) . |
||||||
|
|
|
|
|
|||||||||||||||||
|
k+1 |
|
|
|
12 |
k |
|
12 |
|
|
k−1 |
|
|
||||||||
12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||
Значение urk+1, 0 следует рассчитать по формуле (3.23): |
|
|
rk−1 |
|
|
|
|
|
|
||||||||||||
rk+1, 0 |
rk |
|
|
|
|
rk |
|
|
r |
|
|
) |
|
. |
|
|
|
||||
u |
= u |
+ h 1,5 f (x , u |
) −0,5 f (x |
−1 |
, u |
|
|
|
|
||||||||||||
|
|
|
|
|
|
k |
|
|
|
|
k |
|
|
|
|
|
|
|
|
||
Чаще всего бывает достаточно одной итерации. Если при этом разность urk+1,0 −urk+1,1 оказывается большой, то следует уменьшить h.
46
