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