TT-F-Learning-Fortran 計算物理学 試験問題 

2001年

計算物理学試験問題 2(1/Aug/01竹下)
この問題はメールで送る。以下に問題を11問送る、これに回答を各の下に書き足して返信せよ。
================================================================
(1) double x=12.428; と long y=39; float z; のとき,つぎの計算を行ないその結果をここに記せ。
(a) z=log(x*y)/(x*x*x)  (b)z= exp(-x/10.)*sin(x+y) (c)z=(y-x)*cos(x-y)

(2) つぎの無限和をとるプログラムを作り、ここに張り付け、その結果も書け。
   1/(1*sqrt(1))+1/(2*sqrt(2))+1/(3*sqrt(3))+...

(3)ls -lrt で得られる情報で ls-l とことなる点について述べよ。

(4)つぎの関数を定積分せよ、ただしx=2.7から4.3まで、で小数点しも3桁以上の精度を確保すること。
   このためにしたことも同時に書け。
    (sqrt(x+2.1))*exp(-1.3*x)+1.67/x-2.46/(x*x)

(5)空気抵抗が速度に比例するとき、上向きに 21.9m/sで投げ上げるとき、地上に戻ってくる速さを計算せよ。
  重力加速度を 9.8m/s/sとせよ。空気抵抗係数は各自で決めよ。

(6)つぎの18この数値の平均と標準偏差を計算せよ。
   331.24248,493.35677,936.3795,1362.34235,830.1903,867.24,1044.392,562.732,488.857,428.77,336.78,555.302,684.361,455.987,345.0981,120.435,121.1980,539.674

(7)xを0.0から1.0までの一様乱数として、(x**1.5)tan(3.14159*x/2)の頻度分布のひすとグラムをつくり、ここへ描け。 ここで(x**1.5)はxの1.5乗を表す。

(8)一次元ランダムウオーくで乱数が0.5より大きいとき右へ動くアルゴリズムで、576歩めの座標を求めよ。
   ただし乱数の初期値を23とし、繰り返しを32768*32767*2とせよ。

(9)つぎの数値を大きい順に並べ、17番めをここに記せ。
34.3301,66.7384,59.8357,28.6694,112.412,36.7264,58.424,117.314,43.445,59.412,73.456,49.535,23.4462,88.3005,59.3434,58.49547,92.9461,47.3851,34.33.3566,64.9869,78.3794,92.3055,57.34.1624,67.4878,77.84756,36.64875,86.0989,46.387167,73.980,34,0847,59.0367,67.0734

(10)y=2.78sqrt(1.3x)*exp(-0.438x)のグラフをpostscript形式にして添付せよ。

(11)つぎのプログラムの誤りを指摘し正せ。
#include <math.h>
main()
{
   int n,nmax;
   double x,y,pai2,dx;
   pai2=3.14159*2.0;
   x=0.0;
   y=0.0
   nmax=20;
    printf(" input number of division : ");
    scanf("%f",nmax);
   dx=pai2/(double (nmax)) ;
       printf("   n :        x             y  \n");
   for(n=0;n<nmax;n++);
   {
     {  x += dx ;  /*   this means x = x + dx  */
       y += fun(x)*dx;  /* this means y=y+fun(x)*dx */
       printf("  %3d :   %d     %d \n",n+1,x,y);
   }}
}
fun(x)
 int x ;
{
   return( x*x*x )

}}
=======================================以上


計算物理学試験問題 (31/july/01竹下) この問題はメールで送る。以下に問題を11問送る、これに回答を各の下に書き足して返信せよ。
 (1) int x=17; と float y=23.1373; float z; のときつぎの計算を行ないその結果をここに記せ。
 (a) z=x*y/(x**2) (b)z= exp(-y)*tan(x*y) (c)z=(x+x)* log(y+x)

(2) つぎの無限和をとるプログラムを作り、ここに張り付け、その結果も書け。 1/sqrt(1)+1/sqrt(2)+1/sqrt(3)+...

(3)ls -l で得られる情報について述べよ。

 (4)つぎの関数を定積分せよ、ただしx=1.2から8.9まで。 (sqrt(x*x+4.5))*exp(-2.3*x)

(5)単振動する物体の運動を記述するプログラムをここへ書け。物体の位置を表す変数をx時刻を表す変数をtとすること。

 (6)つぎの10この数値の平均と標準偏差を計算せよ。 200.68258,900.20677,1022.4895,7032.4225,944.0103,1360.01,1601.213,345.962,290.337,45.96

(7)xを0.0から1.0までの一様乱数として、sin(6.2831*x)の頻度分布のひすとグラムをつくり、ここへ描け。

 (8)一次元ランダムウオーくで乱数が0.5以上のとき左へ動くとして、1789歩めの座標を求めよ。 ただし乱数の初期値を17とし、繰り返しを32768*32767*2とせよ。

(9)つぎの数値を大きい順に並べ、13番めをここに記せ。 80.4201,15.6684,40.0957,12.9794,108.912,21.8264,51.294,83.914,61.245,29.612,63.756,52.435,49.2462,97.2805,29.2534,78.36547,40.2761,86.2351,28.3566,35.2469,81.7794,91.9055,53.1624,65.7538,34.8256,26.6675,85.0989,45.7167,91.980

(10)つぎのプログラムの誤りを指摘し正せ。 #include main() { float x; printf(" input a value : "); scanf("%d",x); if(x==0.0) { printf(" your value is equal 0 %f \n",x); if(x>0.0){ printf(" your value is greater than 0 %f \n",x);}} else { printf(" your value is smaller than 0 %f \n",x);}

(11)y=5cos(x)*exp(-0.5x)のグラフをpostscript形式にして添付せよ。


Back to T.Takeshita's page here.