数学科23年『数理逍遥7』のページ
【プロローグ】
昔の数学科には応用数学の講座が有ったのですが,情報科学科の設立時に
割譲されました.そのとき小山敏子先生と竹尾富貴子先生が情報科学科に
移籍され,情報科学科における数学教育の礎を築かれました.
僕は小山先生が定年で去られた後にやってきました.専門は超函数と
偏微分方程式でしたが,小山先生がおやりになっていた符号理論の伝統有る
講義を続けるため,勉強を始めました.途中で暗号のお話も取り入れ,
そのうち岡本龍明先生と三浦晋示先生というすばらしい専門家に親しく学ぶ
機会も得て,次第に充実した講義ができるようになり,教科書の執筆も順調に
進むところまで来ました.ところが,このところ肝心の聴衆が減り始め,講義が
終了するころには1人残るかどうかという有り様になってしまいました.
そこで,数学科の先生にお願いして,数学科から聴衆を集めるため,
数理逍遥のコマを使わせて頂くことにし,昨年第1回目の講義をし,
最後まで30名近くの聴衆を集めることができ,大変幸せでした.
この講義は2・3年生共通なので,今年の3年生は2年で昨年の暗号の
話を聞いた人も多いでしょうから,今年は,別の話をすることに
します.
この講義タイトルの趣旨として,応用数学の手解きを選ぶのは当然ですが,
今年は数値計算をテーマに取り上げ,純粋数学と応用数学の違い,数学の
世の中での使われ方を昨年とは違った面から紹介したいと思います.
よろしくおつき合いください.
【講義内容】
今年は,数値計算をテーマに取り上げ,純粋数学に慣れた数学科の
学生には,有る意味で盲点となっている知識を
解説します.数学科の学生の皆さんの多くは,就職したら
数学を応用する立場になるでしょうから,世の中で数学がどのように使われて
いるのかを知ることは,将来への展望を持つ助けとなるでしょう.
講義では,実例を交えながら,分かりやすい解説を心がけます.
数値計算は,文字通り,応用上必要となる数学の計算を数値的に行う
もので,コンピュータの発展とともにますます重要な技術となって
きたものです.数値計算を通して,
コンピュータと純粋数学の違いを理解することも,また,応用数学への
重要な一歩です.数学科の先生にしかられないよう,コンピュータの
解説は,理論の理解に必要な最小限に止め,コンピュータが面白いよという
宣伝はしませんが,興味の有る人には,情報科学科の1年生に指導している,
Cygwin (買ったコンピュータの有効利用法) の講習会にお誘いします.
【成績評価】
レポートで成績を付けます.数学科の先生に教わった基準で,『熱意が感じら
れるレポートにAを付ける』方針でゆきます.補助として毎回出席替わりに
講義の感想をメールで送ってもらいます.
★ レポート問題は, 毎回の講義で出す課題から適当に選択してください.
提出期限は大体8月末の予定です.
【実際の講義概要と予定】
講義の進行とともにここに書き込んで行きます. 資料を閲覧するには
User ID と Password が必要です. これらは講義時にお知らせします.
- 4月17日(火):第1回 コンピュータと計算
コンピュータはどうやって計算をしているのでしょう?
その計算は数学者がやる計算とどこが違うのでしょう?
第1回はコンピュータシステム序論の復習を兼ねて,計算機と
純粋数学の違いについて論じます.
num1.pdf第1回講義のプレゼンの pdf ファイル.
adobe reader が必要ですが, 今時のコンピュータなら自動で立ち上がる
でしょう.
chap0.pdfこの講義のためのコンピュータに関する
知識のまとめ
chap1.pdf第1回講義の詳しいブリント
以下は第1回講義のための参考プログラムです. 詳細は上記のプリント
chap1.pdf の章末問題を見てください.
プログラム見本
rep1-1.c
rep1-3.c
rep1-4.c
rep1-4.f
- 4月24日(火):第2回 級数の和
級数の和をコンピュータで計算させることをテーマに, プログラミングの
概念を学習しました.
第2回講義のプログラム例
num2.pdf第2回講義のプレゼンの pdf ファイル.
プログラム見本
num2-1.p
num2-1.c
num2-1.f
num2-2.c
num2-3.c
num2-4.c
num2-2.f
chap2.pdf第2回講義の詳しいブリント
- 5月1日(火):番外編 Cygwin の講習会
Cygwin のインストールと簡単な使い方の講習をやりました.
番外ですが, 来た人のために出席メールを受け付けました.
- 5月8日(火):第3回 数値微分法と丸め誤差
sin x のプログラムを動かして, 打ち切り誤差と丸め誤差の関係を観察した後,
数値微分の主な公式を学び, 実装を用いた実験結果により,
打ち切り誤差と丸め誤差の戦いを観察しました.
num3.pdf第3回講義のプレゼンの pdf ファイ
ル.
プログラム見本
num3-1.c
num3-1.f
num3-2.f
rep3-3.f
chap3.pdf第3回講義の詳しいブリント
- 5月15日(火):第4回 数値積分法
代表的な数値積分の公式とその実行結果を示し, 公式誤差と丸め誤差の関係を
学びました.
num4.pdf第4回講義のプレゼンの pdf ファイ
ル.
プログラム見本
riemann.f
riemann.c
daikei.f
daikei.c
sekibun.f
sekibun.c
chap4.pdf第4回講義の詳しいブリント
- 5月22日(火):第5回 二分法とニュートン法
超越方程式の数値解法として有名なものをいくつか紹介し, プログラム例,
実行例, 誤差の数学的評価を示しました.
num5.pdf第5回講義のプレゼンの pdf ファイ
ル.
プログラム見本
num5-1.f
num5-1.c
num5-2.f
num5-2.c
rep5-3.f
rep5-3.c
rep5-4.f
rep5-5.f
chap5.pdf第5回講義の詳しいブリント
- 5月29日(火):第6回 行列の計算 - 1
コンピュータによる行列の扱い方を説明し, Gauss の消去法を解説しました.
num6.pdf第6回講義のプレゼンの pdf ファイ
ル.
num6-1.f
num6-1.c
num6-2.f
num6-2.c
rep6-3.f
rep6-4.f
rep6-5.f
rep6-1a.c
rep6-1b.c
rep6-1c.c
rep6-2a.c
rep6-2b.c
rep6-3a.c
rep6-3b.c
chap6.pdf第6回講義の詳しいブリント
プログラム見本
- 6月5日(火):第7回 行列の計算 - 2
反復法による解法と固有値の求め方を説明しました.
num7.pdf第7回講義のプレゼンの pdf ファイ
ル.
num7-1.f
num7-2.f
num7-3.f Wilkinson 多項式の根. このプログ
ラムと次のプログラムには第8回のところに置いた xgrf.c が必要です.
num7-4.f y''=y の固有値と固有函数
chap7.pdf第7回講義の詳しいブリント
- 6月12日(火): 京都出張のため休講
- 6月19日(火):第8回 微分方程式の初期値問題
表題の新しいテーマに入りました.
num8.pdf第8回講義のプレゼンの pdf ファイ
ル.
xgrf.c
FORTRAN でリアルタイム描画のため
のグラフィックライブラリ
num8-1.f
1階単独方程式 y'=y の初期値
問題の Euler-Cauchy 法による解
num8-2.f
1階連立方程式 x'=y, y'=-x の初期値
問題の Euler-Cauchy 法による解
num8-2a.f
同上をダミー変数を忘れた場
合
num8-3.f 2次の Runge-Kutta 法
num8-4.f 4次の Runge-Kutta 法
chap8.pdf第8回講義の詳しいブリント
少しずつ積み残しが増えています. プレゼン資料の方は講義で実際に行った
部分だけに再編集してありますが, 参考プリントはもとのままです,
- 6月26日(火):第9回 力学系
弦の振動を表す波動方程式を導き, そこから得られる固有値問題を
解いてみました. 次いで Runge-Kutta 法の解説をしました.
残りの時間で力学系の代表的な方程式の数値解の軌道を見せ, 決定論的カオス
の話をしました.
num9.pdf第9回講義のプレゼンの pdf ファイ
ル.
lorenz.f Lorenz アトラクタ
rossler.f Rossler アトラクタ
vanderplo.f van der Pol 方程式の相空間
での解軌道
本日の講義の詳しい内容は chap7.pdf と chap8.pdf に含まれています.
グラフィックを用いるための xgrf.c は第8回の最後に追加しておきました.
- 7月3日(火):第10回 複素数とフラクタル
複素数の取り扱い方を説明し, 複素力学系のきれいな図をお見せしました.
numa.pdf第10回講義のプレゼンの pdf ファイ
ル.
mandelbrot.f
julia.f
cubic.f
以下は複素数ではないので, 講義で使いませんでしたが, フラクタル図形の例
として参考までに追加しておきます.
von_koch.f
leaf.f
chap9.pdf第10回講義の詳しいブリント.
番号が講義回数とずれていますので御注意ください.
- 7月10日(火):第11回 偏微分方程式の初期値問題
熱方程式と波動方程式の差分解法を解説し, リアルタイムで
解を描画するプログラムを実行して見せ, 差分スキームの安定性条件の解説を
しました.
numb.pdf第11回講義のプレゼンの pdf ファイ
ル.
heat.f空間1次元熱方程式の差分解
wave.f空間1次元波動方程式の差分解
heat2d.f空間2次元熱方程式の差分解
wave2d.f空間2次元波動方程式の差分解
xgrf.cキー一発操作をサポートした強化版です.
本日のプログラムをコンパイルするには, この新しいものをリンクする必要が
あります. 取り込み直して gcc -c xgrf.c を実行し直してから,
g77 heat.f xgrf.o -lX11 を実行してください. X11 環境だけで動きます.
- 7月17日(火):第12回 最終回
多倍長演算と精度保証付き計算の解説をし, 最後にちょっと FORTRAN プログ
ラミングの手ほどきをしました.
numfinal.pdf第12回講義のプレゼンの pdf ファイ
ル.
test.fプログラミング練習で打ち込んだ
例題
pishort.f同・πの計算 (通常の倍精度)
infdec.fKerosoft 社の多倍長演算ライブラリ
infdec.f同・組込み函数の多倍長演算ライブラリ
pi.f同上ライブラリを用いたπの多倍長演算
exp.f同上ライブラリを用いた函数 exp の計算
log.f同上ライブラリを用いた函数 log の計算
trigono.f同上ライブラリを用いた三角函数の計算
Cygwin の場合は, まず最初に
g77 -c infdec.f
g77 -c inflib.f
をやっておきます (一度だけで良い). 実行プログラムは
g77 pi.f infdec.o
g77 exp.f infdec.o inflib.o
のようにコンパイルします.
【期末レポート】
講義は無事終了しました.
この講義の成績は出席とレポートで付けます.期末レポートは,今までに
講義中にお話しした問題 (そのほとんどはプレゼン資料に書かれています) の
いくつかを解くか,自分でこの講義に関連して考えたことをまとめて
書いてください.
締め切りは,8月31日です.
提出先は,私に直接渡して下さい.ほぼいつも理学部号館307室に居ます.
締め切り日が近付いたら,『キタキツネのレポートボックス』を扉の近くに
出して置きますので,不在の場合はそこに入れてください.
地方でこの時期に東京に居ないという人は大学宛郵送やメールの添付ファイル
による提出も受け付けます. この場合は Subject 欄には必ずエンコードされない裸
の文字列 SuriShouyou を書いてください. 今までの出席メールと違い,
期末レポートの場合はメールによる提出に対しては必ず受け取り通知を返信します.
講義科目の紹介メニューに戻る.