[求助]数组的用法,龙格_库塔解微分方程组
#include "stdio.h"
#include "math.h"
#define h 0.01
main()
{int i,j;
FILE *fp;
double t,x[3][100],y,k[3][4],d[3][100];
t=0;
x[1][0]=0;
x[2][0]=0;
x[3][0]=0;
fp=fopen("rkt.txt","w");
for(i=0;i<100;i++)
{
d[1][i]=x[2][i];
d[2][i]=x[3][i];
for(j=1;j<3;j++)
{
k[j][1]=d[j][i];
k[j][2]=d[j][i]+h/2*k[j][1];
k[j][3]=d[j][i]+h/2*k[j][2];
k[j][4]=d[j][i]+h*k[j][3];
x[j][i+1]=x[j][i]+h/6*(k[j][1]+2*k[j][2]+2*k[j][3]+k[j][4]);
}
k[3][1]=-800*x[1][i]-80*x[2][i]-24*x[3][i]+sin(t);
k[3][2]=-800*x[1][i]-80*x[2][i]-24*x[3][i]+sin(t+h/2)+h/2*k[3][1];
k[3][3]=-800*x[1][i]-80*x[2][i]-24*x[3][i]+sin(t+h/2)+h/2*k[3][2];
k[3][4]=-800*x[1][i]-80*x[2][i]-24*x[3][i]+sin(t+h)+h*k[3][3];
x[3][i+1]=x[3][i]+h/6*(k[3][1]+2*k[3][2]+2*k[3][3]+k[3][4]);
t=t+h;
// y=(double)800*x[1][i];
fprintf(fp,"%e ",800*x[1][i]);
}
fclose(fp);
}