Решение задачи Коши для обыкновенных дифференциальных уравнений.
Дано:
(dy/dt) = sin(t)-u-cos(t); t принадлежит отрезку [0, ]; начальные данные:
y(1) = y0 = 0; точное решение: y(x) = -sin(t).
Постановка задачи:
1) Необходимо проверить, что заданная функция y(x) =-sin(t) является точным решение и удовлетворяет начальным данным (y(1) = u0 = 0).
2) Необходимо найти решение y(x) на отрезке [a, b] ([0, ]). По переменной x введем равномерную разностную сетку xi = a + i*h, I = 0. 1. 2. …..M, h = (b-a)/M – шаг сетки. Вместо точного решения y(x) отыщем приближенное решение yi, заданное в узлах разностной сетки xi. Для определения yi ,будем использовать конечно-разностные методы: метод Эйлера, модифицированный метод Эйлера (предиктор-корректор), метод Рунге-Кутты.
Решение:
1) Убедимся, что заданная функция u(t) =-sin(t) является точным решение и удовлетворяет начальным данным (y(1) = u0 = 0).
(du/dt) = sin(t)-u-cos(t); x принадлежит отрезку [0, ]; начальные данные: y(1) = u0 = 0.
Подставим u(t) =-sin(t) в du/dt = sin(t)-u-cos(t) , получим:
du/dt = sin(t)-(-sin(t)) -cos(t) , du/dt = -cos(t). Возьмем производную от функции точного решения, получим: (u(t))/ = -cos(t). Как мы видим, получается тождество:
-cos(t) = -cos(t) , а u(0) = 0, из этого следует, что заданная функция является точным решением и удовлетворяет начальным данным.
2)
Метод Эйлера
Построим разностную сетку xi = a + i*h, I = 0. 1. 2. …..M, h = (b-a)/M – шаг сетки.
Метод Эйлера является простейшим конечно-разностным методом, в котором уравнение заменяется разностной схемой: (yi+1 – yi)/h = f(xi, yi), i = 0, 1, 2,….M-1. Решение определяется по формуле:
yi+1 = yi + h*f(xi, yi), i = 0, 1, 2,…..M-1. (1)
Метод Эйлера имеет первый порядок аппроксимации. Реализация метода. Поскольку x0, y0, f(x0, y0) известны, применяя (1) последовательно, определяем все yi : y1 = y0 + h*f(x0, y0), y2 = y1 + h*f(x1, y1), y3 = y2 + h*f(x2, y2)……..
M=10
Номер шага i |
Значение аргумента xi |
Приближенное решение yi |
Точное решение y(xi) |
Погрешность |y(x i) - yi| |
0 |
0 |
0 |
0 |
0 |
1 |
0,15707963 |
-0,157079633 |
-0,15643447 |
0,000645168 |
2 |
0,31415927 |
-0,312257127 |
-0,30901699 |
0,003240132 |
3 |
0,4712389 |
-0,461964938 |
-0,4539905 |
0,007974438 |
4 |
0,62831853 |
-0,603071261 |
-0,58778525 |
0,015286009 |
5 |
0,78539816 |
-0,733010744 |
-0,70710678 |
0,025903963 |
6 |
0,9424778 |
-0,849942634 |
-0,80901699 |
0,040925639 |
7 |
1,09955743 |
-0,952936487 |
-0,89100652 |
0,061929963 |
8 |
1,25663706 |
-1,042186907 |
-0,95105652 |
0,091130391 |
9 |
1,41371669 |
-1,119259922 |
-0,98768834 |
0,131571581 |
10 |
1,57079633 |
-1,187377344 |
-1 |
0,187377344 |
M=20
Номер шага i |
Значение аргумента xi |
Приближенное решение yi |
Точное решение y(xi) |
Погрешность |y(x i) - yi| |
0 |
0 |
0 |
0 |
0 |
1 |
0,07854 |
-0,07854 |
-0,07846 |
8,0721E-05 |
2 |
0,15708 |
-0,15684 |
-0,15643 |
0,00040405 |
3 |
0,235619 |
-0,23442 |
-0,23345 |
0,00097595 |
4 |
0,314159 |
-0,31083 |
-0,30902 |
0,00180994 |
5 |
0,392699 |
-0,38561 |
-0,38268 |
0,00292742 |
6 |
0,471239 |
-0,45835 |
-0,45399 |
0,00435833 |
7 |
0,549779 |
-0,52864 |
-0,5225 |
0,00614205 |
8 |
0,628319 |
-0,59611 |
-0,58779 |
0,00832863 |
9 |
0,706858 |
-0,66043 |
-0,64945 |
0,0109803 |
10 |
0,785398 |
-0,72128 |
-0,70711 |
0,01417333 |
11 |
0,863938 |
-0,77841 |
-0,76041 |
0,01800023 |
12 |
0,942478 |
-0,83159 |
-0,80902 |
0,0225722 |
13 |
1,021018 |
-0,88066 |
-0,85264 |
0,02802207 |
14 |
1,099557 |
-0,92551 |
-0,89101 |
0,03450739 |
15 |
1,178097 |
-0,96609 |
-0,92388 |
0,04221385 |
16 |
1,256637 |
-1,00242 |
-0,95106 |
0,0513589 |
17 |
1,335177 |
-1,03457 |
-0,97237 |
0,06219538 |
18 |
1,413717 |
-1,0627 |
-0,98769 |
0,07501523 |
19 |
1,492257 |
-1,08707 |
-0,99692 |
0,09015282 |
20 |
1,570796 |
-1,10799 |
-1 |
0,10798817 |
M=40
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.