1. Постановка задачи:
На интервале решить дифференциальное уравнение
с шагом методом Адамса четвертого порядка точности с прогнозом и коррекцией решения.
Определить на погрешности численной процедуры метода Адамса, для чего необходимо сравнить полученное решение с точным , , вычисленным аналитически. Уравнение второго порядка с правой частью имеет решение
где и - вещественная и мнимая части корней характеристического уравнения
Проанализировать влияние шага решения дифференциального уравнения на точность решения, для чего необходимо изменить параметр от до c шагом
T |
k |
|||||
0,5 |
0,0 |
50,0 |
[0; 12] |
0,05 |
0,09 |
0,01 |
3. Текст программы:
real eps,k,dt,y0(3),ak(3),a,b,y(3,450),f(450),y1(450),t1
real ee(450),em,es,ep,emo,epo,x(450)
integer i,l,kon,tp
character V(5)
data v/'1','2','3','4','5'/
t=0.5
eps=0.0
k=50.0
tp=12.
dt=0.05
hdt=0.01
y0(1)=0
y0(2)=0
y0(3)=0
ak(1)=1.0/(t*t)
ak(2)=2*eps/t
ak(3)=1
a=ak(2)/2
b=sqrt(abs(ak(2)*ak(2)-4*ak(1)))/2
open(unit=7,file='E')
write(7,*)' DT EMO ESO'
do 1 l=1,5
kon=tp/dt+1.1
t1=0
do 2 i=1,kon
f(i)=k*(b-exp(-a*t1)*(b*cos(b*t1)+a*sin(b*t1)))/(b*(b*b+a*a))
t1=t1+dt
2 x(i)=1
call n1ydua(2,3,ak,k,yo,dt,kon,x,y)
do 3 i=1,kon
3 y1(i)=y(1,i)
call n1yeee(f,y1,kon,ee,em,es,ep,emo,eso,epo)
open(unit=8,file=v(l))
write(8,*) ' T1 F(I) Y1(I) EE(I)'
t1=0
do 4 i=1,kon
write(8,100) t1,f(i),y1(i),ee(i)
4 t1=t1+dt
write(7,101) dt,emo,eso
1 dt=dt+hdt
100 format(2x,f8.4,3(f14.8))
101 format(2x,f7.3,2(f10.6))
END
4. Графики:
Рис. 1 Emo(DT), Eco(DT)
Рис.2y(t)
Рис. 3 Е(t) при DT=0.05
Рис. 4 Е(t) при DT=0.07
Рис. 5 Е(t) при DT=0.09
Вывод:
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.