Численные методы решения обыкновенных дифференциальных уравнений. Решение обыкновенных дифференциальных уравнений Численное решение дифференциальных уравнений второго порядка примеры

Кафедра физхимии ЮФУ (РГУ)
ЧИСЛЕННЫЕ МЕТОДЫ И ПРОГРАММИРОВАНИЕ
Материалы к лекционному курсу
Лектор – ст. преп. Щербаков И.Н.

РЕШЕНИЕ ОБЫКНОВЕННЫХ ДИФФЕРЕНЦИАЛЬНЫХ УРАВНЕНИЙ

Постановка задачи

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

Обыкновенным дифференциальным уравнением (ОДУ) n-го порядка называется следующее уравнение, которое содержит одну или несколько производных от искомой функции y(x):

Здесь y (n) обозначает производную порядка n некоторой функции y(x), x – это независимая переменная.

В ряде случаев дифференциальное уравнение можно преобразовать к виду, в котором старшая производная выражена в явном виде. Такая форма записи называется уравнением, разрешенным относительно старшей производной (при этом в правой части уравнения старшая производная отсутствует):

Именно такая форма записи принята в качестве стандартной при рассмотрении численных методов решения ОДУ.

Линейным дифференциальным уравнением называется уравнение, линейное относительно функции y(x) и всех ее производных.

Например, ниже приведены линейные ОДУ первого и второго порядков

Решением обыкновенного дифференциального уравнения называется такая функция y(x), которая при любых х удовлетворяет этому уравнению в определенном конечном или бесконечном интервале. Процесс решения дифференциального уравнения называют интегрированием дифференциального уравнения .

Общее решение ОДУ n -го порядка содержит n произвольных констант C 1 , C 2 , …, C n

Это очевидно следует из того, что неопределенный интеграл равен первообразной подынтегрального выражения плюс константа интегрирования

Так как для решения ДУ n -го порядка необходимо провести n интегрирований, то в общем решении появляется n констант интегрирования.

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

Точное (аналитическое) решение (общее или частное) дифференциального уравнения подразумевает получение искомого решения (функции y(x)) в виде выражения от элементарных функций. Это возможно далеко не всегда даже для уравнений первого порядка.

Численное решение ДУ (частное) заключается в вычислении функции y(x) и ее производных в некоторых заданных точках , лежащих на определенном отрезке. То есть, фактически, решение ДУ n -го порядка вида получается в виде следующей таблицы чисел (столбец значений старшей производной вычисляется подстановкой значений в уравнение):

Например, для дифференциального уравнения первого порядка таблица решения будет представлять собой два столбца – x и y .

Множество значений абсцисс в которых определяется значение функции, называют сеткой , на которой определена функция y(x) . Сами координаты при этом называют узлами сетки . Чаще всего, для удобства, используются равномерные сетки , в которых разница между соседними узлами постоянна и называется шагом сетки или шагом интегрирования дифференциального уравнения

Или , i = 1, …, N

Для определения частного решения необходимо задать дополнительные условия, которые позволят вычислить константы интегрирования. Причем таких условий должно быть ровно n . Для уравнений первого порядка – одно, для второго - 2 и т.д. В зависимости от способа их задания при решении дифференциальных уравнений существуют три типа задач:

· Задача Коши (начальная задача): Необходимо найти такое частное решение дифференциального уравнения, которое удовлетворяет определенным начальными условиям, заданным в одной точке :

то есть, задано определенное значение независимой переменной (х 0) , и значение функции и всех ее производных вплоть до порядка (n-1) в этой точке. Эта точка (х 0) называется начальной . Например, если решается ДУ 1-го порядка, то начальные условия выражаются в виде пары чисел (x 0 , y 0)

Такого рода задача встречается при решении ОДУ , которые описывают, например, кинетику химических реакций. В этом случае известны концентрации веществ в начальный момент времени (t = 0 ) , и необходимо найти концентрации веществ через некоторый промежуток времени (t ) . В качестве примера можно так же привести задачу о теплопереносе или массопереносе (диффузии), уравнение движения материальной точки под действием сил и т.д.

· Краевая задача . В этом случае известны значения функции и (или) ее производных в более чем одной точке, например, в начальный и конечный момент времени, и необходимо найти частное решение дифференциального уравнения между этими точками. Сами дополнительные условия в этом случае называются краевыми (граничными ) условиями. Естественно, что краевая задача может решаться для ОДУ не ниже 2-го порядка. Ниже приведен пример ОДУ второго порядка с граничными условиями (заданы значения функции в двух различных точках):

· Задача Штурма-Лиувиля (задача на собственные значения). Задачи этого типа похожи на краевую задачу. При их решении необходимо найти, при каких значениях какого-либо параметра решение ДУ удовлетворяет краевым условиям (собственные значения) и функции, которые являются решением ДУ при каждом значении параметра (собственные функции). Например, многие задачи квантовой механики являются задачами на собственные значения.

Численные методы решения задачи Коши ОДУ первого порядка

Рассмотрим некоторые численные методы решения задачи Коши (начальной задачи) обыкновенных дифференциальных уравнений первого порядка. Запишем данное уравнение в общем виде, разрешенном относительно производной (правая часть уравнения не зависит от первой производной):

(6.2)

Необходимо найти значения функции y в заданных точках сетки , если известны начальные значения , где есть значение функции y(x) в начальной точке x 0 .

Преобразуем уравнение умножением на d x

И проинтегрируем левую и правую части между i -ым и i+ 1-ым узлами сетки.

(6.3)

Мы получили выражение для построения решения в i+1 узле интегрирования через значения x и y в i -ом узле сетки. Сложность, однако, заключается в том, что интеграл в правой части есть интеграл от неявно заданной функции, нахождение которого в аналитическом виде в общем случае невозможно. Численные методы решения ОДУ различным способом аппроксимируют (приближают) значение этого интеграла для построения формул численного интегрирования ОДУ.

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

Метод Эйлера

Исторически первым и наиболее простым способом численного решения задачи Коши для ОДУ первого порядка является метод Эйлера. В его основе лежит аппроксимация производной отношением конечных приращений зависимой (y ) и независимой (x ) переменных между узлами равномерной сетки:

где y i+1 это искомое значение функции в точке x i+1 .

Если теперь преобразовать это уравнение, и учесть равномерность сетки интегрирования, то получится итерационная формула, по которой можно вычислить y i+1 , если известно y i в точке х i :

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

Графическая интерпретация метода Эйлера также не представляет затруднений (см. рисунок ниже). Действительно, исходя из вида решаемого уравнения () следует, что значение есть значение производной функции y(x) в точке x=x i - , и, таким образом, равно тангенсу угла наклона каcательной, проведенной к графику функции y(x) в точке x=x i .

Из прямоугольного треугольника на рисунке можно найти

откуда и получается формула Эйлера. Таким образом, суть метода Эйлера заключается в замене функции y(x) на отрезке интегрирования прямой линией, касательной к графику в точке x=x i . Если искомая функция сильно отличается от линейной на отрезке интегрирования, то погрешность вычисления будет значительной. Ошибка метода Эйлера прямо пропорциональна шагу интегрирования:

Ошибка ~ h

Процесс вычислений строится следующим образом. При заданных начальных условиях x 0 и y 0 можно вычислить

Таким образом, строится таблица значений функции y(x) с определенным шагом (h ) по x на отрезке . Ошибка в определении значения y(x i) при этом будет тем меньше, чем меньше выбрана длина шага h (что определяется точностью формулы интегрирования).

При больших h метод Эйлера весьма неточен. Он дает все более точное приближение при уменьшении шага интегрирования. Если отрезок слишком велик, то каждый участок разбивается на N отрезков интегрирования и к каждому их них применяется формула Эйлера с шагом , то есть шаг интегрирования h берется меньше шага сетки, на которой определяется решение.

Пример:

Используя метод Эйлера, построить приближенное решение для следующей задачи Коши:

На сетке с шагом 0,1 в интервале (6.5)

Решение:

Данное уравнение уже записано в стандартном виде, резрешенном относительно производной искомой функции.

Поэтому, для решаемого уравнения имеем

Примем шаг интегрирования равным шагу сетки h = 0,1. При этом для каждого узла сетки будет вычислено только одно значение (N=1 ). Для первых четырех узлов сетки вычисления будут следующими:

Полные результаты (с точностью до пятого знака после запятой) приведены в в третьей колонке - h =0,1 (N =1). Во второй колонке таблицы для сравнения приведены значения, вычисленные по аналитическому решению данного уравнения .

Во второй части таблицы приведена относительная погрешность полученных решений. Видно, что при h =0,1 погрешность весьма велика, достигая 100% для первого узла x =0,1.

Таблица 1 Решение уравнения методом Эйлера (для колонок указан шаг интегрирования и число отрезков интегрирования N между узлами сетки)

x Точное
решение
0,1 0,05 0,025 0,00625 0,0015625 0,0007813 0,0001953
1 2 4 16 64 128 512
0 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000 0,000000
0,1 0,004837 0,000000 0,002500 0,003688 0,004554 0,004767 0,004802 0,004829
0,2 0,018731 0,010000 0,014506 0,016652 0,018217 0,018603 0,018667 0,018715
0,3 0,040818 0,029000 0,035092 0,037998 0,040121 0,040644 0,040731 0,040797
0,4 0,070320 0,056100 0,063420 0,066920 0,069479 0,070110 0,070215 0,070294
0,5 0,106531 0,090490 0,098737 0,102688 0,105580 0,106294 0,106412 0,106501
0,6 0,148812 0,131441 0,140360 0,144642 0,147779 0,148554 0,148683 0,148779
0,7 0,196585 0,178297 0,187675 0,192186 0,195496 0,196314 0,196449 0,196551
0,8 0,249329 0,230467 0,240127 0,244783 0,248202 0,249048 0,249188 0,249294
0,9 0,306570 0,287420 0,297214 0,301945 0,305423 0,306284 0,306427 0,306534
1 0,367879 0,348678 0,358486 0,363232 0,366727 0,367592 0,367736 0,367844

Относительные погрешности вычисленных значений функции при различных h

x h 0,1 0,05 0,025 0,00625 0,0015625 0,0007813 0,0001953
N 1 2 4 16 64 128 512
0,1 100,00% 48,32% 23,76% 5,87% 1,46% 0,73% 0,18%
0,2 46,61% 22,55% 11,10% 2,74% 0,68% 0,34% 0,09%
0,3 28,95% 14,03% 6,91% 1,71% 0,43% 0,21% 0,05%
0,4 20,22% 9,81% 4,83% 1,20% 0,30% 0,15% 0,04%
0,5 15,06% 7,32% 3,61% 0,89% 0,22% 0,11% 0,03%
0,6 11,67% 5,68% 2,80% 0,69% 0,17% 0,09% 0,02%
0,7 9,30% 4,53% 2,24% 0,55% 0,14% 0,07% 0,02%
0,8 7,57% 3,69% 1,82% 0,45% 0,11% 0,06% 0,01%
0,9 6,25% 3,05% 1,51% 0,37% 0,09% 0,05% 0,01%
1 5,22% 2,55% 1,26% 0,31% 0,08% 0,04% 0,01%

Уменьшим шаг интегрирования вдвое, h = 0.05, в этом случае для каждого узла сетки вычисление будет проводиться за два шага (N =2). Так, для первого узла x =0,1 получим:

(6.6)

Данная формула оказывается неявной относительно y i+1 (это значение есть и в левой и в правой части выражения), то есть является уравением относительно y i+1 , решать которое можно, например, численно, применяя какой-либо итерационный метод (в таком виде его можно рассматривать как итерационную формула метода простой итерации). Однако, можно поступить иначи и приблизительно вычислить значение функции в узле i+1 с помощью обычной формулы :

,

которое затем использовать при вычислении по (6.6).

Таким образом получается метод Гюна или метод Эйлера с пересчетом. Для каждого узла интегрирования производится следующая цепочка вычислений

(6.7)

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

Ошибка ~ h 2

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

Пример:

Проведем вычисления для уравения () с помощью метода Гюна.

При шаге интегрирования h =0,1 в первом узле сетки x 1 получим:

Что намного точнее значения, полученного методом Эйлера при том же шаге интегрирования. В таблице 2 ниже приведены сравнительные результаты вычислений при h = 0,1 методов Эйлера и Гюна.

Таблица 2 Решение уравнения методами Эйлера и Гюна

x Точное Метод Гюна Метод Эйлера
y отн. погрешность y отн. погрешность
0 0,000000 0,00000 0,00000
0,1 0,004837 0,00500 3,36% 0,00000 100,00%
0,2 0,018731 0,01903 1,57% 0,01000 46,61%
0,3 0,040818 0,04122 0,98% 0,02900 28,95%
0,4 0,070320 0,07080 0,69% 0,05610 20,22%
0,5 0,106531 0,10708 0,51% 0,09049 15,06%
0,6 0,148812 0,14940 0,40% 0,13144 11,67%
0,7 0,196585 0,19721 0,32% 0,17830 9,30%
0,8 0,249329 0,24998 0,26% 0,23047 7,57%
0,9 0,306570 0,30723 0,21% 0,28742 6,25%
1 0,367879 0,36854 0,18% 0,34868 5,22%

Отметим существенное увеличение точности вычислений метода Гюна по сравнению с методом Эйлера. Так, для узла x =0,1 относительное отклонение значения функции, определенного методом Гюна, оказывается в 30 (!) раз меньше. Такая же точность вычислений по формуле Эйлера достигается при числе отрезков интегрирования N примерно 30. Следовательно, при использовании метода Гюна при одинаковой точности вычислений понадобится примерно в 15 раз меньше времени ЭВМ, чем при использовании метода Эйлера.

Проверка устойчивости решения

Решение ОДУ в некоторой точке x i называется устойчивым, если найденное в этой точке значение функции y i мало изменяется при уменьшении шага интегрирования. Для проверки устойчивости, таким образом, надо провести два расчета значения (y i ) – с шагом интегрирования h и при уменьшенной (например, двое) величине шага

В качестве критерия устойчивости можно использовать малость относительного изменения полученного решения при уменьшении шага интегрирования (ε – наперед заданная малая величина)

Такая проверка может осуществляться и для всех решений на всем интервале значений x . Если условие не выполняется, то шаг снова делится пополам и находится новое решение и т.д. до получения устойчивого решения.

Методы Рунге-Кутты

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

Мы уже видели, какое преимущество дает переход от интегрирования по формуле прямоугольников () к использованию формулы трапеций () при аппроксимации этого интеграла.

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

Достоинством многошаговых методов Адамса при решении ОДУ заключается в том, что в каждом узле рассчитывается только одно значение правой части ОДУ - функции F(x,y ). К недостаткам можно отнести невозможность старта многошагового метода из единственной начальной точки, так как для вычислений по k -шаговой формуле необходимо знание значения функции в k узлах. Поэтому приходится (k-1) решение в первых узлах x 1 , x 2 , …, x k-1 получать с помощью какого-либо одношагового метода, например метода

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

Классификация численных методов для решения дифр. Ур. Типов.

Задача Коши – одношаговые: методы Эйлера, методы Рунге- Кутта; – многошаговые: метод Майна, Метод Адамса. Кроевая задача – метод сведения кроевой задачи к задаче Коши; –метод конечных разностей.

При решении задачи Коши должны быть заданы дифр. ур. порядка n или система дифр. ур. первого порядка из n уравнений и n дополнительных условий для ее решения. Дополнительные условия должны быть заданы при одном и том же значении независимой переменной. При решении кроевой задачи должны быть заданы ур. n-ого порядка или система из n уравнений и n дополнительных условий при двух или более значениях независимой переменной. При решении задачи Коши искомая функция определяется дискретно в виде таблицы с некоторым заданным шагом . При определении каждого очередного значения можно использовать информацию об одной предыдущей точке. В этом случае методы называют одношаговым, либо можно использовать информацию о нескольких предыдущих точках – многошаговые методы.

Обыкновенные дифференциальные ур. Задача Коши. Одношаговые методы. Метод Эйлера.

Задано: g(x,y)y+h(x,y)=0, y=-h(x,y)/g(x,y)= f(x,y), x 0 , y(x 0)=y 0 . Известно: f(x,y), x 0 , y 0 . Определить дискретное решение: x i , y i , i=0,1,…,n. Метод Эйлера основан на разложении функции в ряд Тейлора окрестности точки x 0 . Окрестность описывается шагом h. y(x 0 +h)y(x 0)+hy(x­ 0)+…+ (1). В методе Эйлера учитываются только два слагаемых ряда Тейлора. Введем обозначения. Формула Эйлера примет вид: y i+1 =y i +y i , y i =hy(x i)=hf(x i ,y i), y i+1 =y i +hf(x i ,y i) (2), i=0,1,2…, x i+1 =x i +h

Формула (2) является формулой простого метода Эйлера.

Геометрическая интерпретация формулы Эйлера

Для получения численного решения используется ф-ла касательной, проходящей через урав. касательной: y=y(x 0)+y(x 0)(x-x ­0), x=x 1 ,

y 1 =y(x 0)+f(x 0 ,y 0)  (x-x 0), т.к.

x-x 0 =h, то y 1 =y 0 +hf(x 0 ,y 0), f(x 0 ,y 0)=tg £.

Модифицированный метод Эйлера

Задано: y=f(x,y), y(x 0)=y 0 . Известно: f(x,y), x 0 , y 0 . Определить: зависимость y от x в виде табличной дискретной функции: x i , y i , i=0,1,…,n.

Геометрическая интерпертация

1) вычислим тангенс угла наклона в начальной точке

tg £=y(x n ,y n)=f(x n ,y n)

2) Вычислим значение  y n+1 на

конце шага по формуле Эйлера

 y n+1 =y n +f(x n ,y n) 3) Вычислим тангенс угла наклона

касательной в n+1 точке: tg £=y(x n+1 ,  y n+1)=f(x n+1 ,  y n+1) 4) Вычислим среднее арифметическое углов

наклона: tg £=½. 5) Используя тангенс угла наклона пересчитаем значение функции в n+1 точке: y n+1 =y n +htg £= y n +½h=y n +½h – формула модифицированного метода Эйлера. Можно показать, что полученная ф-ла соответствует разложению ф-ии в ряд Тейлора, включая слагаемы (до h 2). Модифицированный метод Эйлнра в отличии от простого является методом вторго порядка точности, т.к. погрешность пропорциональна h 2 .

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

где ,
n -мерные векторы; y – неизвестная вектор-функция; x – независимый аргумент,
. В частности, еслиn = 1, то система превращается в одно дифференциальное уравнение. Начальные условия задаются следующим образом:
, где
.

Если
в окрестности точки
непрерывна и имеет непрерывные частные производные поy , то теорема существования и единственности гарантирует, что существует и при том только одна непрерывная вектор-функция
, определенная внекоторой окрестности точки , удовлетворяющая уравнению (7) и условию
.

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

Решением задачи Коши на [a ; b ] является функция. В численных методах функция заменяется таблицей (табл. 1) .

Таблица 1

Здесь
,
. Расстояние между соседними узлами таблицы, как правило, берется постоянным:
,
.

Бывают таблицы и с переменным шагом. Шаг таблицы определяется требованиями инженерной задачи и не связан с точностью нахождения решения.

Еслиy – вектор, то таблица значений решения примет вид табл. 2.

Таблица2

В системе MATHCAD вместо таблицы используется матрица, причем она является транспонированной по отношению к указанной таблице.

Решить задачу Коши с точностью ε означает получить в указанной таблице значения (числа или векторы),
, такие, что
, где
– точное решение. Возможен вариант, когда решение на отрезок, заданный в задаче, не продолжается. Тогда нужно ответить, что на всем отрезке задача не может быть решена, и нужно получить решение на отрезке, где оно существует, сделав этот отрезок по возможности больше.

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

Общий принцип решения задачи Коши следующий. Отрезок [a ; b ] разбивается на ряд отрезков узлами интегрирования . Число узловk не обязано совпадать с числом узлов m итоговой таблицы значений решений (табл.1,2). Как правило, k > m . Для простоты расстояние между узлами будем считать постоянным,
;h называется шагом интегрирования. Затем, по определенным алгоритмам, зная значения приi < s , вычисляем значение . Чем меньше шагh , тем меньше значение будет отличаться от значения точного решения
. Шагh в этом разбиении уже определяется не по требованиям инженерной задачи, а по требуемой точности решения задачи Коши. Кроме того, он должен выбираться так, чтобы на одном шаге табл. 1, 2 укладывалось целое число шагов h . В этом случае значения y , полученные в результате счета с шагом h в точках
, используются соответственно в табл. 1 или 2.

Простейшим алгоритмом решения задачи Коши для уравнения (7) является метод Эйлера. Формула расчета такова:

(8)

Посмотрим, как оценивается точность находимого решения. Предположим, что
– точное решение задачи Коши, а также, что
, хотя это почти всегда не так. Тогда, где константаC зависит от функции
в окрестности точки
. Таким образом, на одном шаге интегрирования (нахождения решения) мы получаем ошибку порядка. Так как шагов приходится сделать
, то естественно ожидать, что суммарная ошибка в последней точке
будет порядка
, т.е. порядкаh . Поэтому метод Эйлера называют методом первого порядка, т.е. ошибка имеет порядок первой степени шага h . В действительности же на одном шаге интегрирования можно обосновать следующую оценку. Пусть
– точное решение задачи Коши с начальным условием
. Ясно, что
не совпадает с искомым точным решением
исходной задачи Коши уравнения (7). Однако при малыхh и «хорошей» функции
эти два точных решения будут отличаться мало. Формула остаточного члена формулы Тейлора гарантирует, что
, это и дает ошибку шага интегрирования. Итоговая ошибка складывается не только из ошибок на каждом шаге интегрирования, но и из отклонений искомого точного решения
от точных решений
,
, причем эти отклонения могут становиться очень большими. Однако итоговая оценка ошибки в методе Эйлера при «хорошей» функции
все равно имеет вид
,
.

При применении метода Эйлера счет идет следующим образом. По заданной точности ε определяем ориентировочно шаг
. Определяем число шагов
и снова ориентировочно выбираем шаг
. Затем опять корректируем его в сторону уменьшения, чтобы на каждом шаге табл. 1 или 2 укладывалось целое число шагов интегрирования. Получаем шагh . По формуле (8), зная и, находим. По найденному значениюи
находими так далее.

Полученный результат может не иметь желаемой точности, и, как правило, не будет ее иметь. Поэтому уменьшаем шаг в два раза и снова применяем метод Эйлера. Сравниваем результаты первого применения метода и второго в одинаковых точках . Если все расхождения меньше заданной точности, то можно считать последний результат счета ответом к задаче. Если нет, то шаг снова уменьшаем вдвое и еще раз применяем метод Эйлера. Теперь сравниваем результаты последнего и предпоследнего применения метода и т.д.

Метод Эйлера применяется сравнительно редко из-за того, что для достижения заданной точности ε требуется выполнить большое число шагов, имеющее порядок
. Однако если
имеет разрывы или разрывные производные, то методы более высоких порядков будут давать такую же ошибку, как и метод Эйлера. То есть потребуется такой же объем вычислений, как и в методе Эйлера.

Из методов более высоких порядков чаще других используется метод Рунге – Кутты четвертого порядка. В нем вычисления ведутся по формулам

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

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

В большей части программ, применяемых для решения дифференциальных уравнений, используется автоматический выбор шага. Суть его такова. Пусть уже вычислено значение . Вычисляется значение
с шагомh , выбранном при вычислении . Затем выполняются два шага интегрирования с шагом, т.е. добавляется лишний узел
в середине между узламии
. Вычисляются два значения
и
в узлах
и
. Вычисляется величина
, гдеp – порядок метода. Если δ меньше точности, заданной пользователем, то полагают
. Если нет, то выбирают новый шагh равным и повторяют проверку точности. Если же при первой проверкеδ много меньше заданной точности, то делается попытка увеличить шаг. Для этого вычисляется
в узле
с шагомh из узла
и вычисляется
с шагом 2h из узла . Вычисляется величина
. Еслименьше заданной точности, то шаг 2h считается приемлемым. В этом случае назначают новый шаг
,
,
. Еслибольше точности, то шаг оставляют прежним.

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

Описанные методы Эйлера и Рунге – Кутты относятся к группе одношаговых методов. Это означает, что для вычисления
в точке
достаточно знать значениев узле. Естественно ожидать, что если используется больше информации о решении, учитываются несколько предыдущих его значений
,
и т.д., то новое значение
можно будет найти точнее. Такая стратегия используется в многошаговых методах. Для их описания введем обозначение
.

Представителями многошаговых методов служат методы Адамса – Башфорта:


Метод k -го порядка дает локальную погрешность порядка
или глобальную – порядка.

Указанные методы относятся к группе экстраполяционных, т.е. новое значение явно выражается через предыдущие. Другой тип – интерполяционные методы. В них на каждом шаге приходится решать нелинейное уравнение относительно нового значения . В качестве примера возьмем методы Адамса –Моултона:


Для применения этих методов в начале счета нужно знать несколько значений
(их число зависит от порядка метода). Эти значения нужно получить другими методами, например методом Рунге – Кутты с маленьким шагом (для повышения точности). Интерполяционные методы во многих случаях оказываются более устойчивыми и позволяют делать бόльшие шаги, чем экстраполяционные.

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

Дифференциальные уравнения - это уравнения, в которые неизвестная функция входит под знаком производной. Основная задача теории дифференциальных уравнений -- изучение функций, являющихся решениями таких уравнений.

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

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

Изучение дифференциальных уравнений начнем с наиболее простого уравнения--уравнения первого порядка.

Уравнение вида

F(x,y,y") = 0,(1)

где х -- независимая переменная; у -- искомая функция; у" -- ее производная, называется дифференциальным уравнением первого порядка.

Если уравнение (1) можно разрешить относительно у", то оно принимает вид

и называется уравнением первого порядка, разрешенным относительно производной.

В некоторых случаях уравнение (2) удобно записать в виде f (х, у) dх - dy = 0, являющемся частным случаем более общего уравнения

P(x,y)dx+Q(x,y)dy=O,(3)

где Р(х,у) и Q(х,у) -- известные функции. Уравнение в симметричной форме (3) удобно тем, что переменные х и у в нем равноправны, т. е. каждую из них можно рассматривать как функцию другой.

Дадим два основных определения общего и частного решения уравнения.

Общим решением уравнения (2) в некоторой области G плоскости Оху называется функция у=ц(х,С), зависящая от х и произвольной постоянной С, если она является решением уравнения (2) при любом значении постоянной С, и если при любых начальных условиях y x=x0 =y 0 таких, что (x 0 ;y 0)=G, существует единственное значение постоянной С = С 0 такое, что функция у=ц(х,С 0) удовлетворяет данным начальным условиям у=ц(х 0 ,С).

Частным решением уравнения (2) в области G называется функция у=ц(х,С 0), которая получается из общего решения у=ц(х,С) при определенном значении постоянной С=С 0 .

Геометрически общее решение у=ц(х,С) представляет собой семейство интегральных кривых на плоскости Оху, зависящее от одной произвольной постоянной С, а частное решение у=ц(х,С 0) -- одну интегральную кривую этого семейства, проходящую через заданную точку (х 0 ; у 0).

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

и начальные условия y |x=x0 =y 0 .

Найдем приближенно решение уравнения на отрезке [х 0 ,b], удовлетворяющее заданным начальным условиям.

Разобьем отрезок [х 0 ,b] точками х 0 <х 1 ,<х 2 <...<х n =b на n равных частей. Пусть х 1 --х 0 =х 2 -- x 1 = ... =x n -- x n-1 = ?x. Обозначим через y i приближенные значения искомого решения в точках х i (i=1, 2, ..., n). Проведем через точки разбиения х i - прямые, параллельные оси Оу, и последовательно проделаем следующие однотипные операции.

Подставим значения х 0 и у 0 в правую часть уравнения y"=f(x,y) и вычислим угловой коэффициент y"=f(x 0 ,y 0) касательной к интегральной кривой в точке (х 0 ;у 0). Для нахождения приближенного значения у 1 искомого решения заменяем на отрезке [х 0 ,x 1 ,] интегральную кривую отрезком ее касательной в точке (х 0 ;у 0). При этом получаем

y 1 - y 0 =f(x 0 ;y 0)(x 1 - x 0),

откуда, так как х 0 , х 1 , у 0 известны, находим

y1 = y0+f(x0;y0)(x1 - x0).

Подставляя значения х 1 и y 1 , в правую часть уравнения y"=f(x,y), вычисляем угловой коэффициент y"=f(x 1 ,y 1) касательной к интегральной кривой в точке (х 1 ;y 1). Далее, заменяя на отрезке интегральную кривую отрезком касательной, находим приближенное значение решения у 2 в точке х 2:

y 2 = y 1 +f(x 1 ;y 1)(x 2 - x 1)

В этом равенстве известными являются х 1 , у 1 , х 2 , а у 2 выражается через них.

Аналогично находим

y 3 = y 2 +f(x 2 ;y 2) ?x, …, y n = y n-1 +f(x n-1 ;y n-1) ?x

Таким образом, приближенно построена искомая интегральная кривая в виде ломаной и получены приближенные значения y i искомого решения в точках х i . При этом значения у i вычисляются по формуле

y i = y i-1 +f(x i-1 ;y i-1) ?x (i=1,2, …, n).

Формула и является основной расчетной формулой метода Эйлера. Ее точность тем выше, чем меньше разность?x.

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

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

Введение

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

В ряде случаев дифференциальное уравнение можно преобразовать к виду, в котором старшая производная выражена в явном виде. Такая форма записи называется уравнением, разрешенным относительно старшей производной (при этом в правой части уравнения старшая производная отсутствует):

Решением обыкновенного дифференциального уравнения называется такая функция y(x), которая при любых х удовлетворяет этому уравнению в определенном конечном или бесконечном интервале. Процесс решения дифференциального уравнения называют интегрированием дифференциального уравнения.

Исторически первым и наиболее простым способом численного решения задачи Коши дляОДУ первого порядка является метод Эйлера. В его основе лежит аппроксимация производной отношением конечных приращений зависимой (y) и независимой (x) переменных между узлами равномерной сетки:

где y i+1 это искомое значение функции в точке x i+1 .

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

Данная формула оказывается неявной относительно y i+1 (это значение есть и в левой и в правой части выражения), то есть является уравнением относительно y i+1 , решать которое можно, например, численно, применяя какой-либо итерационный метод (в таком виде его можно рассматривать как итерационную формула метода простой итерации).

Состав курсовой работы: Курсовая работа состоит из трех частей. В первой части краткое описание методов. Во второй части постановка и решение задачи. В третьей части – программная реализация на языке ЭВМ

Цель курсовой работы: изучить два метода решения дифференциальных уравнений-метод Эйлера-Коши и усовершенствованный методЭйлера.

1. Теоретическая часть

Численное дифференцирование

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

    Обыкновенные дифференциальные уравнения (ОДУ)

    Дифференциальные уравнения в частных производных.

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

независимая переменная

Наивысший порядок , входящий в уравнение (1) называется порядком дифференциального уравнения.

Простейшим (линейным) ОДУ является уравнение (1) порядка разрешенное относительно производной

Решением дифференциального уравнения (1) называется всякая функция,которая после ее подстановки в уравнение обращает его в тождество.

Основная задача, связанная с линейной ОДУ известно как задача Каши:

Найти решение уравнения (2) в виде функции удовлетворяющий начальному условию (3)

Геометрически это означает, что требуется найти интегральную кривую, проходящую через точку ) при выполнение равенства (2).

Численный с точки зрения задачи Каши означает: требуется построить таблицу значений функции удовлетворяющий уравнение (2) и начальное условие (3) на отрезке с некоторым шагом . Обычно считается, что то есть начальное условие задано в левом конце отрезка.

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

Пусть дано уравнение (2) с начальным условием тоесть поставлена задача Каши. Решим вначале следующую задачу. Найти простейшим способом приближенное значение решения в некоторой точке где -достаточно малый шаг. Уравнение (2) совместно с начальным условием (3) задают направление касательной искомой интегральной кривой в точке с координатами

Уравнение касательной имеет вид

Двигаясь вдоль этой касательной, получим приближенное значение решения в точке :

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

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

Продолжая эту идею, построим систему равно отстоящих точек

Получение таблицы значений искомой функции

по методу Эйлера заключается в циклическом применение формулы

Рисунок 1. Графическая интерпретация метода Эйлера

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

1.1 Усовершенствованный метод Эйлера

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

А формула (5) получает вид

Формула (7) применена только для , следовательно, значения по ней получить нельзя, поэтому находят по методу Эйлера, при этом для получения более точного результата поступают так: с начало по формуле (5) находят значение

(8)

В точке а затем находится по формуле (7) с шагом

(9)

После того как найдено дальнейшие вычисления при производится по формуле (7)