連立1次方程式(simultaneous linear equation)の解を ガウスの消去法(Gaussian elimination)によって 数値的に精度よく求めよう.
ガウスの消去法の基本プログラム gauss.c に対して, 以下の作業に取り組め.
作業:
ガウスの消去法は,代数的には厳密解を常に算出できるハズである. しかし,数値的には充分な精度の近似解を得られない場合もある. 要するに,この実験では,数値計算における誤差の伝搬の影響を実感せよ.
基本プログラム(DL):
参考資料: ガウスの消去法
基本プログラム gauss.c を元にして, ピボット選択関数 pivot(), スケーリング関数 scaleRow() , 等を適切に実装し, 解析精度を改良せよ.
「動作テスト用問題(3) および (4)」が これらの処理によって単精度でも成功となる ことを確認すること. なお,それぞれの問題に対して, 次の計算方法の組み合わせについて実験し, 「成功/不正確/不可能」を評価すること:
さらに,基本プログラムの解析失敗と改良版の解析成功について,原因を考察せよ.
また,余裕のある人は,計算量(乗除算の回数)を計測したり,計算量の削減について試してみては?