原子動力工学特論
レポート1
交通電子機械工学専攻
齋藤 泰治
目次
• ニュートン法について
ニュートン法
• 方程式f(x)=0の解を求める
• 処理手順
1. 初期値 x の決定
– x = x0 を決める
2. 接線と x 軸の交点の計算
– x = x0 における y = f(x) の接線を引き、今度はこ
の接線と y=0 (x軸)の交点を x1 とする
– すなわち、 xn+1 = xn - (f(x)/f ’(x)) を計算する
3. 2. を繰り返して値が収束したらそれを解とする
ニュートン法
初期値x=x0をとる
グラフに接線1を引く
接線1がX軸をきる点を次の点、x1とする
x≈xn
x=x1のところで次の接線2を引き
どうようにX軸をきる点をx2とする
x2 x1 x0
同じことをn回繰り返すと
真の値xに極めて近い値 を得る
問1 x  sin(x)
2
f ( x)  x  sin(x)
2
f ( x)  0
 1  sin(x)  1
f ( x)  0
を解けばよい
より、
 1  x, x  1
従って、解は
1  x  1
にある
x*x-sin(x)
3.5
3
2.5
2
1.5
1
0.5
0
-1.5
-1
-0.5
-0.5
0
0.5
1
1.5
2
2.5
プログラム実行結果1-1
x0=1.000000
i=1 x=1.000000 f(x)= 0.158529015192 df(x)=1.459699
i=2 x=0.891396 f(x)= 0.016637296200 df(x)=1.154467
i=3 x=0.876985 f(x)= 0.000288172633 df(x)=1.114499
i=4 x=0.876726 f(x)= 0.000000092913 df(x)=1.113783
i=5 x=0.876726 f(x)= 0.000000000000 df(x)=1.113783
ans=0.876726
プログラム実行結果1-2
x0=-1.000000
i=1 x=-1.000000 f(x)= 1.841470984808 df(x)=-2.540302
i=2 x=-0.275098 f(x)= 0.347319458830 df(x)=-1.512593
i=3 x=-0.045479 f(x)= 0.047531597880 df(x)=-1.089923
i=4 x=-0.001869 f(x)= 0.001872376843 df(x)=-1.003735
i=5 x=-0.000003 f(x)= 0.000003475719 df(x)=-1.000006
i=6 x=0.000000 f(x)= 0.000000000009 df(x)=-0.999999
ans=0.000000
問2
exp( x)  cos(x)
f ( x)  exp( x)  cos(x)
f ( x)  0
を解く
 1  cos(x)  1
また、x=0 で
exp(x)  1
従って、解は
かつ
x0
exp(x)  0
プログラム実行結果2-1,2
x0=0.000000
i=1 x=0.000000 f(x)= 0.000000000000 df(x)=-0.999999
ans=0.000000
x0=2.000000
i=1 x=2.000000 f(x)= 0.551482119784 df(x)=0.773962
i=2 x=1.287456 f(x)= -0.003592498639 df(x)=0.684155
i=3 x=1.292707 f(x)= 0.000007627617 df(x)=0.687055
i=4 x=1.292696 f(x)= 0.000000000037 df(x)=0.687049
ans=1.292696
プログラム実行結果2-3
x0=5.000000
i=1 x=5.000000 f(x)= -0.276924238464 df(x)=-0.965662
i=2 x=4.713229 f(x)= 0.008136103732 df(x)=-1.008975
i=3 x=4.721292 f(x)= 0.000000405684 df(x)=-1.008864
i=4 x=4.721293 f(x)= 0.000000000000 df(x)=-1.008864
ans=4.721293
Xが十分に大きくなれば、exp(-x)は限りなく0に近づくので
解は、
 1  2n 
 cos
  ( n  0,1,2....)
 2

(xが大きいとき)
問3
x  exp(2 x)
2
f ( x)  x  exp(2 x)
f ( x)  0
2
を解く
x  0において、 xの絶対値が大きくなれ ば、
 exp(2 x)が非常に早く  に収束し、
x  0において、 xが大きくなれば、
exp(2 x)は0に収束するので、 x 2により
 へ収束することが、直
感的にわかる。
従って、 f ( x)  0となるのは、
xが十分に
小さい、0付近であることが予想 される。
プログラム実行結果 3-1
x0=1.000000
i=1 x=1.000000 f(x)= 0.864664716763 df(x)=2.270671
i=2 x=0.619203 f(x)= 0.093566571545 df(x)=1.818098
i=3 x=0.567739 f(x)= 0.001059165386 df(x)=1.778015
i=4 x=0.567143 f(x)= 0.000000126972 df(x)=1.777590
i=5 x=0.567143 f(x)= 0.000000000000 df(x)=1.777590
ans=0.567143
プログラム実行結果 3-2
x0=1000.000000
i=1 x=1000.000000 f(x)=1000000.000000000000 df(x)=1999.999979
i=2 x=499.999995 f(x)=249999.994644895167 df(x)=999.999988
・
・
・
・
・
・
i=14 x=0.567143 f(x)= 0.000000107858 df(x)=1.777590
i=15 x=0.567143 f(x)= 0.000000000000 df(x)=1.777590
ans=0.567143
プログラム実行結果 3-3
x0=-20.000000
i=1 x=-20.000000 f(x)=-235385266837019584.000000000000
df(x)=470770063393609408.000000
i=2 x=-19.500000 f(x)=-86593313920699056.000000000000
df(x)=173186454825601568.000000
・
・
・
i=44 x=0.567144 f(x)= 0.000000393246 df(x)=1.777590
i=45 x=0.567143 f(x)= 0.000000000000 df(x)=1.777590
ans=0.567143
数値計算による解
問1 x  0 x  0.876726
問2 x  0, x  1.292696, x  4.721293
ただし、
xが十分に大きくなると
 1  2n 
cos
   n  0,1,2....
 2

で近似で
きる
問3 x  0.567143
ダウンロード

原子動力工学特論