数値計算法

科目基礎情報

学校 久留米工業高等専門学校 開講年度 令和03年度 (2021年度)
授業科目 数値計算法
科目番号 4S15 科目区分 専門 / 必修
授業形態 講義 単位の種別と単位数 履修単位: 2
開設学科 制御情報工学科 対象学年 4
開設期 通年 週時間数 2
教科書/教材 数値計算用クラスライブラリ、サンプルプログラム、教材pdfファイル:講義時に配布
担当教員 古賀 裕章

到達目標

1.C++の基礎を理解できる。
2.数値計算で生じる誤差や数値計算(実数演算)での注意点を理解できる。
4.数値計算アルゴリズムを理解でき、数値計算ライブラリを用いたプログラムを作成できる。

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
評価項目1C++の基礎を理解できる。 C++の基礎をおおむね理解できる。 C言語やC++の基礎を理解できない。
評価項目2数値計算で生じる誤差を理解できる。 数値計算で生じる誤差をおおむね理解できる。 数値計算で生じる誤差を理解できない。
評価項目3数値計算(実数演算)での注意点を理解できる。数値計算(実数演算)での注意点をおおむね理解できる。数値計算(実数演算)での注意点を理解できない。
評価項目4数値計算アルゴリズムの基礎を理解でき、数値計算ライブラリを用いたプログラムを作成できる。数値計算アルゴリズムの基礎をおおむね理解でき、数値計算ライブラリを用いたプログラムをほぼ作成できる。数値計算アルゴリズムの基礎を理解できない。数値計算ライブラリを用いたプログラムを作成できない。

学科の到達目標項目との関係

JABEE C-1 説明 閉じる

教育方法等

概要:
数値計算で生じる誤差、数値計算(実数計算)を行うにあたっての注意点,数値計算アルゴリズムの基礎を学習し、数値計算ライブラリを用いてプログラムを作成できる能力,工学問題に適用する基礎能力を身につける。
授業の進め方・方法:
プログラム言語としてC++を使う。C++はシステム記述言語であるが、数値計算ではfortranの次によく用いられる言語である。この授業では、C++で作成した数値計算ライブラリを用意している。数値計算法のアルゴリズムの基礎を理解してもらい、演習によって数値計算ライブラリを用いたプログラムを作成し、数値計算結果を求めてもらう。
関連科目:プログラミングⅠ、Ⅱ、Ⅲ
注意点:
得点配分は、中間試験50%、期末試験50%とし、100点法で評価する。
前期(後期)中間試験、前期(後期)期末試験の点数が60点に満たないとき、前期(後期)中間試験および前期(後期)期末試験の試験範囲でそれぞれ再試を実施する。再試の成績は60点として評価する。前期の総合成績と後期の総合成績の平均が60点以上のとき、合格とする。
次回の授業範囲を予習し、専門用語の意味等を理解しておくこと。

授業の属性・履修上の区分

アクティブラーニング
ICT 利用
遠隔授業対応
実務経験のある教員による授業

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 エディタとC++コンパイラの使い方 エディタとC++コンパイラを使うことができる。
2週 C++の基礎Ⅰ(データ入出力、ファイル操作)
データ入出力を行うことができ、ファイルからの入出力の仕方を理解することができる。
3週 C++の基礎Ⅱ(ポインタと配列) ポインタと動的配列の作り方を理解できる。
4週 C++の基礎Ⅲ(ポインタとアドレス演算、関数の参照引数) ポインタによる配列へのアクセス、アドレス演算、関数の参照引数を理解できる。
5週 C++の基礎Ⅳ(行列クラスと演算子のオーバーロード) 1次元動的配列による2次元配列(行列)の実装、演算子のオーバーロードを理解できる。
6週 行列の積、行列とベクトルのスカラー演算
行列の積、行列とベクトルの積などのスカラー演算プログラムを作成できる。
7週 実数のデータ表現、数値計算で生じる誤差 実数のデータ表現と数値計算で生じる誤差を理解できる。
8週 実数計算を行うにあたっての注意点 実数計算で陥りやすい注意点を理解できる。
2ndQ
9週 教材用の数値計算ライブラリを用いた行列演算 教材用として開発した数値計算ライブラリを用いて行列演算ができる。
10週 2分法による代数方程式の求解 2分法による代数方程式の求解を理解し、プログラムを作成できる。
11週 ニュートン法による代数方程式の求解 ニュートン法による代数方程式の求解を理解し、数値計算ライブラリを用いてプログラムを作成できる。
12週 連立1次代数方程の解法Ⅰ(ガウス消去法と行列式の計算) ガウス消去法の前進消去、後退代入、行列式の計算法を理解できる。
13週 連立1次代数方程の解法Ⅱ(pivot選択付きのガウス消去法とランクの計算法) pivot選択付きのガウス消去法と行列のランクの計算法を理解できる。
14週 連立1次代数方程の解法Ⅲ(逆行列の計算、LU分解法) ガウス消去法による逆行列の計算法、LU分解法について理解できる。
15週 最小二乗法(直線近似,座標軸がlog10軸のときの直線近似) 最小二乗法の原理について理解できる。
16週
後期
3rdQ
1週 最小二乗法(曲線近似)、曲線補間(ラグランジュ補間) 最小二乗法による曲線近似、曲線補間(ラグランジュ補間)を理解できる。
2週 曲線補間(スプライン補間) 曲線補間(スプライン補間)を理解できる。
3週 プログラム演習 第1~2週のプログラムを数値計算ライブラリを用いて作成し、gnuplotで描画できる。
4週 数値積分(台形則とガウス求積法) 数値積分(台形則とガウス求積法)を理解して数値計算ライブラリを用いたプログラムを作成できる。
5週 自動微分と自動微分クラス、ヤコビ行列の計算 自動微分と自動微分によるヤコビ行列の計算法を理解できる。
6週 自動微分を用いたニュートン法による非線形連立代数方程式の求解 自動微分を用いたニュートン法による非線形連立代数方程式の求解を理解できる。
7週 プログラム演習 第4~6週のプログラムを数値計算ライブラリを用いて作成し、正しい結果を得ることができる。
8週 常微分方程式の数値解法(ルンゲ・クッタ法) 微分方程式の数値解法、ルンゲ・クッタ4次法について理解できる。
4thQ
9週 振動系の運動方程式とLCR回路の回路方程式の数値解析 mck振動系とLCR回路の微分方程式をルンゲ・クッタ法で解くアルゴリズムを理解できる。
10週 プログラム演習 第8,9週のプログラムを数値計算ライブラリを用いて作成し、正しい結果を得ることができる。
11週 固有値の解法 固有値を求めるヤコビ法、QR法の概要を理解できる。
12週 固有ベクトルの解法 固有ベクトルを求めるべき乗法、逆反復法等の概要を理解できる。
13週 プログラム演習 第11,12週のプログラムを数値計算ライブラリを用いて作成し、正しい結果を得ることができる。
14週 離散フーリエ変換の基礎とサンプリング定理 離散フーリエ変換の基礎とサンプリング定理を理解できる。
15週 FFTライブラリを用いた演習(スペクトルと固有振動数の測定) 数値計算ライブラリを用いてFFT解析を行うプログラムを作成し,スペクトルを求めて固有振動数を求めることができる。
16週

モデルコアカリキュラムの学習内容と到達目標

分類分野学習内容学習内容の到達目標到達レベル授業週
専門的能力分野別の専門工学情報系分野プログラミング代入や演算子の概念を理解し、式を記述できる。3後2,後8
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。3後7,後8
変数の概念を説明できる。3後7,後8
データ型の概念を説明できる。3後2,後5,後7
制御構造の概念を理解し、条件分岐を記述できる。3後2
制御構造の概念を理解し、反復処理を記述できる。3後2
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。3後9,後10,後11,後12,後13,後14,後15
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。3後1,後3
与えられたソースプログラムを解析し、プログラムの動作を予測することができる。3後1,後3
ソフトウェア開発に利用する標準的なツールの種類と機能を説明できる。3後1
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。2後3
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。3後3,後14
情報数学・情報理論コンピュータ上での数値の表現方法が誤差に関係することを説明できる。4後3,後4
コンピュータ上で数値計算を行う際に発生する誤差の影響を説明できる。4後3,後4
コンピュータ向けの主要な数値計算アルゴリズムの概要や特徴を説明できる。3後12,後13,後14,後15
その他の学習内容少なくとも一つの具体的なコンピュータシステムについて、起動・終了やファイル操作など、基本的操作が行える。4後1,後2,後14

評価割合

試験発表相互評価態度ポートフォリオその他合計
総合評価割合10000000100
基礎的能力600000060
専門的能力400000040
分野横断的能力0000000