Скачиваний:
13
Добавлен:
20.05.2014
Размер:
338.43 Кб
Скачать

В общем случае одно ОДУ первого порядка имеет вид

,

(6.1)

где , например, .

Существует много уравнений, которые могут быть решены путем преобразований, и для них получена аналитическая математическая модель вида . Но для большинства уравнений такое решение невозможно, и в этих случаях применяют численные методы. Отметим, что численные методы дают одно частное решение (6.1), тогда как аналитические методы дают решение (6.1) в общем виде.

Пусть нужно определить функцию на произвольном отрезке . Далее для упрощения записи будем считать . Если же это не так, то всегда можно сделать замену переменных .

Задача Коши.

Широкий класс физических задач приводит к ОДУ, разрешенным относительно производной:

,

(6.2)

- произвольная заданная функция двух переменных. Должно быть также задано начальное значение  функции в точке . Требуется вычислить неизвестную функцию на отрезке . Такая задача называется задачей Коши.

Отметим, что функция должна обязательно присутствовать в правой части (6.2), вместе с , если же ее там нет, то уравнение решается путем численного интегрирования функции , рассмотренного в лекции 4.

Если , то , если же , то .

Решение задачи Коши - это получение одного частного решения с начальным значением . Все методы решения этой задачи основаны на дискретизации и интерполяции, как и численное дифференцирование, которое они используют.

При дискретизации на отрезке вводится сетка с узлами , . В простых задачах эта сетка равномерная и шаг дискретизации равен . При вычислениях выполняется цикл по шагам, т.е. цикл по , и на каждом шаге по известному значению вычисляется следующее значение с применением интерполяции.

Для интерполяции функции на одном или нескольких шагах используются полиномы степени . Например, для методов Эйлера (явного и неявного), для метода Рунге-Кутта четвертого порядка и метода Адамса, для модифицированного метода Рунге-Кутта [K1, Ф, К2]. Степень полинома для интерполяции называют порядком метода.

Если при вычислениях на текущем шаге для интерполяции используются только значения функции на одном этом шаге, то методы решения называются одношаговыми, а если для интерполяции используются также значения с предшествующих шагов, то методы называются многошаговыми. Например, метод Адамса является многошаговым, а остальные из перечисленных выше  - одношаговыми.

Следует различать порядок метода и порядок ОДУ, т. к. последний равен порядку старшей производной в уравнении. В последующих разделах будут рассматриваться только ОДУ первого порядка, а ОДУ с производными высших порядков см. в лекции 8.

 Метод Эйлера для одного ОДУ первого порядка.

Этот метод использует линейную интерполяцию для , т.е. является методом первого порядка. Решение (6.2) на каждом -ом шаге вычисляется по формулам:

(6.3)

,

(6.4)

где - номера шагов, - величина шага. Для первого шага должны быть заданы начальные условия, т.е. значения и

Формулу (6.3) можно рассматривать как начало ряда Тейлора для функции т.к. по (6.2). Отбрасывание старших производных означает линейную интерполяцию для на шаге. 

Эту же формулу легко получить из (4.2). Значения на шаге и для наклона касательной показаны на рис. 6.1. Очевидно, что метод Эйлера использует на шаге значение , и это значение равно производной в левой точке шага.

Рис.6.1. Значения на шагах по методу Эйлера.

 

Метод Эйлера является самым простым, но самым медленным, т.к. линейная интерполяция на шаге применима обычно лишь для малых значений . Результат решения - ломаная линия, т.е. производные разрывны, но скачки значений малы из-за мелких шагов.

В качестве примера выполним несколько шагов по методу Эйлера для уравнения

(6.5)

c начальным условием .

Пусть произвольно выбран шаг . Результаты расчетов приводим в виде таблицы, где строка с номером соответствует начальным условиям.

 

0

0

2

4.00

0.4

1

0.1

2.4

5.86

0.586

2

0.2

2.986

9.016

0.902

Уже первые шаги показывают, что производная имеет значительные скачки, и функция на соседних шагах сильно изменяется.  Это указывает на неправильный выбор шага, шаг велик.

Обычно шаг выбирают либо на основании физических соображений о малом изменении функции на шаге, либо произвольным. Как проверить правильность выбора шага? Для этого необходим контроль точности. Контроль точности полученного решения выполняют либо другим методом, либо с другим шагом, что будет рассмотрено при анализе погрешностей в лекции 7.

Погрешности решения ОДУ.

При решении ОДУ любым численным методом на каждом шаге имеем, как и в разделе 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.1), на примере метода Эйлера , . По аналогии с (4.5) пусть - это точное решение уравнения (6.2), а значение  характеризует суммарную погрешность решения на шаге c произвольным номером , т.е. ,

Запишем два слагаемых ряда Тейлора, (т.е. формулу метода Эйлера) для вблизи точки :

,

(7.6)

считая последующие слагаемые малыми.

, подставим (7.5) .

В основную формулу метода Эйлера (6.3) и используем еще один ряд Тейлора для функции двух переменных, учитывая в нем только два первых слагаемых,.

После подстановки с учетом равенства (7.5) получаем,

и, следовательно, коэффициент усиления погрешности (7.7)

Если функция такова, что на всех или почти всех шагах значение , то это означает нарушение условия устойчивости (7.2) и третье слагаемое в (7.4) при больших значениях N может полностью "замаскировать" решение. Это особенно опасно для убывающих решений, которым соответствуют отрицательные производные  при . Для возрастающих решений нарушение условия устойчивости обычно не приводит к сильной неустойчивости. Следовательно, для устойчивости метода Эйлера в случае убывающих решений должно быть (7.8) т.к. при имеем .

В качестве примера рассмотрим известное уравнение

,

(7.9)

при , которое в случае дает убывающее решение . Для этого уравнения условие устойчивости метода Эйлера (7.8) имеет вид

, т.е. .

(7.10)

Условие (7.10) жестко ограничивает шаг в методе Эйлера, т.к. в случае его нарушения развивается неустойчивость. Эффект неустойчивости проявится в том, что после некоторого количества шагов по методу Эйлера (6.3) функция будет иметь шумовой характер со значительными выбросами, что показано на рис.7.2. На этом рисунке точное решение не видно из-за масштаба, а метод Эйлера дает значения , где - номер шага.

Соседние файлы в папке Шпоры по вычмату