概要:
数値解析は工学諸問題における現象の解析や予測のために必要不可欠な数理処理技術である。
この科目は企業でソフトウェアの開発・設計を担当していた教員が、その経験を活かし、用途に応じたソフトウェアの設計手法等について講義・演習形式で授業を行うものである。
授業では講義による基本的な解析手法の説明、実装のポイント解説の後に、主にC 言語を利用したプログラム演習を行うことで、数値解析アルゴリズムの理解を深めるように進める。
授業の進め方・方法:
E-Learningシステム上に事前掲載されている資料の解説を授業開始30分程度行い、残りの時間は実際に数値計算するプログラムを作成する。
この授業は学修単位科目のため、事前・事後学習として「週ごとの到達目標」欄に示す課題などを実施する。
注意点:
講義で説明した数値解析手法に基づき、実際にプログラミングをおこなうため、C 言語プログラミングの能力は必要不可欠である。
また、数値解析で対象とする微分積分、線形代数は事前に復習しておくことを推奨する。
|
|
週 |
授業内容 |
週ごとの到達目標 |
後期 |
3rdQ |
1週 |
値解析概論・基本算法(配列、関数、変数) |
実数の内部表現、数値計算における誤差、多次元配列・関数・メモリの動的確保など基礎事項の理解。 IEEE754浮動小数点表現に関する課題
|
2週 |
行列・ベクトル・ノルム |
行列・ベクトルの演算やノルム計算ができる。 行列・ベクトル演算に関する課題
|
3週 |
非線形方程式(2分法、ニュートン法) |
非線形方程式の解をプログラムで求められる。 非線型方程式に関する課題
|
4週 |
連立一次方程式の直接解法(ガウス消去法) |
ガウスの消去法をプログラムすることで連立一次方程式の解を求めることができる。 連立一次方程式に関する課題1
|
5週 |
連立一次方程式の直接解法(LU分解) |
LU分解を用いて連立方程式を解くプログラムが作成できる。 連立一次方程式に関する課題2
|
6週 |
固有値 |
行列の最大固有値と最小固有値を数値計算で求めることができる。 固有値に関する課題
|
7週 |
連立一次方程式の反復解法(ヤコビ法、ガウス・ザイデル法) |
連立方程式を反復処理によって解くことができる。 連立一次方程式に関する課題3
|
8週 |
関数補間(ラグランジュ補間、ニュートン補間) |
計測点間を補間するプログラムが作成できる。 補間に関する課題
|
4thQ |
9週 |
関数近似(最小2乗近似) |
計測データを多項式や指数を用いて近似できる。 近似に関する課題
|
10週 |
数値積分(台形公式、シンプソン公式) |
台形公式・シンプソン公式により数値積分できる。 数値積分に関する課題1
|
11週 |
数値積分(ロンバーグ法) |
ロンバーグ積分を理解し実装できる。 数値積分に関する課題2
|
12週 |
数値積分(重積分) |
重積分を数値計算で求めることができる。 数値積分に関する課題3
|
13週 |
常微分方程式(オイラー法) |
オイラー法により微分方程式の解を求めることができる。 微分方程式に関する課題1
|
14週 |
常微分方程式(ホイン法) |
高次の近似により微分方程式の解を求めることができる。 微分方程式に関する課題2
|
15週 |
常微分方程式(ルンゲ・クッタ法) |
より高次の近似により微分方程式の解を求めることができる。 微分方程式に関する課題3
|
16週 |
期末試験 17週: 試験解説と発展授業 |
試験時間: 80分
|
分類 | 分野 | 学習内容 | 学習内容の到達目標 | 到達レベル | 授業週 |
基礎的能力 | 数学 | 数学 | 数学 | 整式の加減乗除の計算や、式の展開ができる。 | 3 | 後1 |
実数・絶対値の意味を理解し、絶対値の簡単な計算ができる。 | 3 | 後1 |
簡単な連立方程式を解くことができる。 | 3 | 後4,後5,後7 |
1次不等式や2次不等式を解くことができる。 | 3 | 後3,後5 |
ベクトルの定義を理解し、ベクトルの基本的な計算(和・差・定数倍)ができ、大きさを求めることができる。 | 3 | 後2 |
平面および空間ベクトルの成分表示ができ、成分表示を利用して簡単な計算ができる。 | 3 | 後2 |
平面および空間ベクトルの内積を求めることができる。 | 3 | 後2 |
行列の定義を理解し、行列の和・差・スカラーとの積、行列の積を求めることができる。 | 3 | 後2,後6 |
逆行列の定義を理解し、2次の正方行列の逆行列を求めることができる。 | 3 | 後6 |
行列式の定義および性質を理解し、基本的な行列式の値を求めることができる。 | 3 | 後2,後6 |
定積分の定義と微積分の基本定理を理解し、簡単な定積分を求めることができる。 | 3 | 後10 |
分数関数・無理関数・三角関数・指数関数・対数関数の不定積分・定積分を求めることができる。 | 3 | 後10 |
簡単な場合について、曲線で囲まれた図形の面積を定積分で求めることができる。 | 3 | 後10,後12 |
簡単な場合について、立体の体積を定積分で求めることができる。 | 3 | 後10,後12 |
2重積分を用いて、簡単な立体の体積を求めることができる。 | 3 | 後12 |
微分方程式の意味を理解し、簡単な変数分離形の微分方程式を解くことができる。 | 3 | 後13,後14 |
簡単な1階線形微分方程式を解くことができる。 | 3 | 後14 |
定数係数2階斉次線形微分方程式を解くことができる。 | 3 | 後14 |
専門的能力 | 分野別の専門工学 | 情報系分野 | プログラミング | 代入や演算子の概念を理解し、式を記述できる。 | 4 | 後1 |
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。 | 4 | 後2 |
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。 | 4 | 後2 |
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。 | 4 | 後2 |
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。 | 3 | 後2 |
要求仕様に従って、標準的な手法により実行効率を考慮したプログラムを設計できる。 | 3 | 後3 |
ソフトウェア | アルゴリズムの概念を説明できる。 | 3 | 後3 |
与えられたアルゴリズムが問題を解決していく過程を説明できる。 | 3 | 後3 |
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。 | 3 | 後3 |
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。 | 3 | 後2 |
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。 | 3 | 後3 |
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。 | 3 | 後3 |
計算機工学 | 整数・小数をコンピュータのメモリ上でディジタル表現する方法を説明できる。 | 4 | 後1 |
基数が異なる数の間で相互に変換できる。 | 4 | 後1 |
情報数学・情報理論 | コンピュータ上での数値の表現方法が誤差に関係することを説明できる。 | 3 | 後1 |
コンピュータ上で数値計算を行う際に発生する誤差の影響を説明できる。 | 3 | 後1 |
コンピュータ向けの主要な数値計算アルゴリズムの概要や特徴を説明できる。 | 3 | 後15 |
その他の学習内容 | 少なくとも一つの具体的なコンピュータシステムについて、起動・終了やファイル操作など、基本的操作が行える。 | 3 | 後1 |
少なくとも一つのメールツールとWebブラウザを使って、メールの送受信とWebブラウジングを行うことができる。 | 3 | 後1 |
分野別の工学実験・実習能力 | 情報系分野(実験・実習能力) | 情報系分野(実験・実習能力) | 与えられた問題に対してそれを解決するためのソースプログラムを、標準的な開発ツールや開発環境を利用して記述できる。 | 4 | 後4 |
ソフトウェア生成に利用される標準的なツールや環境を使い、ソースプログラムをロードモジュールに変換して実行できる。 | 4 | 後4 |
ソフトウェア開発の現場において標準的とされるツールを使い、生成したロードモジュールの動作を確認できる。 | 4 | 後4 |