数値計算法

科目基礎情報

学校 香川高等専門学校 開講年度 令和05年度 (2023年度)
授業科目 数値計算法
科目番号 2121 科目区分 専門 / 必修
授業形態 講義 単位の種別と単位数 履修単位: 2
開設学科 機械工学科(2019年度以降入学者) 対象学年 3
開設期 通年 週時間数 2
教科書/教材 Python数値計算プログラミング, 幸谷智紀著, 講談社
担当教員 木村 祐人

到達目標

1. 数値計算で発生する誤差について理解できる
2. 非線形方程式の数値解法を理解し, プログラムを用いて問題を解くことができる
3. 補間法, 数値積分法を理解し, プログラムを用いて問題を解くことができる
4. ガウスの消去法を理解し, プログラムを用いて問題を解くことができる
5. 最小二乗法を理解し, プログラムを用いて問題を解くことができる
6. 微分方程式の数値解法を理解し, プログラムを用いて問題を解くことができる

ルーブリック

理想的な到達レベルの目安(優)標準的な到達レベルの目安(良)未到達レベルの目安(不可)
数値計算で発生する誤差の種類について理解できる数値計算で発生する誤差の種類について理解し, 計算条件の設定や誤差の見積もりに生かすことができる数値計算で発生する誤差について理解し, 計算できる.数値計算で発生する誤差について理解できない
非線形方程式の数値解法を理解し, プログラムを用いて問題を解くことができる非線形方程式の数値解法を理解し, 手計算やプログラムの作成を用いて自力で問題を解くことができる非線形方程式の数値解法を理解し, 計算手順や与えられたプログラムを参考に問題を解くことができる非線形方程式の数値解法を理解できない
補間法, 数値積分法を理解し, プログラムを用いて問題を解くことができる補間法, 数値積分法を理解し, 手計算やプログラムの作成を用いて自力で問題を解くことができる補間法, 数値積分法を理解し, 計算手順や与えられたプログラムを参考に問題を解くことができる補間法, 数値積分法を理解できない
ガウスの消去法を理解し, プログラムを用いて問題を解くことができるガウスの消去法を理解し, 手計算やプログラムの作成を用いて自力で問題を解くことができるガウスの消去法を理解し, 計算手順や与えられたプログラムを参考に問題を解くことができるガウスの消去法法を理解できない
微分方程式の数値解法を理解し, プログラムを用いて問題を解くことができる微分方程式の数値解法を理解し, 手計算やプログラムの作成を用いて自力で問題を解くことができる微分方程式の数値解法を理解し, 計算手順や与えられたプログラムを参考に問題を解くことができる微分方程式の数値解法を理解できない

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

学習・教育到達度目標 B-2 説明 閉じる

教育方法等

概要:
計算機技術の発展に伴い, 今日の機械工学においてシミュレーションや数値解析は欠かせない道具の一つとなっている. 様々な現象を計算機上でシミュレートしたり, 複雑な問題を最適化する際に, 現実の諸問題を数学モデルに置き換えて数値的に解を求める必要がある. これらシミュレーションや数値解析の基礎となるのが数値計算法である. この講義では数値計算法の基礎的な問題をいくつか取り上げ, その考え方とC言語を用いた実装を学ぶ. また, 問題を解いて得られた結果をレポートにまとめることで, 4, 5年時の工学実験, 5年次の卒業研究に向けた文書作成能力の素地を養う.
授業の進め方・方法:
- 基礎式の導出を行った後に, 問題を手計算で解く演習を行う
- 基礎式や計算手順を理解した後に, C言語のプログラムを用いた数値計算を行う
- 課題を通じ, プログラムを用いた数値計算結果を解析し, レポートにまとめる
注意点:
- 受講者はプログラミング基礎を理解している必要がある.
- 基礎式の導出やプログラムの作成は自分の手で行うこと. 他人の作業を写すだけでは理解が得られない.
- 各課題には締切を設定する. 締切に遅れた場合は80%の評価とする.

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

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

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 イントロダクション:数値計算とは 数値計算とは何か理解し, 説明できる。
2週 数値計算における精度と誤差 数値計算を行う上で考えなければならない誤差を理解し, 説明できる。
3週 プログラミング演習 演習課題をこなし,演習報告書を作成することができる。
4週 非線形方程式の数値解法1 2分法の原理を理解し,解法をプログラミングできる。
5週 プログラミング演習 演習課題をこなし,演習報告書を作成することができる。
6週 非線形方程式の数値解法2 ニュートン法の原理を理解し,それぞれの解法をプログラミングできる。
7週 プログラミング演習 演習課題をこなし,演習報告書を作成することができる。
8週 中間試験 中間試験
2ndQ
9週 補完法について学ぶ。 Lagrangeの補間多項式を用いて, 与えられたデータや関数の補間曲線を求める方法が理解できる。
10週 プログラミング演習 演習課題をこなし,演習報告書を作成することができる。
11週 数値積分について学び,台形公式を導出する。 台形公式の導出が説明できる。
12週 台形公式(区間2分法)について学ぶ。 台形公式(区間2分法)について説明できる。
13週 シンプソンの公式について学ぶ。 シンプソンの公式について説明できる。
14週 プログラミング演習 演習課題をこなし,演習報告書を作成することができる。
15週 プログラミング演習 演習課題をこなし,演習報告書を作成することができる。
16週 期末試験 期末試験
後期
3rdQ
1週 2次元配列と行列の積 行列の積の計算をプログラミングすることができる。
2週 プログラミング演習 演習課題をこなし,演習報告書を作成することができる。
3週 連立1次方程式の数値解法 ガウスの消去法を理解し,プログラミングすることができる。
4週 ガウスの消去法の計算演習 ガウスの消去法を手順に従って手計算できる。
5週 プログラミング演習 演習課題をこなし,演習報告書を作成することができる。
6週 プログラミング演習 演習課題をこなし,演習報告書を作成することができる。
7週 プログラミング演習 演習課題をこなし,演習報告書を作成することができる。
8週 中間試験 中間試験
4thQ
9週 ガイダンス
オイラー法について学ぶ。
ガイダンス
オイラー法について説明できる。
10週 プログラミング演習 演習課題をこなし,演習報告書を作成することができる。
11週 ルンゲ・クッタ法の基礎について学ぶ。 ルンゲ・クッタ法の基礎について説明できる。
12週 プログラミング演習 演習課題をこなし,演習報告書を作成することができる。
13週 高次の常微分方程式の解法 オイラー法を用いて, 高次の常微分方程式を数値的に解く方法が理解できる.
14週 プログラミング演習 演習課題をこなし,演習報告書を作成することができる。
15週 プログラミング演習 演習課題をこなし,演習報告書を作成することができる。
16週 期末試験 期末試験

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

分類分野学習内容学習内容の到達目標到達レベル授業週
基礎的能力工学基礎情報リテラシー情報リテラシー同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを知っている。3前1,前2,前4,前6,前9,前11,前12,前13,前14,後1,後3,後4,後9,後11,後13
与えられた基本的な問題を解くための適切なアルゴリズムを構築することができる。3前4,前6,前9,前11,前12,前13,前14,後2,後3,後4,後9,後11,後13
任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。3前5,前7,前10,前14,前15,後2,後5,後6,後7,後10,後12,後14,後15
専門的能力分野別の専門工学機械系分野情報処理プログラムを実行するための手順を理解し、操作できる。4前3,前5,前7,前10,前14,前15,後2,後5,後6,後7,後10,後12,後14,後15
定数と変数を説明できる。4前3,前5,前7,前10,前14,前15,後2,後5,後6,後7,後10,後12,後14,後15
整数型、実数型、文字型などのデータ型を説明できる。4前3,前5,前7,前10,前14,前15,後2,後5,後6,後7,後10,後12,後14,後15
演算子の種類と優先順位を理解し、適用できる。4前3,前5,前7,前10,前14,前15,後2,後5,後6,後7,後10,後12,後14,後15
算術演算および比較演算のプログラムを作成できる。4前3,前5,前7,前10,前14,前15,後2,後5,後6,後7,後10,後12,後14,後15
データを入力し、結果を出力するプログラムを作成できる。4前5,前7,前10,前14,前15,後2,後5,後6,後7,後10,後12,後14,後15
条件判断プログラムを作成できる。4前5,前7,前10,前14,前15,後2,後5,後6,後7,後10,後12,後14,後15
繰り返し処理プログラムを作成できる。4前5,前7,前10,前14,前15,後2,後5,後6,後7,後10,後12,後14,後15
一次元配列を使ったプログラムを作成できる。4前10,前14,前15,後1,後5,後6,後7

評価割合

試験課題合計
総合評価割合7030100
数値計算で発生する誤差について理解できる628
非線形方程式の数値解法を理解し, プログラムを用いて問題を解くことができる12517
補間法, 数値積分法を理解し, プログラムを用いて問題を解くことができる17825
ガウスの消去法を理解し, プログラムを用いて問題を解くことができる18826
微分方程式の数値解法を理解し, プログラムを用いて問題を解くことができる17724