今回は万有引力の問題をfotranを用いて解きます(久しぶりの投稿のため短め)。
問題設定
座標\({\bf r}_0 = (x_0,y_0,z_0)\)、 \({\bf r}_1 = (x_1,y_1,z_1)\)にそれぞれ質量\(M,m\)の質点があるとき、両者に働く万有引力を求めよ。ただし、簡単のため万有引力定数\(G=1\)とする。
参考(大丈夫だと思うけど、、、):2質点間の引力の式
$$ F = G\frac{Mm}{|{\bf r}|^2} \hspace{4mm} ({\bf r} = {\bf r}_1 – {\bf r}_0)$$
解答
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
program gravitation implicit none !暗黙の型宣言 real :: m0,x0,y0,z0 !実数型宣言 real :: m1,x1,y1,z1 real :: f !-- r_0にいる質点の記述 --- m0 = 5.0 x0 = 1.0 y0 = 0.0 z0 = 0.0 !-- r_1にいる質点の記述 --- m1 = 1.0 x1 = 0.0 y1 = 0.0 z1 = 1.0 !-- 万有引力計算 --- f = (m0*m1)/((x1-x0)**2 + (y1-y0)**2 + (z1-z0)**2) write(*,*) f !出力 end program gravitation |
上のプログラムでは
$$\begin{align}
M&=5\\
m&=1\\
{\bf r}_0 &= (1,0,0)\\
{\bf r}_1 &= (0,0,1)
\end{align}$$
を設定しています。これをターミナルで実行すると、
1 2 3 |
$ gfortran gravitation.f90 $ ./a.out 2.50000000 |
と出力されました。
コメント