Автор работы: Пользователь скрыл имя, 19 Февраля 2012 в 10:43, контрольная работа
Решить данные уравнения аналитически, а также с помощью двух численных методов: Эйлера и Рунге-Кутта. Сравнить результаты, полученные аналитическим и численными методами.
Тогда расчетную формулу Эйлера можно рассматривать как разложение в ряд Тейлора, учитывающее два члена.
Если учесть четыре члена ряда, то получим формулу Рунге-Кутта:
yi=yi-1+1/6 . (K1(i-1)+2 . K2(i-1)+2 . K3(i-1)+K4(i-1)),
где Kj(i-1) определяется из формул :
K1(i-1)=h . f(xi-1;yi-1);
K2(i-1)=h . f(xi-1+h/2;yi-1+K1(i-1)/2);
K3(i-1)=h . f(xi-1+h/2;yi-1+K2(i-1)/2) ;
K4(i-1)=h . f(xi-1+h;yi-1+K3(i-1)).
Для
решения обыкновенного
y(x0)=y0;
y1(x0)=y10;
y2(x0)=y20;
. . . . . . . .
yn-1(x0)=y0n-1.
Решение находится с помощью простого обобщения метода Рунге-Кутта для уравнения 1-го порядка. Но теперь на каждом шаге находится значение не одной y функции , а n функций y;y1;y2;...;yn-1.
Пусть дано дифференциальное уравнение второго порядка y”=f(x, y, y’) с начальными условиями y(x0)=y0 ; y;(x0)=z0.
Представим сначала его в виде системы уравнений
y’=z
z’=f(x, y,z).
с начальными условиями y(x0)=y0 ; z(x0)=z0
Так как получилось два уравнения, то теперь будут и две правые части:
f1(x, y, z) ;f2(x, y, z). На каждом шаге теперь будем пользоваться формулами :
yi=yi-1+1/6 . (K11(i-1)+2 . K12(i-1)+2 . K13(i-1)+K14(i-1));
zi=zi-1+1/6 . (K21(i-1)+2 . K22(i-1)+2 . K23(i-1)+K24(i-1)),
где коэффициенты K1j соответствуют функции y, а коэффициенты K2j – функции z. Они вычисляются по следующим формулам :
K11(i-1)=h . f1(xi-1;yi-1;zi-1);
K12(i-1)=h . f1(xi-1+h/2;yi-1+1/2 . K11(i-1);zi-1+1/2 . K21(i-1));
K21(i-1)=h . f2(xi-1;yi-1;zi-1);
K22(i-1)=h . f2(xi-1+h/2;yi-1+1/2 . K11(i-1);zi-1+1/2 . K21(i-1));
и так далее
для K13;
K14; K23;
K24.
2 Решение обыкновенного дифференциального уравнения первого порядка.
2.1
Аналитическое решение.
cosy-y’√x=0, [3.8;4.8], y0(3.8)=10.2
Данное уравнение представляет собой уравнение с разделяющимися переменными.
cosy-y’√x=0,
cosy-(dy∕dx)√x=0,/×(dx∕cosy)
dx∕√x-dy∕cosy=0,
dx/√x=dy/cosy,
∫dx/√x=∫dy/cosy.
Вычислим отдельно левую часть:
∫dx/√x=2√x
Вычислим левую часть:
∫dy/cosy=ln│tg(y∕2+π/4)│
В итоге у нас получилось:
ln│tg(y∕2+π/4)│= 2√x+ ln│c│
tg(y∕2+π/4)=ce2√x
y∕2+π/4=arctg (ce2√x)+πn,n€z.
y= -π/2 + arctg (ce2√x)+2 πn, n€z.
-π/2 + arctg (ce2√3,8)+2 πn=10,2,
arctg (ce2√3,8)=1/2(10,2+π/2-2π),при n=2,
ce2√3,8= tg(-0,76),
c=tg(-0,76)/e2√3,8.
Далее на отрезке[3.8;4.8]
вычислим приближенное значение y(x).
Результаты, сделанные в ручную, поместим
в таблицу 1.
2.2 Решение методом Эйлера.
С помощью метода Эйлера найти приближенно решение уравнения на cosy-y’√x=0, отрезке [3,8;4,8] с шагом h=0,1 при начальных условиях y0(3.8)=10.2
Начиная с начальной точки (x0;y0) и применяя расчетную формулу метода yi = yi-1 +h . f(xi-1;yi-1) , будем последовательно получать значения приближенного решения :
y1=y0+h . f(x0;y0)
y2=y1+h . f(x1;y1) и так далее.
Покажем на примере как применять данные формулы:
f(x0;y0)=f(3.8;10.2)=cos10.2∕√
y1= y0+h . f(x0;y0)
y1=10.2+0.1×0.5048=10.251
f(x1;y1)=f(3.9;10.251)=cos10.
y2=y1+h . f(x1;y1)
y2=10.251+0.1×0.4983=10.299 и так далее.
Расчетная таблица
xi | f(x;y) | yi |
3,8 | ____ | 10,2 |
3,9 | 0,4983 | 10,251 |
4,0 | 0,4919 | 10,299 |
4,1 | 0,4858 | 10,348 |
4,2 | 0,4799 | 10,397 |
4,3 | 0,4742 | 10,445 |
4,4 | 0,4688 | 10,492 |
4,5 | 0,4634 | 10,539 |
4,6 | 0,4582 | 10,585 |
4,7 | 0,4536 | 10,631 |
4,8 | 0,4498 | 10,676 |
Программа метода на языке Qbasic :
CLS
h = .1: y= 10.2: x = 3.8
PRINT #1, USING "x=#.# y=#.#####"; x; y
FOR x =3.8 TO 4.8 STEP .1
F=COS(y)/SQR(x)
Y= Y + H * F
PRINT #1, USING "x=#.# y=#.#####"; x; y
NEXT x
END
Результаты счета программы:
x=3.8 y=10.16336
x=3.9 y=10.25048
x=4.0 y=10.29865
x=4.1 y=10.34765
x=4.2 y=10.39658
x=4.3 y=10.44457
x=4.4 y=10.49199
x=4.5 y=10.53872
x=4.6 y=10.58542
x=4.7 y=10.63091
x=4.8 y=10.67583
Как видно результаты ручного счета почти полностью совпали с ответами, полученными в программе.
Блок-схема
метода Эйлера
начало
x0=3.8:h= .1:y0=10.2:x=x0:y=y0:х=х0
печать x, у
F=f(x,y)
печать x,y
x=x+h
Здесь f(x,y)
= cosy/√x
2.3 Решение методом Рунге-Кутта.
Решить дифференциальное уравнение cosy-y’√x=0, на отрезке [3.8;4.8], с начальными условиями y0(3.8)=10.2.
Начиная от точки (x0;y0), взятой из начального условия, подставляя координаты x0 и y0 вместо xi-1, yi-1 соответственно в формулы для получения коэффициентов Kj(i-1) , получаем их значения. Затем, подставляя найденные коэффициенты в формулу Рунге-Кутта для нахождения yi , найдем новое значение y1 , соответствующее значению аргумента x1=x0+h и так далее.
Расчетная таблица.
X0 | Y0 | K1 | K2 | K3 | K4 | Yi |
3,8 | 10,2 | 0,0505 | 0,0502 | 0,0501 | 0,0498 | 10,251 |
3,9 | 10,251 | 0,0498 | 0,0495 | 0,0495 | 0,0492 | 10,299 |
4,0 | 10,299 | 0,04919 | 0,0489 | 0,0488 | 0,0485 | 10,349 |
4,1 | 10,349 | 0,0485 | 0,0483 | 0,0482 | 0,0479 | 10,421 |
4,2 | 10,421 | 0,0479 | 0,0477 | 0,0477 | 0,0474 | 10,469 |
4,3 | 10,469 | 0,0474 | 0,0472 | 0,0471 | 0,0469 | 10,516 |
4,4 | 10,516 | 0,0469 | 0,0466 | 0,0466 | 0,0463 | 10,563 |
4,5 | 10,563 | 0,0464 | 0,0461 | 0,0460 | 0,0458 | 10,609 |
4,6 | 10,609 | 0,0458 | 0,0456 | 0,0455 | 0,0453 | 10,654 |
4,7 | 10,654 | 0,0453 | 0,0451 | 0,0450 | 0,0449 | 10,700 |
4,8 | 10,700 | 0,0448 | 0,0446 | 0,0445 | 0,0443 | 10,745 |
Информация о работе Численные решения обыкновенных дифференциальных уравнений