演習E 07 | 数値計算法☆演習(2010年度)

Time-stamp: "2010-06-11 Fri 11:06 JST hig"

課題(必須)

以下2つの課題がすべてできたら教員またはTAをよんでね.

  • [E071] f(x)=x-2\cos(x)=00<x<2を満たす解を, 2分法で誤差が10-14以内で求めるプログラムを作成しよう. 次のような出力をするようにしよう.
    Q:¥nc¥>e071
    #a                 b                  |a-b|
    0.0000000000000000 2.0000000000000000 2.00000e+00
    1.0000000000000000 2.0000000000000000 1.00000e+00
    1.0000000000000000 1.5000000000000000 5.00000e-01
    1.0000000000000000 1.2500000000000000 2.50000e-01
    1.0000000000000000 1.1250000000000000 1.25000e-01
    1.0000000000000000 1.0625000000000000 6.25000e-02
    1.0000000000000000 1.0312500000000000 3.12500e-02
    1.0156250000000000 1.0312500000000000 1.56250e-02
    1.0234375000000000 1.0312500000000000 7.81250e-03
    1.0273437500000000 1.0312500000000000 3.90625e-03
    1.0292968750000000 1.0312500000000000 1.95312e-03
    1.0292968750000000 1.0302734375000000 9.76562e-04
    1.0297851562500000 1.0302734375000000 4.88281e-04
    1.0297851562500000 1.0300292968750000 2.44141e-04
    1.0297851562500000 1.0299072265625000 1.22070e-04
    1.0298461914062500 1.0299072265625000 6.10352e-05
    1.0298461914062500 1.0298767089843750 3.05176e-05
    1.0298614501953125 1.0298767089843750 1.52588e-05
    1.0298614501953125 1.0298690795898438 7.62939e-06
    1.0298652648925781 1.0298690795898438 3.81470e-06
    1.0298652648925781 1.0298671722412109 1.90735e-06
    1.0298662185668945 1.0298671722412109 9.53674e-07
    1.0298662185668945 1.0298666954040527 4.76837e-07
    1.0298664569854736 1.0298666954040527 2.38419e-07
    1.0298664569854736 1.0298665761947632 1.19209e-07
    1.0298665165901184 1.0298665761947632 5.96046e-08
    1.0298665165901184 1.0298665463924408 2.98023e-08
    1.0298665165901184 1.0298665314912796 1.49012e-08
    1.0298665240406990 1.0298665314912796 7.45058e-09
    1.0298665277659893 1.0298665314912796 3.72529e-09
    1.0298665277659893 1.0298665296286345 1.86265e-09
    1.0298665286973119 1.0298665296286345 9.31323e-10
    1.0298665291629732 1.0298665296286345 4.65661e-10
    1.0298665291629732 1.0298665293958038 2.32831e-10
    1.0298665292793885 1.0298665293958038 1.16415e-10
    1.0298665292793885 1.0298665293375961 5.82077e-11
    1.0298665293084923 1.0298665293375961 2.91038e-11
    1.0298665293084923 1.0298665293230442 1.45519e-11
    1.0298665293157683 1.0298665293230442 7.27596e-12
    1.0298665293194063 1.0298665293230442 3.63798e-12
    1.0298665293212252 1.0298665293230442 1.81899e-12
    1.0298665293221347 1.0298665293230442 9.09495e-13
    1.0298665293221347 1.0298665293225895 4.54747e-13
    1.0298665293221347 1.0298665293223621 2.27374e-13
    1.0298665293222484 1.0298665293223621 1.13687e-13
    1.0298665293222484 1.0298665293223053 5.68434e-14
    1.0298665293222484 1.0298665293222768 2.84217e-14
    1.0298665293222484 1.0298665293222626 1.42109e-14
    1.0298665293222555 1.0298665293222626 7.10543e-15
    x=1.0298665293222590
    
    今は, 解が1の近くにあることがあらかじめわかっているので, 誤差が10-14以内, とリクエストできた. もし, 解が1.029×1020くらいだったら, double を使って, 誤差を10-14以内にすることはできない(なぜ?) 解の大きさがあらかじめわかっていないときは, 相対誤差 |a-b|/((a+b)/2) の大きさで収束を決定するほうがいい.
  • [E072] f(x)=(x-2)x(x+2)=0の根を2分法で求めることを考える. 初期値を(a_0,b_0)=(-14,16)としたとき, どの根が計算されるか, プログラムで試さず, 紙と鉛筆で決定して理由とともに答えよう.

発展問題

余裕のある人だけやってね. 松木平先生の第8回課題を改題して使用させていただいています.

数値計算法☆演習の課題

このサイトのコンテンツ

QRcode to hig3.net

http://hig3.net