ルンゲ=クッタ を用いて自由落下のプログラムを作成したが、線が3本横一直線に表示されうまくいかない
#include<stdio.h> double runge_kutta(double,double); double start = 0.0; double end = 5.0; double step = 0.02 ; double g = 9.8; int main(void) { FILE *gp; double k1,k2,k3,k4; double t,y=0.0,x; gp = popen("gnuplot -persist","w"); for(t=start;t<=end;t++){ k1=step*runge_kutta(t,y); k2=step*runge_kutta(t+step/2.0,y+k1/2.0); k3=step*runge_kutta(t+step/2.0,y+k2/2.0 ); k4=step*runge_kutta(t+step,y+k3); y += (k1+2.0*k2+2.0*k3+k4)/6.0; x = g*t; fprintf(gp, "plot %f,%f,%f\n",t,y,x); fflush(gp); } fprintf(gp, "exit\n"); pclose(gp); return 0; } double runge_kutta(double x,double y) { return g*x; }
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。