情報科学科34年の講義『数値計算』のページ
ごあいさつ
この講義は微積と線形代数とプログラミングの総復習が主な内容です.
微積分や函数論の続きから微分方程式論への橋渡しとなる, 数値解析の基礎を
習得するのを目標としつつ, 計算機が実数を取り扱う仕組みを
メモリーや CPU の中まで覗いて観察するようなマニアックな話題も
取り上げて, いろんな教養が身に付くように工夫されています.
計算機の基本ってやっぱり計算でしょ?僕は前の職場では“スピード狂”
という仇名を付けられていました. このごろはお金が無くて高い計算機は
買えませんが, 自費で部品を集めてきて並列計算機を作ったりするのを
趣味にしています. もう研究室はたたんじゃいましたが,今も自宅で
趣味として続けています.計算って面白いよ〜. 一緒に楽しみましょうね.
実習との関係
今年度は講義と並行して行われる『数値計算実習』は, 別の先生によって
独立に行われ,採点も独立です.実習では FORTRAN77 の
プログラミング練習をします.
講義の理解を助けるためのプログラム見本が,昨年僕がやった
実習資料として5階の計算機室
~kanenko/NumCal2010/Lesson? (?=[0-9,a-d])
に残っています.昨年課された毎回の課題の解答も置かれていますので,
本気で勉強したい人はそれを参考に是非自習してください.
レポート問題の多くは, 教科書の章末課題に含まれており,
サポートサイトにはその解答プログラムも置かれています.
成績評価
今年は講義の採点は期末試験で行います.試験は9月末の正規の時間に
行います.
そのうち試験勉強のための問題集をここに置きます.
教科書
諸般の事情でこの講義の担当が教科書の指定時期に
間に合わなかったので,強制ではありませんが,一昨年出版された
僕の本を指定しておきます.いいこと沢山書いてあって一生使えますので,
線形代数講義と同様,愛用してください.
サポートページにまだ載っていないミスプリを発見した人には
感謝状とチョコレートを差し上げます.
毎回の講義の概要
- 第1回:4月18日(月) 数値計算の常識
イントロで,桁落ちと情報落ちの話をした後,C 言語の復習と
IEEE754 の解説をやり, 最後に計算機イプシロンの可視化体験をやりました.
この日は実習担当者の準備が間に合わなかったので,僕が実習室で
解説しました.
num1.pdf
Lesson 1の講義のプレゼン資料
- 第2回:4月25日(月) 級数の和
コンピュータで級数の和を計算するにはどうするかを解説しました.
打ち切り誤差と丸め誤差の話をしました.
FORTRAN のイントロもやりました.
num2.pdf
Lesson 2の講義のプレゼン資料
- 第3回:5月9日(月) 数値微分
前回の補足をした後, 数値微分の解説に入り,
丸め誤差と打ち切り誤差の釣り合いの問題を解説しました.
num3.pdf
Lesson 3の講義のプレゼン資料
- 第4回:5月16日(月) 数値積分
Riemann 近似和,台形公式,Simpson の公式などを用いていろんな函数の
定積分を計算し,誤差を観察してみました.
num4.pdf
第4回の講義のプレゼン資料
- 第5回:5月23日(月) 反復法による方程式の解法
2分法やニュートン法を用いて,非線型方程式の近似解を求めました.
また, Richardson 加速法と Romberg 積分法の解説をしました.
num5.pdf
第5回の講義のプレゼン資料
- 第6回:5月30日(月) 行列の計算 - 1. ガウスの消去法
2次元配列を用いた行列の扱い方の基礎を解説し,
決定系の連立一次方程式を線型代数で学んだガウスの消去法を用いて解く
方法を学びました.
num6.pdf
第6回の講義のプレゼン資料
- 第7回:6月6日(月) 行列の計算 - 2. 反復法と固有値の計算
連立一次方程式の代表的な反復解法である Jacobi 法と Gauss-Seidel 法を学
び, 最後に固有値と固有ベクトルの初等的な計算法を紹介しました.
num7.pdf
第7回の講義のプレゼン資料
- 第8回:6月13日(月) 常微分方程式の初期値問題
常微分方程式の Euler 法や Runge-Kutta 法による解法と誤差評価を1階正規系,
について学び,
モデルとして力学系などの連立方程式や決定論的カオスのプログラム例
を味わいました.
num8.pdf
第8回の講義のプレゼン資料
- 第9回:6月20日(月) 複素数の計算と反復写像
FORTRAN, C による複素数の取り扱い方の解説をし,応用として複素力学系の
フラクタルの代表例を取り上げました.また標準で複素数型を取り扱える
C++ の入門的解説をしました.
リベカちゃんの質問への解答:cubic.cc を拡大するにつれて描画速度が
遅くなった主な理由は,フラクタル構造が顕著なところを拡大していったため,
ブラックホールに近づいて一旦遠くの方に飛んでしまってから,
時間をかけて戻ってくることが多くなったためと考えられます.
これを実証するには,
近似列 zn を打ち出してみるとよいでしょう.
num9.pdf
第9回の講義のプレゼン資料
- 第10回:6月27日(月) 偏微分方程式の初期値問題の差分解法
熱方程式と波動方程式という, 時間発展の代表的な方程式の差分解法を
学びました.
numa.pdf
第10回の講義のプレゼン資料
- 第11回:7月4日(月)
ポアソン方程式のスペクトル法・差分法・有限要素法による解法
時間を含まない偏微分方程式の代表的な解法を学びました.
numb.pdf
第11回の講義のプレゼン資料
- 第12回:7月11日(月) 多倍長演算と精度保証付き計算
多倍長演算のしくみの解説と gmp の紹介をしました.また CPU の丸めモード
の解説と精度保証計算の紹介をしました.
numc.pdf
第12回の講義のプレゼン資料
期末試験の予想問題集
基本的に,各回の末尾に載せた問題を集めたものですが,一部追加してあります.
また,収集の過程でもとの問題の間違いをいくつか見つけました. もとも
順次修正する予定ですが,取り敢えずはこちらを正本と考えてください.
試験の補助用のプログラミング課題
期末試験の問題
復習に利用してください.
期末試験の解答と講評
大変遅くなりました. お茶大生の名誉のために,
いつものようにお茶大構内にアクセス制限をかけています.
講義科目の紹介メニューに戻る.