09/06/30 22:30:42
#include <stdio.h>
#include <math.h>
double func(double x,double y)
{
return y/(2.0*x);
}
int euler(double x0,double y0,double xx,int num)
{
int i; double h,y1,k1,k2;
h=(xx-x0)/(double)num;
for(i=0;i<num;i++){
k1= h*func(x0,y0);
y1 =y0 + k1;
k2 = h*func(x0+h,y1);
y0= y0+(k1+k2)/2;
printf("%4.1f %9.6f %9.6f %9.6f\n",x0,y0,sqrt(x0),fabs(y0-sqrt(x0)));
}
return 0;
}
int main(void)
{
euler(1.0,1.0,2.0,10);
return 0;
}
このプログラムをどう変えればルンゲクッタ法のプログラムが出来ますか?
今週の金曜までにお願いします