#include #include #include #include int main(int argc,char **argv) { int i,n,nd; double theta,omega,domega,l,g; double dt,end,iv,lth; int sw=0; l=3.123; // シミュレーション対象パラメータ g=9.80; theta=90.0/180.0*M_PI; // θの初期値θ0 if(argc>1) { int id=atoi(argv[1]); l=3+(id/100)%10; theta=(id%10+80)/180.0*M_PI; printf("id=%d, l=%f, theta=%f(%f)\n",id,l,theta,theta/M_PI*180); } // /180*M_PIで度→ラジアン omega=0.0; // ωの初期値 dt=0.005; // 計算区分 end=10; // 終了時間 iv=0.1; // 表示間隔 for(i=2;in*19/20)||(lth*theta<0)) printf("time:%5.2lf[s] θ:%6.3lf[rad](%7.3lf[deg]) ω:%6.3lf[rad/s](%8.2lf[deg/s])\n", i*dt,theta,theta/M_PI*180,omega,omega/M_PI*180); } lth=theta; } return 0; }