Главная страница

Лекция 5. Лекция 5. Дифференциальные уравнения (1). Дифференциальным уравнением


Скачать 1.07 Mb.
НазваниеДифференциальным уравнением
АнкорЛекция 5
Дата16.04.2022
Размер1.07 Mb.
Формат файлаpdf
Имя файлаЛекция 5. Дифференциальные уравнения (1).pdf
ТипДокументы
#478232

Дифференциальные уравнения
Дифференциальным уравнениемназывается уравнение, связывающее независимые переменные, их функции и производные этих функций. Если дифференциальное уравнение имеет одну независимую переменную, то оно называется
обыкновенным дифференциальным уравнением (ОДУ), если же независимых переменных две или более, то такое дифференциальное уравнение называется дифференциальным
уравнением в частных производных.
Наивысший порядок производных, входящих в уравнение, называется порядком дифференциального уравнения. В общем виде ОДУ можно представить следующим образом:
F(x, y, y', y'', … y
(n)
) = 0 где
x – независимая переменная;
y – функция этой переменной;
y
(i)
– производная i–го порядка функции y(x);
n – порядок уравнения.

ОДУ первого порядка
Будем рассматривать пока только ОДУ первого порядка, которые могут быть в общем виде записаны следующим образом:
F(x, y, y') = 0
y' = f(x, y)
Вторая форма записи называется ОДУ, разрешенным относительно первой производной.
Общим решениемдифференциального уравнения первого порядка называется такая дифференцируемая функция
y=

(x,C), которая при подстановке в исходное уравнение вместо неизвестной функции обращает уравнение в тождество. Здесь C – произвольная постоянная величина, и поэтому ОДУ первого порядка имеет бесконечное множество решений – множество функций, удовлетворяющих уравнению
y' = f(x, y).

Общее решение ОДУ первого порядка

Пример общего решения ОДУ
Общее решение ОДУ первого порядка в ряде случаев может быть найдено аналитически, путем интегрирования левой и правой частей уравнения с предварительным разделением переменных. Пусть, например, дано уравнение y' = y∙cos(x). Запишем его в виде
cos(x)
y
dx
dy


Разделив переменные, получим
dx
cos(x)
y
dy

Проинтегрируем обе части уравнения и выразим функцию y в явном виде:
C
sin(x)
e
y
C
sin(x)
ln(y)






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

(x,C
0
), а нахождение частного решения, удовлетворяющего начальным условиям y(x
0
) = y
0
, называется задачей Коши. Начальные условия задают координаты точки, через которую должна проходить кривая искомого частного решения. Теорема Коши утверждает существование и единственность частного решения.
Пусть, например, для уравнения y' = y∙cos(x) заданы начальные условия
y(0) = 1. Подставив их в общее решение, получим:
ln(1) = sin(0) + C
0
, откуда C
0
=0, и частное решение при данных начальных условиях имеет вид:
sin(x)
e
y


Численные методы решения ОДУ 1–го порядка
x
x
0
=a
x
1
x
2

x
n
=b
y
y
0
y
1
y
2

y
n
В большинстве случаев аналитическое решение ОДУ первого порядка оказывается невозможным, и тогда приходится решать эту задачу численными методами. Результатом решения
ОДУ численными методами является таблица значений y =

(x) на некотором множестве значений аргумента х. Поэтому при постановке задачи численного решения ОДУ первого порядка наряду с начальными условиями x
0
, y
0 необходимо задать область решения - отрезок [a;b] и шаг изменения аргумента h.
Таким образом, численное решение ОДУ представляет собой таблицу значений искомой функции y
i
для заданной последовательности значений аргумента x
i+1
=x
i
+h, i=0, 1, …, n, где h = x
i+1
-x
i
называется шагом интегрирования.

Метод Эйлера
1 способ вывода ф-лы
Запишем ряд Тейлора для искомого решения ОДУ y(x) в окрестности начальной точки (x
0
,y
0
), ограничившись двумя первыми и остаточным членом ряда:
2
0
0
0
0
)
x
(x
2
(t)
y"
)
x
)(x
(x
y'
)
y(x
y(x)





Отсюда при x = x
1
получаем:
2
0
1
0
1
0
0
1
)
x
(x
2
(t)
y"
)
x
)(x
(x
y'
)
y(x
)
y(x





или
2
0
0
0
1
h
2
(t)
y"
)
,y
f(x
h
y
y




где t – некоторая точка на интервале (x
0
,x
1
).
Продолжив этот процесс в полученной точке (x
1
,y
1
), а затем и в следующих точках, получаем рекуррентную формулу метода, известного как
метод Эйлера:
0,1,2,...
i
)
,y
f(x
h
y
y
i
i
i
1
i






2 способ вывода ф-лы Эйлера
Разобьем отрезок на n равных частей и получим последовательность x
0
,x
1
,…, x n
, где x
i
=x
0
+i
∙h (i=0, 1, …,n), а h = (b-a)/n – шаг интегрирования.
Найдем y
i
= y(x i
)
Для этого проинтегрируем производную, заданную на интервале [x
0
;x
1
],
по формуле Ньютона –
Лейбница:
1 0
x
1 0
1 0
x f ( x, y)dx y( x )
y( x
)
y y .





Отсюда значение искомой функции в точке x
1 1
0
x
1 0
x y
y f ( x, y )dx.



Примем допущение, что на интервале
[x
0
;x
1
]
производная исходной функции постоянна и равна своему значению в точке
А(x
0
,y
0
).
Тогда по формуле прямоугольников
1 0
0 0
1 0
1 0
0 0
y y
f(x , y ) (x x )
или y
y h f(x , y ).








Метод Эйлера
y

=f(x,y), y
y
0
x
0
x y
1
y
2
x
1
x
2
A
C
B
D
Аналитическое решение ОДУ y(x)
Угол α

Локальная погрешность метода Эйлера
Остаточный член ряда Тейлора характеризует
локальную (шаговую) погрешность метода
Эйлера e
1
= C∙h
2
, где C– некоторая постоянная.
Локальная погрешность метода
Эйлера пропорциональна квадрату шага интегрирования: при уменьшении шага в 2 раза локальная погрешность уменьшится в 4 раза.

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

Глобальная погрешность и порядок метода
Эйлера
На предыдущем слайде показаны локальные погрешности, образовавшиеся на каждом шаге, и глобальная (накопленная) погрешность, образовавшаяся за два шага. Известно, что порядок глобальной погрешности относительно шага интегрирования на единицу ниже, чем порядок локальной погрешности. Таким образом, глобальная погрешность метода
Эйлера имеет порядок p=1: g
1
= C∙h, где C – некоторая постоянная.
Порядок численного метода для решения ОДУ определяется порядком его глобальной погрешности. Он может быть также определен, как количество вычислений значения производной
f(x,y) искомой функции на каждом шаге. В соответствии с этим
метод Эйлера является методом первого порядка.

Таким образом, численное решение
ОДУ
представляет
собой
таблицу
значений искомой функции для заданной
последовательности аргументов, x
i+1
=x
i
+h,
i
=0, 1, …,n, где
h
=
x
i+1
-x
i
называется
шагом
интегрирования.
Выделяют два класса методов решения
ОДУ: одношаговые и многошаговые. В
одношаговых методах для нахождения
следующего значения функции требуется
значение только одной текущей точки, то
есть
i
1
i i
y
F[f (x , y )],


а
в
многошаговых

нескольких,
например
i 1
i 3
i 2
i 1
i y
F(y
, y
, y
, y ).






Пример решения ОДУ методом Эйлера
Пусть дано уравнение y' = y∙cos(x) с начальными условиями x
0
=0, y
0
=1.
Требуется найти его численное решение на отрезке [0;1] с шагом h=0.1.
Будем искать численное решение по рекуррентной формуле метода
Эйлера для данного уравнения:
0,1,2,...9
i
)
cos(x
y
0.1
y
y
i
i
i
1
i






x
1
= 0.1 y
1
= 1 + 0.1 ∙1∙cos(0) = 1.1
x
2
= 0.2 y
2
= 1.1 + 0.1 ∙1.1∙cos(0.1) = 1.20945
x
3
= 0.3 y
3
= 1.20945 + 0.1 ∙1.20945∙cos(0.2) = 1.32798
……………………………………………………………
и так далее.

Метод Рунге–Кутты 2–го порядка
(метод прогноза-коррекции
)
По методу Рунге–Кутты 2–го порядка (улучшенному методу Эйлера) вычисление значения искомой функции в точке x
i+1
проводится в два этапа
(слайд 13). Сначала вычисляют методом Эйлера “грубое приближение”
)
y
,
f(x
h
y
y
i
i
i
1
i




Затем вычисляют значение производной в точке
)
y
,
(x
1)
i
1
i


и окончательно полагают:
2
)
y
,
f(x
)
y
,
f(x
h
y
y
1
i
1
i
i
i
i
1
i







то есть усредняют значения производных в начальной точке и в точке
“грубого приближения”. Окончательно запишем рекуррентную формулу метода Рунге–Кутты 2–го порядка в следующем виде:
0,1,2,...
i
)
K
(K
2
h
y
y
2
1
i
1
i






где K
1
= f(x
i
,y
i
),
K
2
= f(x
i
+h, y
i
+h∙K
1
)

Локальная погрешность метода Рунге–Кутты
2–го порядка
Локальная погрешность метода Рунге–
Кутты 2–го порядка e
2
= C1∙h
3
, где C1 – некоторая постоянная, и пропорциональна кубу шага интегрирования: при уменьшении шага в 2 раза локальная погрешность уменьшится в 8 раз.

Геометрическая иллюстрация метода Рунге–
Кутты 2–го порядка

Пример решения ОДУ методом Рунге–Кутты 2–го порядка
Пусть дано уравнение y' = y∙cos(x) с начальными условиями x
0
=0, y
0
=1.
Требуется найти его численное решение на отрезке [0;1] с шагом h=0.1.
Будем искать численное решение по рекуррентной формуле метода
Рунге–Кутты для данного уравнения:
0,1,2,...9
i
)
K
(K
0.05
y
y
2
1
i
1
i






где K
1
= y
i
∙ cos(x
i
),
K
2
= (y
i
+ h∙K
1
) ∙ cos(x
i
+ h)
x
1
= 0.1
K
1
= 1∙cos(0) = 1
K
2
= (1 + 0.1 ∙ 1) ∙ cos(0.1) = 1.09450
y
1
= 1 + 0.05∙ (1 + 1.09450) = 1.10473
x
2
= 0.2
K
1
= 1.10473 ∙ cos(0.1) = 1.09921
K
2
= (1.10473 + 0.1 ∙ 1.09921) ∙ cos(0.2) = 1.19044
y
2
= 1.10473 + 0.05 ∙ (1.09921 + 1.19044) = 1.21921
x
3
= 0.3
K
1
= 1.21921 ∙ cos(0.2) = 1.19491
K
2
= (1.21921 + 0.1 ∙ 1.19491) ∙ cos(0.3) = 1.27892
y
3
= 1.21921 + 0.05 ∙ (1.19491 + 1.27892) = 1.34290
……………………………………………………………
и так далее.

Метод Рунге–Кутты 4–го порядка
По методу Рунге–Кутты 4–го порядка вычисление значения искомой функции в точке x
i+1
проводится в 5 этапов. Сначала прогнозируется поведение искомой функции в точках x
i
+ h/2 и x
i
+ h, а затем производится коррекция с усреднением результатов прогноза. В итоге рекуррентные формулы для этого метода имеют следующий вид:
0,1,2,...
i
)
K
K
2
K
2
(K
6
h
y
y
4
3
2
1
i
1
i








где K
1
= f(x
i
,y
i
),
K
2
= f(x
i
+h/2, y
i
+h∙K
1
/2)
K
3
= f(x
i
+h/2, y
i
+h∙K
2
/2)
K
4
= f(x
i
+h, y
i
+h∙K
3
)
Локальная погрешность метода Рунге–Кутты 4–го порядка e
4
= C∙h
5
, где C – некоторая постоянная, и пропорциональна пятой степени шага интегрирования: при уменьшении шага в 2 раза локальная погрешность уменьшится в 32 раз. Метод Рунге–Кутты 4–го порядка является самым точным из рассмотренных методов.

Пример решения ОДУ методом Рунге–Кутты 4–го порядка
Будем искать численное решение по рекуррентной формуле метода
Рунге–Кутты 4–го порядка для данного уравнения:
0,1,2,...
i
)
K
K
2
K
2
(K
0.016667
y
y
4
3
2
1
i
1
i








где K
1
= y
i
∙ cos(x
i
),
K
2
= (y
i
+ h∙K
1
/2) ∙ cos(x
i
+ h/2)
K
3
= (y
i
+ h∙K
2
/2) ∙ cos(x
i
+ h/2)
K
4
= (y
i
+ h∙K
3
) ∙ cos(x
i
+ h)
x
1
= 0.1
K
1
= 1∙cos(0) = 1
K
2
= (1 + 0.05 ∙ 1) ∙ cos(0.05) = 1.04869
K
3
= (1 + 0.05 ∙ 1.04869) ∙ cos(0.05) = 1.05112
K
4
= (1 + 0.1 ∙ 1.05112) ∙ cos(0.1) = 1.09959
y
1
= 1 + 0.016667∙ (1 + 2.09738 + 2.10224 + 1.09959) = 1.10499
……………………………………………………………
и так далее.

Метод двойного просчета. Правило Рунге.
Оценка погрешностей численного решения ОДУ по приведенным ранее формулам затруднительна, так как требует вычисления производных высших порядков неизвестной искомой функции y(x). На практике локальную погрешность рассмотренных методов оценивают путем двойного просчета: расчет приближенного решения y
i
выполняют дважды – с шагом h
(y
i
(h)
) и с шагом h/2 (y
i
(h/2)
). Погрешность более точного значения приближенно оценивают по правилу Рунге:
1
2
|
y
y
|
|
)
y(x
y
|
p
(h)
i
2)
(h/
i
i
2)
(h/
i




где y(x
i
) – неизвестное точное значение решения в точке x
i
,
p – порядок метода.
Метод двойного просчета может быть использован для автоматического выбора шага интегрирования, обеспечивающего заданную допустимую погрешность ε. В этом случае, начиная с некоторого начального шага h=h
0
, шаг уменьшают вдвое, продолжая его дробление до тех пор, пока не выполнится условие
ε
1
2
|
y
y
|
p
(h)
i
2)
(h/
i




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

Y(x0+h)=y0+h*Y’(x0)+h²/2!*Y’’(x0)+…
Метод\Характеристики
Ошибка ограничения
(порядок метода)
Порядок производной
(Класс точности)
Эйлера
C∙h
2
Первый (уменьшение шага в 10 раз повышает точность в 10 раз -10¹)
Прогноза-коррекции
C1∙h
3
Второй (уменьшение шага в 10 раз повышает точность в 100 раз -10²)
Рунге-Кутты 4 порядка
C2∙h
5
Четвертый (уменьшение шага в 10 раз повышает точность в 10 000 раз -10⁴ )

Схема алгоритма метода Эйлера

Схема алгоритма метода Рунге–Кутты 2 порядка

Схема алгоритма метода Рунге–Кутты 4 порядка

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

Решение ОДУ в MatLab

• Для решения дифференциальных уравнений и систем в Scilab предусмотрена функция:

[y,w,iw]=ode([type],y0,t0,t [,rtol [,atol]],f [,jac] [,w,iw]),

• для которой, обязательными входными параметрами являются:
y0 - вектор начальных условий;
t0 - начальная точка интервала интегрирования;
t - координаты узлов сетки, в которых происходит поиск решения;
f - внешняя функция, определяющая правую часть уравнения или системы уравнений;
y - вектор решений.

• Таким образом, для того чтобы решить обыкновенное дифференциальное уравнение необходимо вызвать функцию
y=ode(y0,t0,t,f).


Решение ОДУ с использованием функции
ode() в Scilab

Задача Коши для системы ОДУ 1–го порядка
Задача Коши может быть сформулирована и для системы ОДУ 1–го порядка. Она заключается для системы из n уравнений
)
y
,...
y
,
y
(x,
f
y
......
..........
..........
..........
)
y
,...
y
,
y
(x,
f
y
)
y
,...
y
,
y
(x,
f
y
n
2
1
n
'
n
n
2
1
2
'
2
n
2
1
1
'
1



в отыскании функций y
1
(x), y
2
(x), ….. y
n
(x), удовлетворяющих уравнениям системы и начальным условиям:
0
0
0
n
0
n
2
0
2
1
0
1
y
)
(x
y
;
y
)
(x
y
;
y
)
(x
y





Метод Эйлера для системы двух ОДУ
Рассмотренные методы численного решения ОДУ полностью применимы и к системам ОДУ 1–го порядка. Так, например, для системы двух уравнений
)
y
,
y
(x,
f
y
)
y
,
y
(x,
f
y
2
1
2
'
2
2
1
1
'
1


рекуррентные формулы метода Эйлера принимают следующий вид:
)
y
,
y
,
(x
f
h
y
y
)
y
,
y
,
(x
f
h
y
y
(i)
2
(i)
1
(i)
2
(i)
2
1)
(i
2
(i)
2
(i)
1
(i)
1
(i)
1
1)
(i
1








Аналогичным образом могут быть записаны и рекуррентные формулы для методов Рунге–Кутты 2–го и 4–го порядков.

Приведение ОДУ 2–го порядка к системе
ОДУ 1–го порядка
Обыкновенное дифференциальное уравнение n-го порядка приводится к системе ОДУ 1–го порядка путем замены производных от первой до
(n–1)-й на вспомогательные функции. В частности, уравнение 2–го порядка
y” = f(x,y,y’)
путем замены z = y’ приводится к системе уравнений 1-го порядка:
y’ = z
z’ = f(x,y,z)
Решив такую систему одним из численных методов, мы получим таблицы значений не только функции y(x), но и ее первой производной y'(x).

Решение системы ОДУ
в SciLab

Решение СOДУ в MatLab
Требуется решить
0
)
(
2
)
(
2
)
(





x
y
x
y
x
y
с начальными условиями: и
1
)
0
(


y
. Сведем заданное ОДУ к равноценной системе ОДУ первого порядка.
Для этого переобозначим функцию
)
(x
y
, как
)
(
1
x
y
, и введем функцию
)
(
)
(
1 2
x
y
x
y


. Запишем исходное уравнение в новых обозначениях:
))
(
)
(
(
2 2
1 2
x
y
x
y
y




(здесь учтено, что
)
(
)
(
2 2
x
y
x
y



). Дополним это уравнение тождеством
)
(
)
(
2 1
x
y
x
y


и получим нужную систему ОДУ. Эту систему следует дополнить начальными условиями:
.1
)
0
(
,2
)
0
(
2 1


y
y


𝑦
′′
𝑥 + 2𝑦

𝑥 + 2𝑦 𝑥 = 0


𝑦
′′
+ 2𝑦

+ 2𝑦 = 0
• y(0)=2 заменим (переобозначим) y на 𝑦
1
• 𝑦

0 = 1 тогда заменим 𝑦

на 𝑦
1

и соответственно на 𝑦
2
• Получим уравнение в новых обозначениях 𝑦
2

+ 2𝑦
1

+ 2𝑦
1
= 0
• Новая система уравнений

𝑦
2

= −2 𝑦
1
+ 𝑦
2

𝑦
1

= 𝑦
2
• С начальными условиями 𝑦
2 0 = 1

𝑦
1 0 = 2

Пример приведения уравнения второго порядка к системе двух уравнений первого порядка
𝑦
′′
𝑥 + 2𝑦

𝑥 + 2𝑦 𝑥 = 0
𝑦
′′
+ 2𝑦

+ 2𝑦 = 0
Начальные условия:
1)
y(0)=2 заменим (переобозначим) y на 𝑦
1 2) 𝑦

0 = 1 тогда заменим 𝑦

на 𝑦
1

и соответственно на
𝑦
2
Получим уравнение в новых обозначениях 𝑦
2

+ 2𝑦
1

+ 2𝑦
1
= 0
Новая система уравнений
𝑦
2

= −2 𝑦
1
+ 𝑦
2
𝑦
1

= 𝑦
2
С начальными условиями
𝑦
2 0 = 1
𝑦
1 0 = 2

Решение системы ДУ
1. Определение векторной функции

2. Решение ОДУ второго порядка


написать администратору сайта