2025年度後期コンピュータ・シミュレーション

曜日・時限 月曜日2時限 期別 後期 週時間数 2
ナンバリング EN230304
開講学科等 工学部-基礎理工学科
工学部-環境科学科
工学部-基礎理工学科 数理科学専攻
工学部-基礎理工学科 環境化学専攻
教員名 柳田 達雄
柳田 達雄
職務履歴

https://research.osakac.ac.jp/index.php?%e6%9f%b3%e7%94%b0%e3%80%80%e9%81%94%e9%9b%84

教員情報データベースに遷移します

目的

コンピュータ・シミュレーションは実験と並び自然,社会現象を解析するための強力なツールである.実際にシミュレーションを行うためには,現象をモデル化して数理的に記述する必要がある.先に述べたさまざまな現象はモデル化により代数方程式・微分方程式・偏微分方程式などで記述される.したがって,シミュレーションでは,これらの方程式を計算機で解くことが必要になる.この授業では,代表的なシミュレーションのアルゴリズムを理解し,python言語により実装する能力を身につける.
なお,この講義はPythonプログラミングの基本を前提知識とするため,前期開講しているプログラミング基礎演習を履修・習得していることが望ましい.

授業計画

授業回 形式 学修内容 学修課題
1 A,C Pythonプログラミングの復習
-変数,リスト
-四則演算,数学関数
-分岐処理(if文)
-データ入出力
-反復処理(for文)
事前学修 基礎プログラミング演習で学習した内容を復習をしておくこと(2時間).
事後学修 演習問題を復習し,未完成の課題を提出する(2時間).
2 A,C Pythonライブラリの利用
-Numpyの使い方
-SciPyの使い方
-シュレーディンガー方程式
事前学修 テキスト9章を読んでおくこと(2時間).
事後学修 演習問題を復習し,未完成の課題を提出する(2時間).
3 A,C シュレーディンガー方程式の解と可視化
-Numpy,SciPyを用いてシュレーディンガーの解を求める
-波動関数を可視化する
事前学修 Numpy,SciPyの使い方について予習をしておくこと(2時間).
事後学修 演習問題を復習し,未完成の課題を提出する(2時間).
4 A,C 動的計画法1
-最適化問題
-ナップザック問題とその解法
-サイゼリア問題
事前学修 動的計画法(テキスト11章)について調べ,そのアルゴリズムについて考察しておくこと.貪欲法,全探索法について調べておくこと(2時間).
事後学修 演習問題を復習し,未完成の課題を提出する(2時間).
5 A,C -オブジェクト指向とは?
‐クラスとインスタンスについて学ぶ
‐オブジェクト指向の実例
-中間のまとめ
事前学修 クラスとインスタンスについて予習をして,これまでの復習をしておくこと(2時間).
事後学修 演習問題を復習し,未完成の課題を提出する(2時間).
6 A,C モンテカルロ法1
-乱数とは何かを知り,乱数を用いて確率を求める
-擬似乱数とその使い方を学ぶ.
-モンテカルロ法による数値積分
事前学修 テキスト12章を読んでおくこと(2時間).
事後学修 演習問題を復習し,未完成の課題を提出する(2時間).
7 A,C モンテカルロ法2
-モンティ・ホール問題
事前学修 テキスト12章のモンティ・ホール問題を読んでおくこと(2時間).
事後学修 演習問題を復習し,未完成の課題を提出する(3時間).
8 A,C 常微分方程式の数値解法1
-常微分方程式とは何かを知る.
-常微分方程式の数値解法を学ぶ.
-オイラー差分法により常微分方程式を解く-ニュートン方程式を解く(弾道計算)
事前学修 微分方程式とその解法(変数分離法)について予習しておくこと(2時間).
事後学修 演習問題を復習し,未完成の課題を提出する(3時間).
9 A,C 常微分方程式の数値解法2
-感染症の数理モデルをオイラー法で解く(SIRモデル)
-ローレンツ方程式の数値解をオイラー法で求める(決定論的カオス)
事前学修 テキスト13章を読んでおくこと(2時間).
事後学修 演習問題を復習し,未完成の課題を提出する(3時間).
10 A,C 偏微分方程式の数値解法1
-差分法により偏微分方程式を解くアルゴリズムを理解する
-反応拡散方程式であるGray-Scottモデルを差分法により解く
-アニメーションを作成する
事前学修 テキスト13.4を読んでおくこと,反応拡散方程式について調べておくこと(2時間).
事後学修 演習問題を復習し,未完成の課題を提出する(3時間).
11 A,C 機械学習1
-簡単な機械学習を学ぶ
-重回帰分析
事前学修 テキスト14.1を読んでおくこと(2時間).
事後学修 演習問題を復習し,未完成の課題を提出する(3時間).
12 A,C 機械学習2
-GAN(敵対的生成ネットワーク)
事前学修 テキスト14.4を読んでおくこと(2時間).
事後学修 演習問題を復習し,未完成の課題を提出する(3時間).
13 A,C 補足とまとめ・最終確認テスト 事前学修 これまで学習したプログラミングおよびアルゴリズムを復習しておくこと.これまでの小テストの復習をしておくこと(3時間).
事後学修 これまでの総復習をする(3時間).

授業形式記号

  • A:一斉授業(通常の講義)
  • B:問題発見・解決学習、プロジェクト学習
  • C:体験、実験、実習、演習など
  • D:調査 分析、解析など
  • E:ものづくり、作品制作
  • F:グループワーク(ディスカッション・ディベートを含む)
  • G:プレゼンテーション
  • H:地域・企業 連携型学習
  • I:その他

到達目標

ー基本的なアルゴリズムを理解し説明でき,具体的な問題を解決するためのプログラミングができる
ープログラミング言語の初歩的な文法を理解し,プログラミングできるようになる.
ーシミュレーション・数値解析に必要なアルゴリズムを理解し説明できるようになる.
ー基本的なアルゴリズムを応用して数理問題をプログラミングにより数値的に解決することができる

本科目に関連するディプロマポリシー項目
〇2024年度以降の入学生
  下記リンク先のカリキュラム・マップを参照
https://www.osakac.ac.jp/about/policy/faculty/
〇2023年度以前の入学生
  ・修得する資質・能力:知識・理解【DP-N-1-1】
  ・修得する資質・能力:汎用的技能【DP-N-2-2】
  ・修得する資質・能力:態度・志向性【DP-N-3-1】【DP-N-3-2】【DP-N-3-3】

評価方法と評価観点

評価方法 配点合計知識・理解力応用力コミュニケーション力態度・志向性創造力 合計
定期試験またはレポート試験 0%
小テスト、小論文 50% 50% 50% 100%
グループワーク 0%
プレゼンテーション 0%
レポート、宿題 20% 60% 20% 20% 100%
授業での姿勢(ノート、質疑など) 0%
作品、パフォーマンス(実技、実演) 0%
その他1(具体的に: 授業中のプログラミング演習課題:::::::::::::::::::::::::::::: 30% 50% 20% 10% 10% 10% 100%
その他2(具体的に: 0%
100% 52% 35% 7% 3% 3% 100%

教科書・参考書

教科書:
「ゼロから学ぶPythonプログラミング」 渡辺宙志(著)講談社
教科書中の問題などを演習やレポートの課題としても使用する.

オフィスアワー

柳田:前期 月曜5限,後期 月曜5限,A棟3階教員室21 (A-S348)
ただし,学内外の用務のため、オフィスアワーでも教員が教員室に不在の可能性がある.

その他

小テストまたは演習課題は採点後,内容チェックの上 Moodleにより返却する .
授業で使用する資料などはMoodleにて配布する.

1.「プログラミング基礎演習」を履修している事が望ましい.
2.パソコンでのキーボード入力の練習をしておくこと.
3.微積分、線型代数の基本的事項を復習しておくこと.

実務経験のある教員による授業科目