Задача решения обыкновенного дифференциального уравнения (в дальнейшем – ОДУ) численными методами широко встречается в инженерной практике. Обычно их решают с применением пакетов прикладных математических программ. Но, чтобы применять такие программы, необходимо изучить суть метода, научиться реализовывать его на языках программирования, знать недостатки, достоинства и границы применимости. При решении задач численными методами важно получить достаточно точные численные значения, а также постараться выявить качественное поведение решения. Изучение данного вопроса отражает идеи системно-деятельностного подхода в освоении курса высшей математики. Содержание раздела способствует развитию метода математического моделирования. Наряду с математическими знаниями и умениями происходит формирование и развитие методологических знаний и умений (метод системного анализа, метод математического моделирования с опорой на системный анализ, метод синтеза). В содержании именно этой дисциплины находит отражение прикладная направленность математики. Студент осознает практическую важность необходимости проведения численных экспериментов. Понимание важности умения применять изученные методы решения задач в производственной практике и в будущей профессиональной деятельности повышает мотивацию студентов.
Тема «Решение задачи Коши для обыкновенных дифференциальных уравнений методом Эйлера» может быть предложена студентам для внеаудиторного изучения. Такая самостоятельная работа студентов предполагает обязательный контроль качества приобретенных знаний, умений и навыков [1].
Перед изучением данного вопроса преподаватель организует подготовительную работу аудиторного характера по формированию у студента соответствующего понятийного аппарата. К основным понятиям относятся: задача Коши, теорема Коши, сеточная функция, узлы сетки, равномерная сетка, неравномерная сетка, правые, левые и центральные разности. Теоретический материал, примеры решения задач, задачи для самостоятельного решения преподаватель может разместить на своем сайте, персональной странице официального сайта вуза или воспользоваться средствами любой современной виртуальной обучающей среды (например, Moodle). Контроль качества освоения темы следует провести во время аудиторной работы со студентами.
Метод Эйлера – один из самых простых численных методов решения задачи Коши для ОДУ:
. (1)
Перечислим кратко основные сведения, касающиеся истории данной проблемы. В курсе «Интегральное исчисление» (1768) Эйлер изложил идеи получения высших производных из данного уравнения прямым дифференцированием, а также способы вычисления высших производных косвенным способом. Метод Адамса был представлен в 1883 г. в книге Башфорта и Адамса, излагающей теорию капиллярных сил. В конце XIX в. была опубликована работа Рунге, опиравшаяся на идеи Эйлера. Спустя несколько лет были опубликованы труды Кутта. Сейчас методы Рунге – Кутта и Адамса воспринимаются как равноправно сосуществующие. При изучении данного вопроса традиционно рассматривают методы в следующей последовательности: метод Эйлера и его модификации, методы Рунге – Кутта, методы Адамса [2].
Будем считать для определенности, что решение задачи (1) нужно получить для значений 0. Рассмотрим уравнение (1) в окрестностях узлов = (ᵢ=0, 1, …) и заменим производную правой разностью = , значения функции = в узлах заменим значениями сеточной функции :
≈ . (2)
При такой замене допускается погрешность О( ), поэтому полученная аппроксимация дифференциального уравнения имеет первый порядок.
Если считать, что все узлы равноотстоящие, то есть = = const, то из равенства (2) получим:
≈ + ∙ , ᵢ=0, 1, … . (3)
Построенный алгоритм вычисления значения сеточной функции в любом узле по значению в предыдущем узле называется методом Эйлера. Поскольку для вычисления последующего значения функции требуется только предыдущее значение , то метод Эйлера относится к группе одношаговых методов.
Графическое представление алгоритма решения задачи Коши методом Эйлера представлено в виде структурограммы (диаграммы Насси – Шнайдермана) (табл. 1) [3].
Таблица 1
Ввод , , h, n |
|
= 0, = 0 |
|
для ᵢ от 1 |
|
|
= +h∙f( ) |
+h |
|
Вывод |
|
до n |
Задаются начальные значения = 0, = 0, а также величина шага h и количество расчетных точек n. Решение задачи получается в узлах + h, + 2h, …, + n ∙ h. Результаты выводятся на каждом шаге. Найденные значения функции можно также оформить в виде массива значений , , …, . Полученные выражения запишем в виде табл. 2 (табл. 2).
Таблица 2
Выражение для вычисления |
|
+ ∙ |
|
+ ∙ |
|
… |
………………………. |
+ ∙ |
Указанный алгоритм работает и на отрезке [ ; ] при начальном условии = , .
Пример. Решить дифференциальное уравнение при условии =1. Определить (0, 5).
1-й способ. Применим к линейному уравнению метод вариации постоянной.
Запишем уравнение в виде - = .
1) Решим соответствующее однородное уравнение = 0. Получим , , = .
2) Будем искать решение исходного уравнения в виде = , где – неизвестная функция независимой переменной . Тогда ′ = . и обращают исходное уравнение в равенство.
= + .
.
.
Интегрируем методом по частям, получим = - ( + 1) + .
Найдем общее решение = – – 1. Применим начальное условие = 1, получим = 2, тогда = – – 1. В точке = 0,5 получим 1,7974.
Ответ: = – – 1; 1,7974.
2-й способ. В уравнении – = будем искать решение в виде произведения двух функций = , где – две неизвестные функции (метод Бернулли). Выполним замену, получим уравнение:
Сгруппируем слагаемые:
(4)
Найдем такую функцию , чтобы выполнялось равенство .
= Для последнего уравнения найдем какое-либо частное решение =
Найденную функцию подставим в равенство (4), учитывая, что .
Получим , , . Интегрируем, имеем:
Так как = , то = – – 1. Также применим начальное условие = 1, получим = 2, тогда = – 1. Аналогично, в точке = 0,5 1,7974.
Задача 1. Методом Эйлера найти значения функции , определяемой уравнением , при начальном условии = 1, полагая = 0,1. Вычислить .
Решение:
Значения аргументов = 0,0, = 0,1, = 0,2, …, 0,5.
Подробные расчеты для вычисления первых трех значений функции представлены в табл. 3.
Таблица 3
Выражение для вычисления |
Вычисления |
||
+ ∙ |
1,0+0,1∙(0,0+1,0) |
|
|
+ ∙ |
1,1+0,1∙(0,1+1,1) |
|
|
+ ∙ |
1,22+0,1∙(0,2+1,) |
|
|
|
|
Результаты всех вычислений внесем в табл. 4.
Таблица 4
ᵢ |
0 |
1 |
2 |
3 |
4 |
5 |
0,0 |
0,1 |
0,2 |
0,3 |
0,4 |
0,5 |
|
1,00 |
1,10 |
1,22 |
1,36 |
1,52 |
1,71 |
Ответ: 1,71.
Задачи для самостоятельного решения (задачи 1–3) студентам следует выполнить как аналитически, определив вид ОДУ первого порядка и выбрав соответствующий способ решения, так и методом Эйлера, разработав программу на каком-либо из языков программирования.
Задачи 2–4
Методом Эйлера найти первые четыре значения функции , определяемой дифференциальным уравнением:
2) = , при начальном условии = 1 с шагом = 0,1.
3) = , при начальном условии = 4 с шагом = 0,1.
4) = + , при начальном условии = 0 с шагом = 0,1 [4, 5].
Чтобы мотивировать студента для дальнейшей работы с численными методами решения уравнений, а именно изучения более точных методов, можно предложить для решения задачи 5–6.
Задача 5. Решить уравнения 2–4 аналитически, составить таблицу значений функции, определенной аналитическими методами, в точках , где i = 1, …, 10.
Задача 6. Решить уравнения 2–4 на отрезке [0; 1] методом Эйлера с шагом = 0,1. Оценить погрешность численного решения.
Особый интерес представляют задачи прикладного характера.
Задача 7. Количество вещества , участвующего в некоторой химической реакции, определяется уравнением . Найти количество вещества при = 10 с, если в начальный момент времени оно равно 0,4 моль. Решение провести численным методом. Сравнить результат с точным аналитическим решением [6].
Задача 8. Полный магнитный поток Ф катушки, равномерно намотанной на сердечник прямоугольного сечения, определяется уравнением = . Определить Ф при следующих данных: = 1 A,