計算工学Ⅰ

科目基礎情報

学校 富山高等専門学校 開講年度 令和05年度 (2023年度)
授業科目 計算工学Ⅰ
科目番号 0141 科目区分 専門 / 選択
授業形態 授業 単位の種別と単位数 履修単位: 1
開設学科 電子情報工学科 対象学年 5
開設期 前期 週時間数 2
教科書/教材 教科書:幸谷智紀、Python数値計算プログラミング(講談社)
参考書籍:堀之内、酒井、榎園、Cによる数値計算法入門第2版(森北出版)
担当教員 古山 彰一

到達目標

連立一次方程式の解法、行列の固有値・固有ベクトルの計算に必要なアルゴリズムの理解(c3)
数値計算に必要なプログラミング技術の習得(d)
JABEEの評価基準に達するには60点以上が必要

ルーブリック

理想的な到達レベルの目安標準的な到達レベルの目安未到達レベルの目安
連立一次方程式の解法、行列の固有値・固有ベクトルの計算解法基礎理論を理解し説明できつつ、実際に計算もできる。学んだ解法を用いて計算ができる。学んだ解法を用いて計算を行う事ができない。
連立一次方程式の解法、行列の固有値・固有ベクトルの計算解法の理論解法の理論を理解し、それをコンピュータプログラムで表現でき計算できる。解法のアルゴリズムを理解できる。解法のアルゴリズムが理解できない。
連立一次方程式の解法、行列の固有値・固有ベクトルの計算解法の理論の実装実際にコンピュータ上で解法を用いた計算ができ、その結果の妥当性を理論を理解したうえで議論できる。実際にコンピュータ上で解法を用いた計算ができ、その結果の妥当性をおおよそ示すことができる。実際にコンピュータ上で解法を用いた計算はできるが結果の妥当性は議論できない。

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

MCCコア科目 MCCコア科目 説明 閉じる
JABEE B3 説明 閉じる
ディプロマポリシー 1 説明 閉じる

教育方法等

概要:
コンピュータによる数値計算は、自然科学、工学、社会科学、その他の幅広い分野で使用されている。この科目では、数値計算に必要な様々なアルゴリズムについて学習する(c3)。 また、C言語による数値計算プログラムの作成方法を習得する(d)。
授業の進め方・方法:
数学的な理論よりも具体的な計算方法に重点をおいて理解を深める。
事前に行う準備学習:前回の講義の復習を行ってから授業に臨むこと
(授業外学習・事後)授業内容に関する課題を解く。
評価が60点に満たない者は、定期試験を受験していることを条件に、願い出により追認試験を受けることができる。追認試験の評価基準は本試験に準ずる。追認試験で単位修得が認められた者は、その評価を60点とする。
注意点:
期末試験(70%)、プログラミング演習とレポート(30%)で総合評価

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

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

授業計画

授業内容 週ごとの到達目標
前期
1stQ
1週 基本線形計算 浮動小数点数の四則演算とランダウのO記号、複素数の四則演算、基本線形計算を理解する。
2週 基本線形計算 NumPyを用いた基本線形計算を理解する。
3週 基本線形計算 ベクトルと行列の誤差、行列乗算のベンチマークテストを理解する。
4週 連立一次方程式の解法1ー直接法 連立一次方程式とその数値計算法、LU分解とガウスの消去法、を理解する。
5週 連立一次方程式の解法1ー直接法 ガウスジョルダン法と逆行列の計算、SciPyによる直接法の使用例、クラウト法、修正コレスキー分解、を理解する。
6週 連立一次方程式の解法1ー直接法 行列の条件数と連立一次方程式の誤差解析を理解する。
7週 連立一次方程式の解法2ー疎行列と反復法 密行列と疎行列、SuiteSparse Matrix Collectionと直接法を理解する。
8週 連立一次方程式の解法2ー疎行列と反復法 ヤコビ反復法を理解する。
2ndQ
9週 連立一次方程式の解法2ー疎行列と反復法 共役勾配法を理解する。
10週 行列の固有値・固有ベクトル計算 行列の固有値・固有ベクトル、固有値・固有ベクトル計算の分類、べき乗法と逆べき乗法を理解する。
11週 行列の固有値・固有ベクトル計算 QR分解法を理解する。
12週 行列の固有値・固有ベクトル計算 行列のリダクションを理解する。
13週 演習とまとめ 連立一次方程式の解法について演習とまとめを行う
14週 演習とまとめ 行列の固有値・固有ベクトル計算について演習とまとめを行う
15週 期末試験 期末試験
16週 期末試験の解答 試験返却

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

分類分野学習内容学習内容の到達目標到達レベル授業週
基礎的能力工学基礎情報リテラシー情報リテラシー与えられた基本的な問題を解くための適切なアルゴリズムを構築することができる。4前1,前2,前3,前4,前5,前6,前7,前8,前9,前10,前11,前12
任意のプログラミング言語を用いて、構築したアルゴリズムを実装できる。4前1,前3,前4,前5,前6,前7,前8
専門的能力分野別の専門工学情報系分野プログラミング代入や演算子の概念を理解し、式を記述できる。4前1,前5,前6,前7,前8
プロシージャ(または、関数、サブルーチンなど)の概念を理解し、これらを含むプログラムを記述できる。4前1,前2,前5,前6,前7,前8
制御構造の概念を理解し、条件分岐を記述できる。4前1,前5,前6,前7,前8,前9,前10,前11,前12
制御構造の概念を理解し、反復処理を記述できる。4前1,前3,前5,前6,前7,前8,前9,前10,前11,前12
与えられた問題に対して、それを解決するためのソースプログラムを記述できる。4前1,前2,前3,前4,前5,前6,前7,前8,前9,前10,前11,前12
ソフトウェア生成に必要なツールを使い、ソースプログラムをロードモジュールに変換して実行できる。4前1,前3,前4,前5,前6,前7,前8
要求仕様に従って、いずれかの手法により動作するプログラムを設計することができる。4前1,前3,前4,前5,前6,前7,前8
要求仕様に従って、いずれかの手法により動作するプログラムを実装することができる。4前1,前3,前4,前5,前6,前7,前8,前9,前10,前11,前12
ソフトウェアアルゴリズムの概念を説明できる。4前1,前2,前3,前4
与えられたアルゴリズムが問題を解決していく過程を説明できる。4前1,前3,前4,前9,前10,前11,前12,前13,前14
同一の問題に対し、それを解決できる複数のアルゴリズムが存在しうることを説明できる。4前1,前3,前4
整列、探索など、基本的なアルゴリズムについて説明できる。4前1,前3
時間計算量によってアルゴリズムを比較・評価できることを説明できる。4前4,前5,前6,前7,前8,前15,前16
領域計算量などによってアルゴリズムを比較・評価できることを説明できる。4前4,前5,前6,前7,前8,前15,前16
コンピュータ内部でデータを表現する方法(データ構造)にはバリエーションがあることを説明できる。4前1,前2
同一の問題に対し、選択したデータ構造によってアルゴリズムが変化しうることを説明できる。4前1,前9
リスト構造、スタック、キュー、木構造などの基本的なデータ構造の概念と操作を説明できる。4前5,前6,前7,前8
リスト構造、スタック、キュー、木構造などの基本的なデータ構造を実装することができる。4前5,前6,前7,前8
ソースプログラムを解析することにより、計算量等のさまざまな観点から評価できる。4前3,前4,前5,前6,前7,前8,前15,前16
同じ問題を解決する複数のプログラムを計算量等の観点から比較できる。4前3,前4,前5,前6,前7,前8,前15,前16

評価割合

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