
Лекции по вычмату преподавателя Друка / L007
.doc
Лекция 7. ПОГРЕШНОСТИ И УСТОЙЧИВОСТЬ РЕШЕНИЯ ОДУ. |
7.1. Погрешности решения ОДУ.
При
решении ОДУ любым численным методом на
каждом шаге имеем, как и в разделе 4.2,
погрешности метода, погрешности исходных
данных и погрешности округления. Но,
кроме того, появляется еще одна
погрешность, обусловленная тем, что на
каждом шаге погрешность значения
при вычислениях переходит в значение
с некоторым коэффициентом
,
который называется коэффициентом
усиления погрешности. Поэтому погрешность
на шаге
представим в виде трех слагаемых
|
(7.1) |
где
- это погрешность метода,
- учитывает суммарное влияние погрешностей
исходных данных и округления. Погрешность
(7.1) соответствует одному шагу и поэтому
называется локальной. Рассмотрим ее
составляющие.
Оценки
(6.10 - 6.12) определяют значения
,
т.е. погрешность метода убывает при
уменьшении шага
и при увеличении порядка метода
.
Например, при уменьшении шага в два раза
погрешность метода Эйлера уменьшится
в 4 раза, а погрешность метода Рунге-Кутта
в 32 раза.
Значение
можно оценивать некоторым значением
(например
),
как в разделе 4.2.
При решении ОДУ в случае большого количества шагов очень опасно третье слагаемое в (7.1), для которого формулируется условие устойчивости: погрешность на шаге не должна усиливаться, т.е. должно быть
|
(7.2) |
Значения
зависят от шага и метода и будут
рассмотрены ниже.
При
выполнении
шагов происходит накопление всех
локальных погрешностей и погрешностей
решения
в конечной точке
называется глобальной. Оценим вклад в
глобальную погрешность каждого из
слагаемых в (7.1). Будем считать, что на
каждом шаге первые две погрешности из
(7.1) суммируются, а последняя умножается
на коэффициент
,
т.е. получаем
|
(7.3) |
где
- это оценка локальной погрешности для
первого шага. Подставляя в (7.3) значения
,
,
,
получаем, что
|
(7.4) |
где
,
,
- некоторые константы, зависящие от вида
функции и длины отрезка интегрирования
,
причем коэффициент
обычно возрастает при увеличении шага.
Глобальная погрешность
может стать значительной как при крупных
шагах, так и при очень мелких, что показано
на рис. 7.1 для случаев
и
.
В последнем случае решение при крупных
шагах является неустойчивым.
|
Рис.7.1.
Влияние величины шага
|
Любой метод решения ОДУ должен быть устойчивым, точным, эффективным.
7.2. Условие устойчивости для метода Эйлера.
Рассмотрим
более подробно процесс накопления
погрешностей, обусловленных третьим
слагаемым в (7.1), на примере метода Эйлера
,
.
По аналогии с (4.5) пусть
- это точное решение уравнения (6.2), а
значение
характеризует суммарную погрешность
решения на шаге c произвольным номером
,
т.е.
|
(7.5) |
Запишем
два слагаемых ряда Тейлора, (т.е. формулу
метода Эйлера) для
вблизи точки
:
|
(7.6) |
считая последующие слагаемые малыми.
В основную формулу метода Эйлера (6.3)
,
подставим (7.5)
,
и используем еще один ряд Тейлора для функции двух переменных, учитывая в нем только два первых слагаемых,
.
После подстановки с учетом равенства (7.5) получаем
,
и, следовательно, коэффициент усиления погрешности
|
(7.7) |
Если
функция
такова, что на всех или почти всех шагах
значение
,
то это означает нарушение условия
устойчивости (7.2) и третье слагаемое в
(7.4) при больших значениях N может полностью
"замаскировать" решение. Это
особенно опасно для убывающих решений,
которым соответствуют отрицательные
производные
при
.
Для возрастающих решений нарушение
условия устойчивости обычно не приводит
к сильной неустойчивости. Следовательно,
для устойчивости метода Эйлера в случае
убывающих решений должно быть
|
(7.8) |
т.к.
при
имеем
.
В качестве примера рассмотрим известное уравнение
|
(7.9) |
при
,
которое в случае
дает убывающее решение
.
Для этого уравнения условие устойчивости
метода Эйлера (7.8) имеет вид
|
(7.10) |
Условие
(7.10) жестко ограничивает шаг в методе
Эйлера, т.к. в случае его нарушения
развивается неустойчивость. Эффект
неустойчивости проявится в том, что
после некоторого количества шагов по
методу Эйлера (6.3) функция
будет иметь шумовой характер со
значительными выбросами, что показано
на рис.7.2. На этом рисунке точное решение
не
видно из-за масштаба, а метод Эйлера
дает значения
,
где
- номер шага.
|
Рис. 7.2. Неустойчивость метода Эйлера при решении (7.9) в случае a = 20, h = 0.2. |
7.3. Устойчивость неявного метода Эйлера.
Повторим
все преобразования предыдущего раздела
для неявного метода Эйлера (6.6) вместо
(6.3). При этом в качестве основной возьмем
точку
вместо
и запишем (7.6) в виде
|
(7.11) |
Значение
коэффициента
в (7.7) изменится и будет иметь вид
|
(7.12) |
Для
уравнений с затуханием, которым
соответствуют значения ,
,
получаем всегда
,
т.е. неявный метод Эйлера устойчив при
любых шагах
(см. рис.7.1).
Другие неявные методы, как и неявный метод Эйлера, всегда устойчивы и поэтому они широко применяются для решения систем ОДУ при моделировании схем в радиоэлектронике (см. лекцию 10).
7.4. Контроль точности и автоматический выбор шага.
1. Пусть
каким-либо методом выполнен текущий
-ый
шаг из точки
в
и получено значение
,
погрешность которого нужно оценить.
Как и в лекции 4, для определения локальной
погрешности
необходим повторный расчет для этого
шага либо с другим шагом, либо другим
методом. Обычно при решении ОДУ применяется
повторный расчет другим методом.
Обозначим
значение второго решения в точке
через
и сравним его с первым решением
.
Так как они должны совпадать, то их
разность можно принять за оценку
погрешности
|
(7.13) |
2. Пусть
задана допустимая абсолютная погрешность
и коэффициент
,
определяющий диапазон допустимых
погрешностей как [
,
],
например, v=0.2. Полученное значение
должно попадать в указанный диапазон,
а иначе полагается, что шаг выбран
неправильно. При этом рассматриваются
следующие случаи:
1) если
,
то расчет на шаге слишком точен и
следующий шаг можно увеличить;
2) если
,
то значение шага сохраняется;
3) если
,
то шаг слишком велик и должен быть
отброшен, т.е. происходит возврат в левую
точку шага, шаг уменьшается и повторяется
расчет двумя методами.
3. Как выбрать новый шаг в случае его уменьшения или увеличения? Так как обычно при расчетах основной является погрешность метода, то в соответствии с (6.11) можно положить
- погрешность
полученная при шаге
,
- заданная погрешность.
где
- это новое значение шага обеспечивающие
погрешность,
- коэффициент, не зависящий от шага.
Выполнив деление обеих частей этих
формул, получаем, что
|
(7.14) |
Рассмотренную
процедуру оценки локальной погрешности
на шаге и определения величины нового
шага называют автоматическим выбором
шага. Она позволяет вести расчет с
переменным шагом, что обеспечивает
точность и эффективность расчетов.
Например, в модифицированном методе
Рунге-Кутта [Ф1] два расчета на каждом
шаге выполняются методами с порядками
и
.
4. При
автоматическом выборе шага контролируется
локальная погрешность, а для грубой
оценки глобальной погрешности можно
считать, что она не превышает значения
,
где
- это количество шагов на отрезке
интегрирования ОДУ.
В
заключение отметим, что при программной
реализации метода Эйлера в системе
MathCAD используют массивы
,
,
а при программировании на языках,
например, на Си, расчет ведут со скалярными
переменными
и
,
записывая в выходные массивы
и
лишь каждый
-ый
шаг. В системе MathCAD есть функции,
реализующие методы высоких порядков,
например, Rkfixed, Rkadapt, Bulstoer.