数値計算の講義資料並びにレポート提出状況など講義情報を掲載するページです。講義の予習,復習,課題作成に有効に活用してください。また,このページの内容が正式シラバスとなります。
次の3冊の教科書を使います。
[1] 大石進一:数値計算(裳華房) 1999 (正誤表(2002/2/3現在))
[2] 大石進一:Linux数値計算ツール(コロナ社) 2000
[3] 大石進一:MATLABによる数値計算(裳華房) 2001
最初は、教科書([1] 大石進一:数値計算(裳華房) 1999)を使用して、数値計算の理論について学びます。(第○章というのは教科書[1]のことです)
つぎの講義資料を読まれたい。(第一、二回の講義の資料)
提出先 oishi@oishi.info.waseda.ac.jp
1. aをIEEE754に従うdoubleとする。aの符号、指数部、仮数部をbitパターンとして書き出すCプログラムを作れ。
2.u,vをIEEE754の正規化2進浮動小数点数か0とする。このとき、|u| >= |v|で、オーバーフローとアンダーフローが起きないとして
x=fl(u+v)
w=fl(u-x)
y=fl(w+v)
と計算すると、厳密に
u+v=x+y
が成り立つことを示せ。ただし、fl(・)はかっこ内の演算を最近点での丸めの下での浮動小数点演算で行うものとする。
これは、xがu+vの浮動小数点演算による近似とするとき、yがその(厳密な意味での)誤差を表していることを示している。
1番はCだけで6種類ぐらいの異なった方針の解答があった。よい解答の例(pdf,188k)を一つ掲載する。また、共用体をつかったものも最もシンプルというわけではないがおもしろい。
2番はなかなか難題であったようなので、できるだけシンプルな解答例(k2.pdf,33k)を示す(5/27)。6/2の講義の際に解説する。
今週は区間解析の基礎について学ぶ。 4/21は、講義資料(lec3.pdf, 53k)にしたがって講義する。
演習問題 2 (提出期限 5/7日中)
区間演算を適当な言語の上でクラス(オブジェクト)として演算子多重定義せよ。尚、言語としてはC++, MATLAB(4,5端末室),Scilabなどが考えられる。
今週は連立一次方程式の数値解法について学ぶ。4/28は、講義資料(lec4.pdf)にしたがって講義する。
4/30は講義資料(lec5.pdf)にしたがって講義した。
演習問題3(出題 5/7 提出期限 5/14日中)
1. k,m,nを正の整数とする。m x k行列A, k x n 行列Bの積となるm x n行列ABを高速に計算するCプログラムを作れ。ただし、k,m,nとしては何でも選べるようにせよ。
2.部分ピボット付きガウスの消去法のCプログラムを作れ。ただし、1.で作成した高速化プログラムを組み込んで、高速化を達成せよ。
ヒント
A. いろいろなCPUにおいて行列の積を高速に計算するCプログラムを自動生成するCプログラムを作成するプロジェクトがある。PhiPackプロジェクトである。このプロジェクトはUCBerkeleyの電気電子情報学科のDemmel教授たちによるものである。そのプロジェクトを解説した論文(pdf)を紹介しよう。これには,いろいろなテクニックが紹介されているので、これを読んで高速化にチャレンジして欲しい。
B. James Demmel(U.C.Berkeley)の資料
(http://www.nersc.gov/~dhbailey/cs267/Lectures/Lect_17_2000.pdf)
を参考に2番は考えてほしい。
今週は固有値問題について学ぶ。5/12はつぎの講義資料(lec6.pdf,45k)に従って講義する。
5/14はつぎの講義資料(lec7.pdf, 75k)に従って講義する。
5/19はつぎの講義資料(lec8.pdf, 15k)に従って講義する。この中に演習問題IIIが提出されている。
5月27日と5月29日は大石が京都大学での集中講義のため荻田武史先生と中谷祐介先生に代講をお願いしている。
5月27日の荻田先生の講義ノート(lec9.pdf, 45k)
5/21は教科書4章を黒板で講義する。数学的な内容は黒板で講義するのが理解の速度と調和する。目標は第5章定理5.1の証明である。
教科書第5章について講義した。
演習問題 第5回
5.1 定理5.1を証明せよ。
5.2 ガウスの消去法のプログラムに区間クラスを演算子多重定義して、係数行列と右辺ベクトルが倍精度浮動小数点数の連立一次方程式の計算過程の誤差を厳密に考慮した区間ガウスの消去プログラムを作成せよ。このプログラムは真の解を含む区間ベクトルを出力すること。
5.3 前問で作成した区間ガウスの消去法のプログラムでは、成分がランダムな行列を扱うとき何行何列ぐらいの方程式まで扱うことができるか数値実験により観察せよ。
5.4 定理5.1に基づく係数行列と右辺ベクトルが倍精度浮動小数点数の連立一次方程式の解の精度保証プログラムを作成せよ。言語は、C、MATLAB,Scilab,SLABなどでよい。
5.5 前問で作成したプログラムでは、成分がランダムな行列を扱うとき何行何列ぐらいの方程式まで扱うことができるか数値実験により観察せよ。
ラグランジェ補間とニュートン補間について講義した。
C(及びC++)を用いる。FORTRANに言及することがある。Javaについても言及することがある。数値計算ツールMatlab,Scilab,Octaveなどのインタープリタ言語も用いる。
各週に課題が出題される。また,期末には試験を行う。課題の得点と試験の合計点が60点以上になれば合格。出席を取ることがあり、それも加点される。
レポート提出状況 htmファイル形式(○はレポート採点済み(提出済みと同じ(7/14時点))
修正しました。前回掲載したものは変換ミスがあったようです。今回は修正されていると思います。提出したのにこの表で提出済みになっていない場合には大変申し訳ありませんが、その旨を記してレポートを再送してください。期限内として採点します。
©大石進一
このページのURIはhttp://www.oishi.info.waseda.ac.jp/~oishi/lec2003/num.htm
最終更新:2003/7/14| トップページ