Государство и право

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

Системой дифференциальных уравнений называется система вида

где x - независимый аргумент,

y i - зависимая функция, ,

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

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

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


Дифференциальным уравнением второго порядка называется уравнение вида



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

Численно ищется частное решение уравнения (2), которое удовлетворяет заданным начальным условиям, то есть решается задача Коши.

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

. (3)


Функция f 2 (x, y 1 , y) в систему (3) введена формально для того, чтобы методы, которые будут показаны ниже, могли быть использованы для решения произвольной системы дифференциальных уравнений первого порядка. Рассмотрим несколько численных методов решения системы (3). Расчетные зависимости для i+1 шага интегрирования имеют следующий вид. Для решения системы из n уравнений расчетные формулы приведены выше. Для решения системы из двух уравнений расчетные формулы удобно записать без двойных индексов в следующем виде:

  1. Метод Эйлера .

    у 1,i+1 =у 1,i +hf 1 (x i , y 1,i , y i),

    у i+1 =у i +hf 2 (x i , y 1,i , y i),

  2. Метод Рунге-Кутта четвертого порядка .

    у 1,i+1 =у 1,i +(m 1 +2m 2 +2m 3 +m 4)/6,

    у i+1 =у i +(k 1 +2k 2 +2k 3 +k 4)/6,

    m 1 =hf 1 (x i , y 1,i , y i),

    k 1 =hf 2 (x i , y 1,i , y i),

    m 2 =hf 1 (x i +h/2, y 1,i +m 1 /2, y i +k 1 /2),

    k 2 =hf 2 (x i +h/2, y 1,i +m 1 /2, y i +k 1 /2),

    m 3 =hf 1 (x i +h/2, y 1,i +m 2 /2, y i +k 2 /2),

    k 3 =hf 2 (x i +h/2, y 1,i +m 2 /2, y i +k 2 /2),

    m 4 =hf 1 (x i +h, y 1,i +m 3 , y i +k 3),

    k 4 =hf 2 (x i +h, y 1,i +m 3 , y i +k 3),

    где h - шаг интегрирования. Начальные условия при численном интегрировании учитываются на нулевом шаге: i=0, x=x 0 , y 1 =y 10 , y=y 0 .

Контрольное задание по зачетной работе.

Колебания с одной степенью свободы

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

Задание. Численно и аналитически найти:

  1. закон движения материальной точки на пружинке х(t),
  2. закон изменения силы тока I(t) в колебательном контуре (RLC - цепи) для заданных в табл.1,2 режимов. Построить графики искомых функций.

Варианты заданий.


Таблица режимов



Варианты заданий и номера режимов:

  1. движение точки
  2. RLC - цепь


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


  1. Название, цель работы и задание.
  2. Математическое описание, алгоритм (структограмма) и текст программы.
  3. Шесть графиков зависимости (три точные и три приближенные) x(t) или I(t), выводы по работе.

Пусть нам известна входная динамическая последовательность X (входной сигнал) и модель (способ преобразования входного сигнала в выходной сигнал). Рассматривается задача определения выходного сигнала y (t ) (см. рис. 10.1 ).

Модель динамической системы может быть представлена дифференциальным уравнением. Основное уравнение динамики:

y " = f (x (t ), y (t ), t ) .

Известны начальные условия в нулевой момент времени t 0 : y (t 0) , x (t 0) . Чтобы определить выходной сигнал, заметим, что по определению производной:

Нам известно положение системы в точке «1», требуется определить положение системы в точке «2». Точки отделены друг от друга расстоянием Δt (рис. 10.2 ). То есть расчет поведения системы производится по шагам. Из точки «1» мы скачком (дискретно) переходим в точку «2», расстояние между точками по оси t называется шагом расчета Δt .

Рис. 10.2. Иллюстрация расчета будущего состояния системы
методом Эйлера на одном шаге

Последняя формула называется формулой Эйлера .

Очевидно, чтобы узнать состояние системы в будущем y (t + Δt ) , надо к настоящему состоянию системы y (t ) прибавить изменение Δy , прошедшее за время Δt .

Рассмотрим еще раз это важное соотношение, выведя его из геометрических соображений (рис. 10.3 ).

Рис. 10.3. Геометрическая иллюстрация метода Эйлера

Пусть A — точка, в которой состояние системы известно. Это «настоящее» состояние системы.

В точке A к траектории движения системы проведем касательную. Касательная — это производная функции f (x (t ), y (t ), t ) по переменной t . Производную в точке всегда легко вычислить, достаточно подставить известные переменные (в момент «Настоящее» они известны) в формулу y " = f (x (t ), y (t ), t ) .

Заметим, что, по определению, производная связана с углом наклона касательной: y " = tg(α ) , значит, угол α легко вычислить (α = arctg(y " ) ) и провести касательную.

Проведем касательную до пересечения с линией t + Δt . Момент t + Δt соответствует «будущему» состоянию системы. Проведем линию параллельно оси t от точки A до пересечения с линией t + Δt . Линии образуют прямоугольный треугольник ABC, один катет которого равен Δt (известен). Известен также угол α . Тогда второй катет в прямоугольном треугольнике ABC равен: a = Δt · tg(α ) . Теперь легко вычислить ординату точки B. Она состоит из двух отрезков — y (t ) и a . Ордината символизирует положение системы в точке y (t + Δt ) . То есть y (t + Δt ) = y (t ) + a или далее y (t + Δt ) = y (t ) + Δt · tg(α ) или, подставляя дальше, имеем: y (t + Δt ) = y (t ) + Δt · y " и, наконец, y (t + Δt ) = y (t ) + Δt · f (x (t ), y (t ), t ) . Снова мы получили формулу Эйлера (из геометрических соображений).

Эта формула может дать точные результаты только при очень малых Δt (говорят при Δt –> 0 ). При Δt ≠0 формула дает расхождение между истинным значением y и расчетным, равное ε , поэтому в ней должен стоять знак приближенного равенства, либо она должна быть записана так:

y (t + Δt ) = y (t ) + Δt · f (x (t ), y (t ), t ) + ε .

И в самом деле. Взгляните еще раз на рис. 10.3 . Будем мысленно сдвигать линию t + Δt влево (фактически, будем приближать значение Δt к нулю). Как нетрудно видеть, расстояние BB * = ε , — то есть ошибка! — будет сокращаться. В пределе (при Δt –> 0 ) значение ошибки ε будет равно нулю.

Итак, заменяя реальную кривую прямой (касательной) на отрезке Δt , мы вносим в решение ошибку, попадая в результате не в точку «2» (см. рис. 10.2 ), а рядом, в точку «3». Очевидно, что этот численный метод на каждом шаге имеет погрешность расчета ε .

Из рисунка видно, что чем меньше взять величину Δt , тем меньше будет ошибка расчета ε . То есть для расчета поведения системы на сколько-нибудь продолжительном отрезке времени (например, от t 0 до t k ), чтобы уменьшить ошибку на каждом шаге, шаги Δt делают по возможности малыми. Для достижения точки t k отрезок (t k – t 0) делится на отрезки длиной Δt ; таким образом, всего получится N = (t k – t 0)/Δt шагов. В результате расчета придется формулу Эйлера применить для каждого шага, то есть N раз. Но следует иметь в виду, что ошибки ε i на каждом i -ом шаге (в простейшем случае) складываются, а общая ошибка быстро накапливается (см. рис. 10.4 ). И в этом состоит существенный недостаток данного метода. Хотя с помощью этого метода можно получить (в численном виде) решение любого дифференциального уравнения (в том числе и неразрешимого аналитически). Уменьшая шаг, мы получаем более точные решения, но при этом не следует забывать, что увеличение числа шагов ведет к вычислительным затратам и снижению быстродействия. Кроме того, при большом числе итераций в расчет вносится другая существенная погрешность из-за ограниченной точности вычислительных машин и ошибок округления.

Рис. 10.4. Нарастание суммарной ошибки в методе Эйлера на ряде шагов

Задача 1 . Дано дифференциальное уравнение y " = 2t y . Задано начальное положение системы: y (0) = 1 . Требуется найти y (t ) , то есть поведение системы на интервале времени t от 0 до 1.

Аналитический способ решения задачи 1

y " = 2t y .

Методом разделения переменных найдем:

y " /y = 2t

Будем интегрировать от 0 до t i , тогда согласно правилам интегрирования имеем:

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

Численный способ решения задачи 1

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

При алгоритмической реализации расчет реализуется циклом, в котором изменяется t (счетчик t ) и y :

Блок-схема при реализации метода на компьютере показана на рис. 10.5 .

Рис. 10.5. Блок-схема реализации метода Эйлера

В реализации Стратум запись будет выглядеть так (наличие символа «~» при t ):

Будем искать значение y рассмотренного ранее примера в численном виде на промежутке от T = 0 до T = 1 . Возьмем число шагов n = 10 , тогда шаг приращения Δt составит: Δt = (1 – 0)/n = (1 – 0)/10 = 0.1 .

Таблица 10.1.
Численный расчет уравнения методом Эйлера
и сравнение результата с точным решением на каждом шаге
i t i y i = y i – 1 + y" i – 1 · Δt y" i = 2t i · y i Δy i = y" i · Δt y i + 1 = y i + Δy i y точн. = exp(t i 2)
0 0.0 1 0 0 1 1
1 0.1 1 0.2 0.02 1.02 1.0101
2 0.2 1.02 0.408 0.0408 1.0608 1.0408
3 0.3 1.061 0.636 0.0636 1.1246 1.0942
4 0.4 1.124 0.900 0.0900 1.2140 1.1735
5 0.5 1.214 1.214 0.1214 1.3354 1.2840
6 0.6 1.336 1.603 0.1603 1.4963 1.4333
7 0.7 1.496 2.095 0.2095 1.7055 1.6323
8 0.8 1.706 2.729 0.2729 1.9789 1.8965
9 0.9 1.979 3.561 0.3561 2.3351 2.2479
10 1.0 2.335 4.669 0.4669 2.8019 2.7183

Обратите внимание на то, что рассчитанное численно значение (y i + 1 ) отличается от точного (y точн. ), и погрешность (разница столбцов y i + 1 и y точн. ) в процессе расчета нарастает подобно тому, как было показано на рис. 10.4 .

Теперь подсчитаем относительную погрешность σ для расчетного значения y (1) , полученного численно, в сравнении с теоретическим точным y теор. по следующей формуле:

σ = (1 – y расч. /y теор.) · 100%

и сравним σ при различных значениях Δt .

Если будем менять значение шага Δt , например, уменьшать шаг, то относительная погрешность расчета тоже будет уменьшаться. Вот что получится при вычислении значения y (1) с разными значениями шага (см. табл. 10.2).

Таблица 10.2.
Зависимость погрешности
расчета от размера шага Δt
Δt y расч. (1) y теор. (1) σ
1/10 2.3346 2.7183 14%
1/20 2.5107 2.7183 8%
1/100 2.6738 2.7183 2%

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

Обратите внимание, что изменение шага в 10 раз (с 1/10 до 1/100) ведет к изменению величины ошибки примерно тоже в 10 раз (с 14% до 2%). При изменении шага в 100 раз ошибка примерно уменьшится тоже в 100 раз. Иными словами размер шага и ошибка для метода Эйлера связаны линейно. Хотите уменьшить в 10 раз ошибку — уменьшайте в 10 раз шаг и увеличивайте соответственно в 10 раз количество вычислений. Этот факт в математике принято обозначать символом ε = O t ) , а метод Эйлера называют методом первого порядка точности.

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

Примечания

  1. Каждый численный метод обладает точностью, поскольку результат отличается от теоретического. Точность метода зависит от величины шага. Различные методы имеют различную точность. Порядок зависимости точности от величины шага обозначают как O (h ) . У метода Эйлера первый порядок точности, зависимость ошибки от величины шага линейна.
  2. Если при уменьшении шага предел y n стремится к значению y теор. , то говорят, что метод обладает сходимостью. Исследователей интересует скорость сходимости метода.
  3. Метод должен быть устойчив. Устойчивость связана с некоторой критической величиной шага. При проявлении неустойчивости наблюдается полное искажение качественной картины расчета, «разболтка» результата.
  4. При выборе метода рекомендуется сначала добиться устойчивости, а внутри области устойчивости — сходимости результата. Устойчивость обеспечивает качественную картину. Сходимость обеспечивает количественный результат (см. также рис. 10.10 ).

Изложенное в пп. 1-4 поясним на примере.

Пример . Пусть

Качественно это уравнения описывают процесс теплообмена между двумя телами, температуры которых в некоторый момент времени обозначим как A и B . Вообще A и B — переменные, меняющиеся во времени t . Найти поведение системы означает, что надо найти, как будут меняться температуры A (t ) и B (t ) .

Интуитивно ясно, что при начальной разнице температур A = 8 и B = 5 температуры тел постепенно со временем должны выровняться, так как более горячее тело будет отдавать энергию более холодному, и его температура будет уменьшаться, а более холодное тело будет принимать энергию от более горячего, и его температура будет увеличиваться. Процесс теплообмена закончится (то есть изменения прекратятся) тогда, когда температуры двух тел станут одинаковыми.

Проведем несколько расчетов поведения A (t ) и B (t ) с разной величиной шага Δt .

Будем брать различную величину шага Δt и находить соответствующие значения A и B во времени по следующим формулам Эйлера:

A нов. = A пред. + (B пред. – A пред.) · Δt ,
B нов. = B пред. + (A пред. – B пред.) · Δt .

Расчет при Δt = 2 (табл. 10.3).

Наблюдается явление «разболтки» (см. рис. 10.6 ). Неустойчивое решение. Из физических соображений очевидно, что так вести себя два тела в процессе теплообмена не могут.

Рис. 10.6. Система ведет себя качественно
неверно. Решение неустойчиво

Расчет при Δt = 1 (табл. 10.4).

Таблица 10.4.
Изменение температур
тел при численном
расчете с шагом 1

шага
t A B
0 0 8 5
1 1 5 8
2 2 8 5

Наблюдается поведение решения системы на границе устойчивости (см. рис. 10.7 ).

Рис. 10.7. Система ведет себя качественно
неверно. Решение находится на грани устойчивости

Расчет при Δt = 0.5 (табл. 10.5).

Таблица 10.5.
Изменение температур
тел при численном
расчете с шагом 0.5

шага
t A B
0 0 8 5
1 0.5 6.5 6.5
2 1.0 6.5 6.5

Решение устойчиво, соответствует правильной качественной картине (см. рис. 10.8 ). Температуры тел постепенно сближаются, становятся со временем одинаковыми. Но решение пока имеет большую погрешность.

Рис. 10.8. Система ведет себя качественно правильно.
Решение (поведение системы) имеет большую погрешность

Расчет при Δt = 0.1 (табл. 10.6).

Таблица 10.6.
Изменение температур
тел при численном
расчете с шагом 0.1

шага
t A B
0 0 8 5
1 0.1 7.7 5.3
2 0.2 7.46 5.54
3 0.3 7.27 5.73
4 0.4 7.12 5.88
5 0.5 7.00 6.00

Решение устойчиво. Решение более точно (см. рис. 10.9 ).

Рис. 10.9. Система ведет себя качественно верно.
Количественно решение более точно

Роль изменения величины шага иллюстрирует рис. 10.10 .

Рис. 10.10. Связь величины шага расчета с устойчивостью метода и его точностью (на примере)

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

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

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

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

Обыкновенным дифференциальным уравнением (ОДУ) 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 получать с помощью какого-либо одношагового метода, например метода

Введение

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

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

Решением обыкновенного дифференциального уравнения называется такая функция 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)

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

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

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

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

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

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

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

Численный метод решения задачи Коши называется сходящимся , если для него при. Говорят, что метод имеет-ый порядок точности, если для погрешности справедлива оценка,константа, .

Метод Эйлера

Простейшим методом решения задачи Коши является метод Эйлера. Будем решать задачу Коши

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

Эти формулы и начальное условие являются расчетными формулами метода Эйлера.

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

Оценка погрешности. Для оценки погрешности метода Эйлера воспользуемся следующей теоремой.

Теорема. Пусть функция удовлетворяет условиям:

.

Тогда для метода Эйлера справедлива следующая оценка погрешности: , где– длина отрезка. Мы видим, что метод Эйлера имеет первый порядок точности.

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

.

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

Используя правило Рунге, можно построить процедуру приближенного вычисления решения задачи Коши с заданной точностью . Для этого нужно, начав вычисления с некоторого значения шага , последовательно уменьшать это значение в два раза, каждый раз вычисляя приближенное значение,. Вычисления прекращаются тогда, когда будет выполнено условие: . Для метода Эйлера это условие примет вид:. Приближенным решением будут значения,.

Пример 1. Найдем решение на отрезке следующей задачи Коши:,. Возьмем шаг. Тогда.

Расчетная формула метода Эйлера имеет вид:

, .

Решение представим в виде таблицы 1:

Таблица 1

Исходное уравнение есть уравнение Бернулли. Его решение можно найти в явном виде: .

Для сравнения точного и приближенного решений представим точное решение в виде таблицы 2:

Таблица 2

Из таблицы видно, что погрешность составляет