プロが教える店舗&オフィスのセキュリティ対策術

1.惑星は太陽を一つの焦点とする楕円軌道を描いて太陽のまわりをまわるというプログラムは
#include <stdio.h>
#include <math.h>
#define GM 4*M_PI*M_PI
#define M 1.0
#define dT 1.0/256
#define QX0 1.0
#define QY0 0.0
#define PX0 0.0
#define PY0 sqrt(GM)*M

int main(void)
{
FILE*fout;
double qx, qy;
double px, py;
double T;
double qxk1, qyk1, pxk1, pyk1;
double qxk2, qyk2, pxk2, pyk2;
double qxk3, qyk3, pxk3, pyk3;
double qxk4, qyk4, pxk4, pyk4;
double tqx, tqy, tpx, tpy;
double q, qi3;

fout = fopen("data16.dat","w");
qx=QX0;qy=QY0;px=PX0;py=PY0;
for(T=0.0;T<10.00;T+=dT)
{

tqx = qx; tqy = qy; tpx = px; tpy = py;
q = hypot( tqx, tqy ); qi3 = 1.0/(q*q*q);
qxk1 = tpx / M * dT;
qyk1 = tpy / M * dT;
pxk1 = -GM * M * tqx * qi3 * dT;
pyk1 = -GM * M * tqy * qi3 * dT;

tqx = qx+0.5*qxk1;
tqy = qy+0.5*qyk1;
tpx = px+0.5*pxk1;
tpy = py+0.5*pyk1;
q = hypot( tqx, tqy ); qi3 = 1.0/(q*q*q);
qxk2 = tpx / M * dT;
qyk2 = tpy / M * dT;
pxk2 = -GM * M * tqx * qi3 * dT;
pyk2 = -GM * M * tqy * qi3 * dT;

tqx = qx+0.5*qxk2;
tqy = qy+0.5*qyk2;
tpx = px+0.5*pxk2;
tpy = py+0.5*pyk2;
q = hypot( tqx, tqy );
qi3 = 1.0/(q*q*q);
qxk3 = tpx / M * dT;
qyk3 = tpy / M * dT;
pxk3 = -GM * M * tqx * qi3 * dT;
pyk3 = -GM * M * tqy * qi3 * dT;

tqx = qx+qxk3;
tqy = qy+qyk3;
tpx = px+pxk3;
tpy = py+pyk3;
q = hypot( tqx, tqy );
qi3 = 1.0/(q*q*q);
qxk4 = tpx / M * dT;
qyk4 = tpy / M * dT;
pxk4 = -GM * M * tqx * qi3 * dT;
pyk4 = -GM * M * tqy * qi3 * dT;

qx += (qxk1 + 2*qxk2 + 2*qxk3 + qxk4)*(1.0/6);
qy += (qyk1 + 2*qyk2 + 2*qyk3 + qyk4)*(1.0/6);
px += (pxk1 + 2*pxk2 + 2*pxk3 + pxk4)*(1.0/6);
py += (pyk1 + 2*pyk2 + 2*pyk3 + pyk4)*(1.0/6);
printf("qx=%f qy=%f px=%f py=%f \n",qx,qy,px,py);
fprintf(fout,"%f, %f\n",qx,qy);
}
fclose(fout);
return 0;
}
と作れたのですが、
2.面積速度は一定である。
3.惑星の公転周期Tの2乗と軌道長半径aの3乗の比T^2/a^3は太陽系のすべての惑星に共通で一定のあたいになる。
を数値的に示せ。
というプログラムが作れません。
教えてください。

A 回答 (1件)

>2.面積速度は一定である。


3.惑星の公転周期Tの2乗と軌道長半径aの3乗の比T^2/a^3は太陽系のすべての惑星に共通で一定のあたいになる。
を数値的に示せ。

自力でどこまで計算出来ていますか?

http://cms.phys.s.u-tokyo.ac.jp/~naoki/CIPINTRO/ …
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!