1. 浮動小数点数を用いた計算に誤差が含まれる理由を説明できる
2. 数値計算の各テーマに対して、計算手法の原理を説明できる
3. 数値計算の各テーマに対して、原理に応じたプログラムを作成することができる
概要:
コンピュータは非常に幅広い分野で使用されているが、元々は計算の道具として開発された機械である。したがって、数値計算のためのソフト開発は広く行われ多くの蓄積がある。今日では、非常に高度な計算を行うためのソフトも開発されており、これらは製品の開発や設計などに広く利用されている。
本授業では、コンピュータを使った数値計算の考え方を理解することが目標である。数値計算は必ず誤差が生じ、プログラムの組み方によっては間違った解を出力したり、計算が終了しなかったりすることがあり、数学で学んでいる通常の解析とは異なっていることを理解することが重要である。また複雑な数値計算を行う場合の基礎となる基本的な問題に対する数値解析の方法を学び、そのアルゴリズムを習得することも目標としている。
授業の進め方・方法:
各テーマにおいて、数値計算の理論を解説し、演習としてプログラミング演習を行う。
注意点:
プログラミング演習ではC言語を使用するので、C言語でのプログラミングに慣れていることが望ましい。
|
|
週 |
授業内容 |
週ごとの到達目標 |
前期 |
1stQ |
1週 |
ガイダンス、誤差 |
浮動小数点数の表現方法を理解できる。
|
2週 |
誤差 |
浮動小数点数の演算で誤差が集積することを理解できる。
|
3週 |
二分法 |
二分法で方程式の解を求めることができる。
|
4週 |
ニュートン法 |
反復法の代表としてニュートン法で非線形方程式の解を求めることができる。
|
5週 |
ニュートン法 |
ニュートン法のプログラムを作成することができる。
|
6週 |
ベアストウ法 |
ベアストウ法でn次方程式を解くことができる。
|
7週 |
ガウス・ジョルダン法 |
連立方程式の解法としてガウス・ジョルダン法を理解できる。
|
8週 |
中間試験 |
|
2ndQ |
9週 |
ガウス・ジョルダン法 |
ガウス・ジョルダン法でピボッティングの必要性を説明できる。
|
10週 |
ガウス・ジョルダン法 |
ガウス・ジョルダン法のプログラムを作成することができる。
|
11週 |
ガウス・ザイデル法 |
反復法の代表としてガウス・ザイデル法で連立方程式を解くことができる。
|
12週 |
ガウス・ザイデル法 |
ガウス・ザイデル法のプログラムを作成することができる。
|
13週 |
ラグランジュの補間 |
ラグランジュの補間の手法を説明できる。
|
14週 |
最小二乗法 |
最小二乗法を利用して近似直線や2次の近似曲線を求める手法を説明できる。
|
15週 |
期末試験 |
|
16週 |
テスト返却と解説 |
|
後期 |
3rdQ |
1週 |
台形公式 |
定積分の値を反復法で近似的に求める手法を説明できる。
|
2週 |
台形公式 |
台形法で定積分の値を計算するプログラムを作成することができる。
|
3週 |
台形公式 |
台形公式で求めた数値積分に含まれる誤差の傾向を理解し、リチャードソンの補外で誤差を小さくすることができることを説明できる。
|
4週 |
シンプソンの公式 |
定積分の値を反復法で2次の近似として求める手法を説明できる。
|
5週 |
シンプソンの公式 |
シンプソンの公式で定積分の値を計算するプログラムを作成できる。
|
6週 |
オイラーの公式 |
常微分方程式の数値解法についてオイラーの公式を説明できる。
|
7週 |
オイラーの公式 |
オイラーの公式を用いて常微分方程式を解くプログラムを作成できる。
|
8週 |
中間試験 |
|
4thQ |
9週 |
ルンゲクッタの公式 |
常微分方程式の数値解法についてルンゲクッタの公式を説明できる。
|
10週 |
ルンゲクッタの公式 |
ルンゲクッタの公式を用いて常微分方程式を解くプログラムを作成できる。
|
11週 |
逆行列 |
ガウス・ジョルダン法を使って逆行列を求めることができる。
|
12週 |
固有値 |
解析的に固有値を求める方法は数値計算向きでないことを理解できる。
|
13週 |
固有値 |
数値計算向きのヤコビ法を理解できる。
|
14週 |
乱数 |
乱数の生成方法を説明することができる。 生成分布が異なる乱数の必要性を理解し、正規分布などの乱数の生成方法を説明できる。
|
15週 |
期末試験 |
|
16週 |
テスト返却と解説 |
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 変数とデータ型の概念を説明できる。 | 4 | |
代入や演算子の概念を理解し、式を記述できる。 | 4 | |
制御構造の概念を理解し、条件分岐や反復処理を記述できる。 | 4 | |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 3 | |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 4 | |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 3 | |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。 | 3 | |
ソフトウェア | アルゴリズムの概念を説明できる。 | 3 | |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 3 | |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 3 | |
時間計算量や領域計算量などによってアルゴリズムを比較・評価できることを理解している。 | 3 | |
計算機工学 | 整数・小数をコンピュータのメモリ上でディジタル表現する方法を説明できる。 | 3 | |
基本的な論理演算を行うことができる。 | 3 | |
基本的な論理演算を組合わせて、論理関数を論理式として表現できる。 | 3 | |
情報数学・情報理論 | コンピュータ上での数値の表現方法が誤差に関係することを説明できる。 | 4 | |
コンピュータ上で数値計算を行う際に発生する誤差の影響を説明できる。 | 4 | |
コンピュータ向けの主要な数値計算アルゴリズムの概要や特徴を説明できる。 | 3 | |