Численное решение обыкновенных дифференциальных уравнений




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

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

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

Требуется найти функцию у = у(х), удовлетворяющую уравнению

(3)

и принимающую при х = х0 заданное значение у0.

(4)

При этом решение необходимо получить в интервале х0 ≤ х ≤ хк. Из теории дифференциальных уравнений известно, что решение у(х) задачи Коши (3), (4) существует, единственно и является гладкой функцией, если правая часть F(х, у) удовлетворяет некоторым условиям гладкости. Численное решение задачи Коши методом Рунге-Кутта 4-го порядка заключается в следующем. На заданном интервале [ х0, хк ] выбираются узловые точки. Значение решения в ну­левой точке известно у(х 0) = у0. В следующей точке у(х1) определяется по фор­муле

(5)

здесь

k0 = hF(х00); k1=hF(х0+h/2, у0+k0/ 2);

k2 = hF(х0 + h /2, у0+k1/ 2); к3 = hF(х0 +h, у0 + k 2); h - шаг сетки, (6)

т. е. данный вариант метода Рунге-Кутта требует на каждом шаге четырехкратного вычисления правой части уравнения (3). Этот алгоритм реализован в программе ode45. Кроме этой программы МАТLАВ располагает обширным набором аналогичных программ, позволяющих успешно решать обыкновенные дифференциальные уравнения.

Пример 5. Решить задачу Коши

на [0,1] при y(0)=1 (7)

Точное решение имеет вид

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

Function dydx = F(x,y)

dydx = zeros (1,1);

dydx( 1) = 2*(х^2+у(1));

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

Протокол программы.

>>[X Y]=ode45 (@ F, [0 1], [1]);

% Дескриптор @ обеспечивает связь с файлом - функцией правой части

% [0 1 ] - интервал на котором необходимо получить решение

% [1] - начальное значение решения

>>р1оt (Х,У);

>> % Построение графика численного решения задачи Коши (7)

>> hold on; gtext (' у(х) ')

% Команда позволяет с помощью мышки нанести на график надпись у(х)

>> [X Y]

>>% Последняя команда выводит таблицу численного решения задачи.

Результаты решения. График решения задачи Коши (7) показан на рис. 3. Численное решение представлено в таблице 4, где приведены только отдельные узловые точки. В программе ode45по умолчанию интервал разбивается на 40 точек с шагом h = 1/40 = 0.025.

Рис. 3 – График решения задачи Коши

Таблица 4

xi Метод Рунге-Кутта Точное решение
0.0 1.0 1.0
0.1 1.2221 1.2221
0.2 1.4977 1.4977
0.3 1.8432 1.8432
0.4 2.2783 2.2783
0.5 2.8274 2.8274
0.6 3.5202 3.5202
0.7 4.3928 4.3928
0.8 5.4895 5.4895
0.9 6.8645 6.8645
1.0 8.5836 8.5836

Как следует из таблицы 4 численное решение программой ode45явля­ется точным.

Варианты заданий. Построить график и вывести в виде таблицы решение задачи Коши на интервале [0; 1] методом Рунге-Кутта 4-го порядка. Данные взять из таблицы 5.

Таблица 5

№ п/п f (х,у) y0
1. 0.0
2. 0.1
3. е+3у 2.0
4. 0.3
5. 0.4
6. 1/(1 + у2)+ x2 0.0
7. 1/(1 + у2)+ху 0.1
8. cos у + xу 0.2
9. х2 соs у + 0.1 0.3
10. x 3 cos у + 0.1 0.4
11. cos(ху)- 0.5 0.5
12. e-ух-2 0.0
13. 0.5
14. e-xy+1 0.4
15. 0.3
16. 0.2
17. 0.1
18. 0.0
19. 0.1
20. 0.2
21. 0.3
22. 0.4
23. 0.5
24. 0.6
25. 0.7
26. 0.0
27. 0.1
28. 0.2
29. 0.3
30. 0.4


Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-01-11 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: