情報通信工学科 2年 コンピュータ数値解析(学内専用) 中川朋子


二分法、ニュートン法
課題
1 x2−C2 sin( x )=0 の解のうち, 0より大きいものを
二分法、はさみうち法、または ニュートン法を使って
精度 10-6 で求めてみよう。 

1 は 学生番号 うしろから3桁め、C2 は 学生番号の 最後2桁
例:2012161 ならC1 は1、C2 は61

実習のヒント  こんな問題の時は....

まず f(x)= C1 x2−C2 sin(x) のグラフをなるべく正確に描き,
2,3箇所(x=π や π/2)の値を計算して書きこんでおきます。
解がどのあたりにあるか,だいたい見当をつけましょう。

グラフは手書きでも、gnuplotでも、Excelなどを使ってもいいです
Excelでグラフを書くときは

電卓で計算するときは、角度表示をradian に直すのを忘れないように!

関数の部分のプログラムも自作し、関数の1行目をコピーして
int main()の前にプロトタイプ宣言してください。

c言語で sin( )やcos( )やabs( )など数学関数を使う場合は<math.h>もincludeし、
コンパイルの時にはオプションとして -lmを付けて
[例] gcc kadai1.c -lm のようにすればOK。

xm を計算した直後に、 xm と f(xm) を出力しておくと、
解が収束していく様子がわかって実感がわきますよ!

二分法を使う時のHint

ニュートン法を使う時のHint

提出物の書き方

二分法、ニュートン法 採点基準
(1) グラフを描いて、計算の範囲の見当をつけた(1点)
(2) x=xaにおける式の値f(xa)とx=xbにおける式の値f(xb)の符号が逆(1点)
(3) その区間でグラフが連続で、解が1つだけあることを確かめた (1点)
(4) 初期値の設定が適切  (1点)
 二分法: f(xa)とf(xb)の符号が反対になるよう
 ニュートン法:初期値と解の間に「変曲点」「極大,極小値」をはさまない
(5) 計算方法が正しい (1点)
(6) 計算の終了条件が正しい (1点)
(7) 計算が収束している(50回も繰り返すようならおかしい) (1点)
(8) 問題に対する答えをちゃんと書いている「解はx=.....」  (1点)
(9) 解の精度が正しく書いてある  (1点)
(10) 式に代入して0になるか検算し、得られた解が適切か書いてある(1点)
(合計10点)
↑「プログラムが走ってなんか数字が出た」だけでは不十分なのが分かりますね