/
/
КУРСОВАЯ РАБОТА
Численные методы решения дифференциальных уравнений
Введение
При решении научных и инженерно-технических задач часто бывает необходимо математически описать какую-либо динамическую систему. Лучше всего это делать в виде дифференциальных уравнений (ДУ) или системы дифференциальных уравнений. Наиболее часто такая задача возникает при решении проблем, связанных с моделированием кинетики химических реакций и различных явлений переноса (тепла, массы, импульса) - теплообмена, перемешивания, сушки, адсорбции, при описании движения макро- и микрочастиц.
Известные методы точного интегрирования дифференциальных уравнений позволяют найти решение в виде аналитической функции, однако эти методы применимы для очень ограниченного класса функций. Большинство уравнений, встречающихся при решении практических задач нельзя проинтегрировать с помощью этих методов.
В таких случаях используются численные методы решения, которые представляют решение дифференциального уравнения не в виде аналитической функции, а в виде таблиц значений искомой функции в зависимости от значения переменной.
Существует несколько методов численного интегрирования дифференциальных уравнений, которые отличаются друг от друга по сложности вычислений и точности результата.
Рассмотрим три основных метода приближенного решения обыкновенных дифференциальных уравнений первого порядка: Метод ломанных (Эйлера), метод последовательных приближений (Пикара) и метод разложения решения в степенной ряд.
1. Постановка задачи
Простейшим обыкновенным дифференциальным уравнением (сокращенно ОДУ) является уравнение первого порядка, разрешенное относительно производной:
(1)
Основная задача, связанная с этим уравнением, известна как задача Коши: найти решение уравнения (1) в виде функции , удовлетворяющей начальному условию
(2)
Существование и единственность решения задачи Коши для уравнения (1) обеспечивается следующей теоремой.
Теорема Пикара. Если функция определена и непрерывна в некоторой плоской области G, определяемой неравенствами
(3)
И удовлетворяет в этой области условию Липшица по y: существует такое положительное число М, что для любых точек и
, (4)
То на некотором отрезке существует, и притом только одно, решение y=y(x) уравнения (1), удовлетворяющее начальному условию (2).
Несмотря на внешнюю простоту уравнения (1), решить его аналитически, т.е. найти общее решение с тем, чтобы затем выделить из него интегральную кривую , проходящую через заданную точку. Поэтому, как и в родственной, для (1) - (2) задаче вычисления интегралов, приходится делать ставку на приближенные способы решения начальных задач для ОДУ, которые можно разделить на три группы:
1) аналитические методы (применение которых дает приближенное решение дифференциального уравнения в виде формулы)
2) графические методы (дают приближенное решение в виде графика)
3) численные методы (искомая функция получается в виде таблицы).
2. Метод Эйлера
погрешность эйлер пикар решение
Метод ломаных Эйлера относиться к численным методам, дающим решение в виде таблицы приближенных значений искомой функции у(х).
Метод Эйлера играет важную роль в теории численных методов решения ОДУ, хотя и не часто используется в практических расчетах из-за невысокой точности.
Пусть дано дифференциальное уравнение
(5)
с начальным условием
(6)
Разобьем отрезок [a, b] на n равных частей и получим последовательность
,
пусть - приближенное решение в точке .
Вначале найдем простейшим способом приближенное значение решения в некоторой точке , где достаточно малый шаг. Заметим, что уравнение (5) совместно с начальным условием (6) задают направление касательной к искомой интегральной кривой в точке . Двигаясь вдоль этой касательной, получим приближенное значение решения в точке :
(7)
Располагая приближенным решением в точке , можно повторить описанную выше процедуру: построить прямую, проходящую через эту точку под углом, определяемым условием , и по ней найти приближенное значение решения в точке (заметим, что в отличие от ситуации изображенной на рисунке, эта прямая не есть касательная к реальной интегральной кривой). Если h достаточно мало, то получаемые приближения будут близки к точным значениям решения.
Продолжая эту идею, построим систему равноотстоящих точек . Получение таблицы значений искомой функции у(х) по методу Эйлера заключается в циклическом применении формулы:
(8)
Вместо интегральной кривой в реальности получается совокупность прямых (так называемая ломаная Эйлера).
Методы численного интегрирования дифференциальных уравнений, в которых решение получается от одного узла к другому, называются пошаговыми. Метод Эйлера - простейший представитель пошаговых методов.
3. Погрешность метода Эйлера
На каждом шаге метода Эйлера допускается локальная погрешность по отношению к точному решению, график которого проходит через крайнюю левую точку отрезка. Кроме того, на каждом шаге, начиная со второго, накапливается глобальная погрешность представляющая собой разность межу численным решением и точным решением исходной начальной задачи (а не локальной).
Локальная ошибка на каждом шаге выражается соотношением
,
где
Глобальная погрешность метода Эйлера в окрестности ведет себя как линейная функция, и, следовательно, метод Эйлера имеет первый порядок точности относительно шага h.
4. Примеры решения задачи в Excel
Задача №1: Методом Эйлера найти значение , где - решение дифференциального уравнения: удовлетворяющее начальному условию , на отрезке , приняв шаг .
Дано: - дифференциальное уравнение
- начальное условие
- интервал
- шаг
Найти: значение
Решение:
Используя формулу Эйлера (8) для приближенного решения ДУ, найдем решение ДУ:
0 |
0 |
1,000 |
1,000 |
0,100 |
|
1 |
0,1 |
1,100 |
1,310 |
0,131 |
|
2 |
0,2 |
1,231 |
1,715 |
0,172 |
|
3 |
0,3 |
1,403 |
2,267 |
0,227 |
|
4 |
0,4 |
1,629 |
3,054 |
0,305 |
|
5 |
0,5 |
1,935 |
4,243 |
0,424 |
В приведенной таблице и это начальные условия ДУ, (т.е. подставляем начальные условия в данное дифференциальное уравнение), по формуле Эйлера получаем и т.д.
Значение при x=0.5:
Задача №2: Методом Эйлера найти приближенное решение дифференциального уравнения при , удовлетворяющее начальному условию .
Дано: - дифференциальное уравнение
- начальное условие
Найти: значение
Решение:
Будем находить приближенное решения данного ДУ на отрезке [0, 1] с шагом (выбрали произвольно).
Используя формулу Эйлера (8) для приближенного решения ДУ, найдем решение данного ДУ, аналогично, как и для предыдущего примера:
0 |
0 |
1,000 |
0,000 |
0,000 |
|
1 |
0,2 |
1,000 |
0,200 |
0,040 |
|
2 |
0,4 |
1,040 |
0,416 |
0,083 |
|
3 |
0,6 |
1,123 |
0,674 |
0,135 |
|
4 |
0,8 |
1,258 |
1,006 |
0,201 |
|
5 |
1 |
1,459 |
1,459 |
0,292 |
Приближенное решение данного ДУ при :
Сравним полученный приближенный результат с точным решением ДУ, для этого решим данное ДУ:
, подставим начальные условия:
Найдем абсолютную и относительную погрешности вычислений, результаты представим в форме таблицы:
Точное решение |
Численное решение |
|||
1,000 |
1,000 |
0,000 |
0,000 |
|
1,020 |
1,000 |
0,020 |
0,020 |
|
1,083 |
1,040 |
0,043 |
0,040 |
|
1,197 |
1,123 |
0,074 |
0,062 |
|
1,377 |
1,258 |
0,119 |
0,087 |
|
1,649 |
1,459 |
0,189 |
0,115 |
По данным таблицы видно, что на каждом последующем шаге погрешность систематически возрастает.
5. Метод разложения решения в степенной ряд
Рассмотрим сначала дифференциальное уравнение первого порядка (1) с начальным условием (2)
Пусть правая часть уравнения (1) является аналитической функцией в начальной точке , т.е. в некоторой окрестности этой точки может быть разложена в степенной ряд вида
где - целые неотрицательные числа и - постоянные коэффициенты. Тогда существует единственное решение дифференциального уравнения (1), удовлетворяющее начальному условию (2), причем это решение является аналитическим в точке и, следовательно, может быть представлено в виде ряда Тейлора
(13)
Где
(p=0,1,2…)
и h - некоторое положительное число.
Коэффициент разложения (13) определяется непосредственно из начального условия (2):
;
следующий коэффициент находится на основании дифференциального уравнения (1):
Что касается остальных коэффициентов (p>1) ряда (13), то они могут быть шаг за шагом найдены путем последовательного дифференцирования данного дифференциального уравнения (1). Например, дифференцируя по х обе части уравнения (1) и используя правило дифференцирования сложной функции, будем иметь
Отсюда
где число уже известно.
Далее находим
Аналогично могут быть определены коэффициенты и т.д. и, следовательно, формально построено аналитическое решение у(х).
Метод разложения решения дифференциального уравнения в степенные ряды часто используется как элемент более практичных методов приближенного интегрирования дифференциальных уравнений. В частности, для некоторых численных методов интегрирования дифференциальных уравнений требуется определить значения искомых функций в нескольких точках. Эти значения при соблюдении известных условий гладкости данного уравнения могут быть с любой степенью точности подсчитаны с помощью степенных рядов.
6. Примеры решения задачи в Maple
Задача №1: Методом разложения в степенной ряд найти значение , где - решение дифференциального уравнения: удовлетворяющее начальному условию , на отрезке , приняв шаг
Дано: - дифференциальное уравнение
- начальное условие
- интервал
- шаг
Найти: значение
Решение:
Полагая и
(),
будем иметь
,
Дифференцируя данное уравнение , получим:
> diff (x+y(x)^2, x);
Отсюда
.
Дифференцируя еще раз, будем иметь
> diff (diff(x+y(x)^2, x), x);
/
/
Поэтому
Аналогично находим остальные производные:
, , .
Таким образом,
Отсюда имеем
Задача №2: Методом разложения в степенной ряд найти приближенное решение дифференциального уравнения при , удовлетворяющее начальному условию .
Дано: - дифференциальное уравнение
- начальное условие
Найти: значение
Решение:
Будем находить приближенное решения данного ДУ на отрезке [0, 1] с шагом (выбрали произвольно).
Имеем: , подставляя начальные условия, получим:
Затем находим вторую производную:
> diff (x*y(x), x);
Подставляя начальные условия, получим:
Находим третью производную:
> diff (diff(x*y(x), x), x);
Подставляем начальные условия:
Далее, находим четвертую производную:
> diff (diff (diff(x*y(x), x), x), x);
Подставляем начальные условия:
и т.д.
Таким образом, используя формулу (13), получаем разложение в степенной ряд:
Подставив в полученное выражение , получим
Сравним полученный приближенный результат с точным решением ДУ:
Точное решение |
Численное решение |
|||
1,00000 |
1,00000 |
0,00000 |
0,000000 |
|
1,02020 |
1,02020 |
0,00000 |
0,000001 |
|
1,08329 |
1,08320 |
0,00009 |
0,000080 |
|
1,19722 |
1,19620 |
0,00102 |
0,000850 |
|
1,37713 |
1,37120 |
0,00593 |
0,004304 |
|
1,64872 |
1,62500 |
0,02372 |
0,014388 |
По результатам таблицы, видно, что погрешность вычислений очень мала.
7. Метод Пикара Пикар Шарль Эмиль (1856-1941) -- французский математик.
Этот метод позволяет получить приближенное решение дифференциального уравнения (1) в виде функции, представленной аналитически.
Пусть в условиях теоремы существования требуется найти решение уравнения (1) с начальным условием (2). Проинтегрируем левую и правую части уравнения (1) в границах от до :
,
или
(9)
Решение интегрального уравнения (9) будет удовлетворять дифференциальному уравнению (1) и начальному условию (2). Действительно, при , получим:
Вместе с тем, интегральное уравнение (9) позволяет применить метод последовательных приближений. Будем рассматривать правую часть формулы (9) как оператор, отображающий всякую функцию (из того класса функций, для которых интеграл, входящий в (9), существует) в другую функцию того же класса:
Если этот оператор является сжимающим (что следует из условия теоремы Пикара), то можно строить последовательность приближений, сходящуюся к точному решению. В качестве начального приближения принимается , и находится первое приближение
Интеграл в правой части содержит только переменную x; после нахождения этого интеграла будет получено аналитическое выражение приближения как функции переменной x. Далее заменим в правой части уравнения (9) y найденным значением и получим второе приближение
и т.д. В общем случае итерационная формула имеет вид
(n=1, 2…) (10)
Циклическое применение формулы (10) дает последовательность функций
(11)
сходящуюся к решению интегрального уравнения (9) (а, следовательно, и дифференциального уравнения (1) с начальными условиями (2)). Это так же обозначает, что k-й член последовательности (11) является приближением к точному решению уравнения (1) с определенной контролируемой степенью точности.
Заметим, что при пользовании методом последовательных приближений аналитичность правой части дифференциального уравнения не обязательна, поэтому метод этот можно применять и в тех случаях, когда разложение решения дифференциального уравнения в степенной ряд невозможно.
8. Погрешность метода Пикара
Оценка погрешности k-го приближения дается формулой
(12)
где y(x) - точное решение, , - константа Липшица из неравенства (4).
На практике метод Пикара используется очень редко. Одна из причин - та, что интегралы, которые необходимо вычислять при построении очередных приближений, чаще всего аналитически не находятся, а применение их для вычисления численных методов так усложняет решение, что становится гораздо удобнее непосредственно применять другие методы, которые изначально являются численными.
9. Примеры решения задачи в Maple
Задача №1: Методом последовательных приближений найти значение , где - решение дифференциального уравнения: удовлетворяющее начальному условию , на отрезке , приняв шаг (расчет вести до второго приближения).
Дано: - дифференциальное уравнение
- начальное условие
- интервал
- шаг
Найти: значение
Решение:
Запишем для данного случая формулу вида (10)
Начальным приближением будем считать функцию
Имеем
> y1:=simplify (1+int (x+1, x=0…x));
Далее получаем
> y2:= simplify (1+int (x+simplify (1+int (x+1, x=0…x))^2, x=0…x));
и т.д.
Найдем значение при x=0,5:
Задача №2: Методом последовательных приближений найти приближенное решение дифференциального уравнения при , удовлетворяющее начальному условию .
Дано: - дифференциальное уравнение
- начальное условие
Найти: значение
Решение:
Будем находить приближенное решение данного ДУ на отрезке [0, 1] с шагом (выбрали произвольно).
Запишем для данного случая формулу вида (10)
Начальным приближением будем считать функцию
Имеем
> y1:=simplify (1+int (x*1, x=0…x));
Далее находим второе приближение:
>y2:=simplify (1+int (x*simplify (1+int (x*1, x=0…x)), x=0…x));
Аналогично находим третье приближение:
>y3:=simplify (1+int (x*simplify (1+int (x*simplify (1+int (x*1, x=0…x)), x=0…x)), x=0…x));
и т.д.
Найдем приближенное решение данного ДУ при , для этого в третье приближение вместо x, подставим и получим:
Сравним полученный приближенный результат с точным решением ДУ:
Точное решение |
Численное решение |
|||
1,000000 |
1,000000 |
0,000000 |
0,000000 |
|
1,020201 |
1,020201 |
0,000000 |
0,000000 |
|
1,083287 |
1,083285 |
0,000002 |
0,000002 |
|
1,197217 |
1,197172 |
0,000045 |
0,000038 |
|
1,377128 |
1,376661 |
0,000466 |
0,000339 |
|
1,648721 |
1,645833 |
0,002888 |
0,001752 |
По результатам таблицы, видно, что погрешность вычислений очень мала.
Заключение
В данной курсовой работе были рассмотрены основных метода приближенного решения обыкновенных дифференциальных уравнений первого порядка: Метод ломанных (Эйлера), метод разложения решения в степенной ряд и метод последовательных приближений (Пикара).
С помощью каждого метода было найдено приближенное решение дифференциального уравнения. Сравним полученные результаты по каждому методу с точным решением дифференциального уравнения:
Точное решение |
Метод Эйлера |
Метод разложения решения в степенной ряд |
Метод Пикара |
|
1,000 |
1,000 |
1,000 |
1,000 |
|
1,020 |
1,000 |
1,020 |
1,020 |
|
1,083 |
1,040 |
1,083 |
1,083 |
|
1,197 |
1,123 |
1,196 |
1,197 |
|
1,377 |
1,258 |
1,371 |
1,377 |
|
1,649 |
1,459 |
1,625 |
1,646 |
По результатам таблицы, видно, что наиболее точным из трех рассмотренных методов, является метод последовательных приближений Пикара, относительная погрешность =0,002, менее точен метод Эйлера (=0,115).
В завершении работы, хочется отметить ряд особенностей применения рассмотренных выше методов. Каждый способ приближённого решения дифференциального уравнения имеет свои преимущества и недостатки, в зависимости от поставленной задачи следует использовать конкретные методы.
Список используемой литературы
1. Лапчик М.П., Рагулина М.И., Хеннер Е.К. Численные методы. - М.: Академия, 2005. - 384 с.
2. Демидович Б.П., Марон И.А., Шувалова Э.З. Численные методы анализа. Приближение функций, дифференциальные и интегральные уравнения. - М.: Наука, 1967. - 368 с.
3. Ортега Дж., Пул У. Ведение в численные методы решения дифференциальных уравнений. - М.: Наука, 1986. - 288 с.
4. Хартман Ф. Обыкновенные дифференциальные уравнения. - М.: Мир, 1970. - 720 с.
5. Понтрягин Л.С. Обыкновенные дифференциальные уравнения. - М.: Наука, 1974. - 331 с.
6. Вержбицкий В.М. Основы численных методов. - М.: Высшая школа, 2001. - 382 с.