FILE *out;
out=fopen("out5.dan","w");
x[0]=0; y[0]=1;
q[0]=f(x[0],y[0])*h;
do
{ x[k]=x[0]+k*h;
y[1]=y[0]+q[0];
if (k>1)
y[1]+=dq[0]*0.5;
if (k>2)
y[1]-=ddq[0]/12 ;
dy[0]=y[1]-y[0];
q[1]=f(x[1],y[1])*h;
dq[0]=q[1]-q[0];
if (k>1)
{ y[2]=y[1]+q[1]+0.5*dq[0];
if (k>2)
y[2]+=5*ddq[0]/12;
dy[1]=y[2]-y[1];
if (k<3)
{ q[2]=f(x[2],y[2])*h;
dq[1]=q[2]-q[1];
ddq[0]=dq[1]-dq[0];
}
}
k++;
}
while (k<4);
for(k=4;k<N;k++)
x[k]=x[0]+k*h;
for(k=2;k<N-1;k++)
{ q[k]=f(x[k],y[k])*h;
dq[k-1]=q[k]-q[k-1];
ddq[k-2]=dq[k-1]-dq[k-2];
y[k+1]=y[k]+q[k]+0.5*dq[k-1]+5*ddq[k-2]/12;
dy[k]=y[k+1]-y[k];
dyk[k-1]=(q[k]+q[k-1])/2;
}
for(k=0;k<N;k++)
fprintf(out,"x=%g y=%f \n",x[k],y[k]);
}
float f(float x,float y)
{ return (x*y/2);
}
Приведем результаты выполнения вышеприведенных алгоритмов
X |
Ф.Ад. с I разност. (нач.таб.-м.Эйлерас уравн.) |
Ф.Ад. с I разност. (нач.таб.-метод Крылова) |
Ф.Ад.соII разност. (нач.таб.-м.Эйлерас уравн.) |
Ф.Ад.сoII разност. (нач.таб.-метод Крылова) |
Метод Адамса-Крылова |
|
0 |
y=1.0000 |
y=1.0000 |
y=1.0000 |
y=1.0000 |
y=1.0000 |
y=1.0000 |
0.1 |
y=1.0526 |
y=1.0076 |
y=1.0526 |
y=1.0076 |
y=1.0025 |
y=1.0025 |
0.2 |
y=1.0605 |
y=1.0151 |
y=1.1108 |
y=1.0126 |
y=1.0101 |
y=1.0100 |
0.3 |
y=1.0738 |
y=1.0276 |
y=1.1321 |
y=1.0320 |
y=1.0227 |
y=1.0227 |
0.4 |
y=1.0927 |
y=1.0459 |
y=1.1498 |
y=1.0482 |
y=1.0408 |
y=1.0408 |
0.5 |
y=1.1174 |
y=1.0696 |
y=1.1759 |
y=1.0720 |
y=1.0644 |
y=1.0645 |
0.6 |
y=1.1484 |
y=1.0992 |
y=1.2087 |
y=1.1018 |
y=1.0940 |
y=1.0942 |
0.7 |
y=1.1861 |
y=1.1353 |
y=1.2485 |
y=1.1382 |
y=1.1301 |
y=1.1303 |
0.8 |
y=1.2311 |
y=1.1784 |
y=1.2962 |
y=1.1816 |
y=1.1733 |
y=1.1735 |
0.9 |
y=1.2842 |
y=1.2293 |
y=1.3524 |
y=1.2329 |
y=1.2242 |
y=1.2244 |
1 |
y=1.3463 |
y=1.2887 |
y=1.4181 |
y=1.2928 |
y=1.2837 |
y=1.2840 |
Отклоне- ния (max) |
1 (1 знак) |
5 (3 знак) |
2 (1 знак) |
1 (2 знак) |
3 (4 знак) |
Метод Эйлера с уравниванием
x=0 y=1.0000
x=0.1 y=1.0526
x=0.2 y=1.1108
Метод Крылова
x=0 y=1.0000
x=0.1 y=1.0076
x=0.2 y=1.0126
На основе полученных результатов можно сделать следующие умозаключения:
Наиболее точные результаты дает метод Адамса-Крылова.
Среди формул Адамса следует отметить формулу с первыми разностями, причем использование метода А.Н.Крылова для составления начала таблицы значительно приблизило результаты к точным данным (от выбора метода для составления начала таблицы зависит окончательный результат).
Вычисления с удвоенным шагом ухудшают результаты (максимальное отклонение – 1).
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.