NumRecipe

2023年度春学期数値計算(動画・リンク)

そのほかの資料は下の方のスケジュール予定にあり

各回の動画ほか特記事項

動画リンクは下の方のスケジュール(講義予定)に移しました.

  • 授業の進め方,参考資料を紹介, anacondaのinstall, pythonの基礎
  • フォーマンセルですが,基本は4人,4人以下ならOK, 5人以上は不可.
  • 提出課題はありません.フォーマンセルの同意書だけアップロードしてください.

講義の補足資料

単位について

全般の注意

章末の演習課題について

  • 次週の前日の夜中までにLUNAにpdfで提出.
  • 全部やる必要はない.2,3問を指定します.
  • 採点結果は私のURLへup.
  • レポートっぽく色々試したり,追加してもらうと加点.
  • ペア(ツーマンセル)フォーマンセルで1つ出せばよい.
  • 採点の都合上,遅れたら,0点.

期末試験について(100点満点)

  • TAマニュアル
  • 7/12の講義時間中に,対面で実施.
  • 講義室で実施
  • 座席指定.時間中5分間だけ相談時間を設ける予定.
  • 大学のコンピュータを使って実際に数値計算をする課題がある.
  • BYODでcodeを実行,LUNAへ提出.
  • メール(含むLINE等のSNS)の使用は一切不可.見つかれば即退場.webの利用はOKだけど,「教えて」なんかはダメよ.
  • 資料などの持ち込みは,プリント,ノート,コピーおよびレポート.
  • USBメモリーの試験時間中の使用は不可.必要な資料や課題のファイルはあらかじめ自分のフォルダーに入れておくように
  • 章末の演習課題と重複する問題が多い.よく消化しておくように.

講義の目的:数値計算をPythonで解説

数値計算

「数値計算」が対象とする分野は,関数の解,積分,微分方程式,固有値問題などで,数学の問題を解析的(analytical) ではなく,数値的 (numerical) に解く手法の集大成.数値計算には,料理と同じで,正しい調理法 (レシピ,recipe) がある.

基本的な戦術

数値計算が必要となる問題を解くときの戦術は,

  1. 手持ちのツールで解いてみる,
  2. 解析的な解を捜す,
  3. 既存の数値計算のサブルーチンを写して,利用.
  4. 使いやすいライブラリを捜す,
  5. 自分でサブルーチンを考える,

という順でおおむね進める. 数値計算のサブルーチンを実際に自分で考えるということはほとんどない. しかし,例え 3. や 4. の既存のサブルーチンに頼るときにも, ブラックボックスの中で何がおこなわれているかを大まかに理解しておかないと 大失敗をしでかすことがある.

といっても,数値計算手法の全てを理解しておく必要はない. 料理において基本となる,切る,煮る, 焼くなどを知っていれば,recipe を見ながら調理ができる. 数値計算においても同じで,基本となる誤差,精度,収束性,安定性,計算速度などの本質を理解しておけば, 新しい数値計算手法もだいたいの振る舞いを予測することが出来る.

本講義ではこのような視点にたって, いくつかの典型的な数値計算手法の基礎的な考え方と実際のプログラムを紹介する.

python

  • jupyter notebookで資料を提供
  • github の数値計算
  • nbviewer notebookのviewer
  • 自習するならanaconda
  • エディターはvscode(Microsoft謹製)が便利
    • 環境設定はほぼ自動です.
    • インストールしますかと尋ねられたのをyesしていく

スケジュール予定

初回環境整備と諸注意

講義内容

date ipynb nbviewer pdf マーク付きpdf 解答例 昨年or今年動画
day 0(4/12) 授業進行説明 テキスト 講義手順
day 1(4/12) 常微分方程式 nbviewer テキスト テキスト 今年リンク
day 2(4/26) jupyter nb install 4/26 漫談になったんでパス
代数方程式 nbviewer テキスト テキスト テキスト 今年リンク
day 3(5/10) 誤差 nbviewer テキスト テキスト テキスト 今年リンク
day 4(5/17) 写像 nbviewer テキスト テキスト テキスト 今年リンク
day 5(5/17) 逆行列 nbviewer テキスト テキスト テキスト
day 6(5/24) 固有値とライブラリ nbviewer テキスト テキスト テキスト 今年リンク
計算速度競争 nbviewer テキスト
day 7(5/31) 補間と数値積分 nbviewer テキスト テキスト テキスト 今年リンク
day 8(6/7) 線形最小二乗法 nbviewer テキスト テキスト テキスト 今年リンク
day 9(6/14) 非線形最小二乗法 nbviewer テキスト テキスト テキスト 本年リンク
day 10(6/21) 期末試験リハーサル nbviewer テキスト
day 11(6/28) 休講(動画) FFT nbviewer テキスト リンク
day 12(7/5) 休講(動画) 常微分方程式 nbviewer テキスト テキスト リンク
day 13(7/12) 期末試験本番 nbviewer テキスト 解答例

期末試験関連資料

年度 問題 内容 答案
22年度 exam_22.ipynb exam_22.pdf 行列,漸化式の誤差,数値積分, Verlet 答案, pdf
21年度 exam_21.ipynb exam_21.pdf 行列,差分商補間,数値積分, スムースな静⽌ 答案, pdf
20年度 exam_20.ipynb, exam_20.pdf フィッティング,数値解の収束性,常微分方程式, fft python解答例, exam_20_ans.ipynb
exam_20_ans.pdf
19年度 exam_19.pdf 行列計算,fft,解の収束性,ODE python解答例,exam_19_ans.pdf
18年度 exam18.pdf 行列計算,解収束性,精度・誤差,最小二乗法,常微分方程式 python解答例
17年度 Exam17.pdf 行列計算,精度・誤差,積分,最小2乗法,常微分方程式 python解答例
16年度 NumRecipe16, NumRecipe16_ans 収束性,Gauss-Seidel,FFT強度表示,tanニュートン差分商補間 python解答例
15年度 NumRecipe15, NumRecipe15_ans 収束性,丸め誤差,Newton差分商公式,ページランク python解答例
14年度 NumRecipe14, NumRecipe14_ans
11年度 NumRecipe12
TAマニュアル NumRecipe_ExamTA_manual

来年度に向けて

  • プリントアウトで不正が起こるかも.試験の提出はLUNAから.
  • 学期の始めに,以下の項目を明言する
    • コピペでいいこと.
    • 何を削るべきか?
    • どこを換えるべきか?
    • どのような操作がJupyter Notebookで最低限修得しないといけないか?
    • チームの結束.
    • 課題の意味.

参考文献

William H. Press 他著「ニューメリカルレシピ・イン・シー C言語による数値計算レシピ」(技術評論社,1993)
数値計算のバイブル.原著 Numerical recipeでは非常に広範な計算対象に対して,C, Fortran, C++, Pascal, Basic版が用意されており,数値計算プログラムをコーディングする際の洗練されたスタイルも提示している.記述は初学者には難しいが,ある程度経験を積んだプログラマには,手法を選ぶうえで非常に役に立つ情報である.
奥村晴彦著「C言語による最新アルゴリズム事典」(技術評論社,1991)
いわゆる数値計算に限らず,いろいろな計算機問題とその解法が載っている.数値計算についても必要最小限の記述とプログラムがまとめられており,非常に便利.改訂版が2018に出た.
数値解析法,森正武著,1984, 朝倉書店朝倉現代物理学講座7
 
数値解析,一松信著,1982,朝倉書店新数学講座13
両書とも少し古いが,数値計算の基礎となる理論的な説明が明解.
河村哲也著「数値計算の初歩!」(山海堂,2002年)
レベルは高くないが,重要な数値計算の初歩を丁寧に解説.
Last modified:2023/09/21 10:04:07
Keyword(s):
References:[LectureNotes]