本講義のねらいは,最も広く用いられているプログラミング言語のひとつであるC++を用いて,基本的なプログラミング手法を学び,数値解析のためのプログラムを作成できるようになることである.C++言語の初歩的な文法からポインタや配列といった数値解析にとって重要な事項まで,プログラミング演習を通じて学習する.また,連立1次方程式の解法,補間と補外,関数の積分,モンテカルロ法,非線形方程式の解法といった理工系の研究者・技術者にとって必須のスキルについても,その基本的なアルゴリズムを学び,実際にプログラミングを体験する.
本講義を履修することにより次の能力を習得する.
(1) プログラミング言語(C++)の使い方を習得し,
(2) 数値解析法の基本的なアルゴリズムを理解し,
(3) 基本的なプログラムを作成できるようになる.
プログラミング,数値計算,アルゴリズム,オブジェクト指向,Gaussの消去法,Newton-Raphson法,Monte-Carlo法
✔ 専門力 | 教養力 | コミュニケーション力 | 展開力(探究力又は設定力) | ✔ 展開力(実践力又は解決力) |
講義前半にプログラミング言語の文法やアルゴリズムについて学習し,後半にプログラミングを実践する.
授業計画 | 課題 | |
---|---|---|
第1回 | 画面への出力とキーボードからの入力 | 画面への出力とキーボードからの入力について理解し,プログラムを作成できる. |
第2回 | プログラムの流れの分岐 | プログラムの流れの分岐について理解し,プログラムを作成できる. |
第3回 | プログラムの流れの繰り返し | プログラムの流れの繰り返しについて理解し,プログラムを作成できる. |
第4回 | 基本的なデータ型 | 基本的なデータ型について理解し,プログラムを作成できる. |
第5回 | 配列 | 配列について理解し,プログラムを作成できる. |
第6回 | 関数の基本 | 関数の基本について理解し,プログラムを作成できる. |
第7回 | ポインタ | ポインタについて理解し,プログラムを作成できる. |
第8回 | 文字列とポインタ | 文字列とポインタについて理解し,プログラムを作成できる. |
第9回 | 関数の応用 | 関数の応用について理解し,プログラムを作成できる. |
第10回 | クラスの基本 | クラスの基本について理解し,プログラムを作成できる. |
第11回 | 連立1次方程式の解法 | 連立1次方程式の解法として基本的なアルゴリズムを理解し,プログラムを作成できる. |
第12回 | 補間と補外 | 補間と補外について基本的なアルゴリズムを理解し,プログラムを作成できる. |
第13回 | 関数の積分 | 関数の積分について基本的なアルゴリズムを理解し,プログラムを作成できる. |
第14回 | 乱数,モンテカルロ法 | 乱数の発生やモンテカルロ積分の基本的なアルゴリズムを理解し,プログラムを作成できる. |
第15回 | 非線形方程式の解法 | 非線形方程式の解法として基本的なアルゴリズムを理解し,プログラムを作成できる. |
柴田望洋, 『新・明解C++入門』, SBクリエイティブ株式会社, ISBN978-4-7973-9463
W. H. Press他,『Numerical Recipes in C++: The Art of Scientific Computing』, Cambridge University Press, ISBN978-0521750332
伊理正夫,藤野和建,『数値計算の常識』,共立出版株式会社,ISBN978-4-320-01343-8
プログラミングの基本的な手法を習得し,数値解析の基本的なアルゴリズムを用いてプログラムを作成できる.
成績評価は演習(70%)と期末試験(30%)で行う.
特に無し。
林崎規託, hayashizaki.n.aa[at]m.titech.ac.jp
長谷川純,hasegawa.j.aa[at]m.titech.ac.jp
メールで事前に予約すること.