授業内容・計画(詳細)の情報


ページを読み終えましたら、ブラウザを終了させてください。

【基本情報】
2018年度 春学期  
授業科目名 コンピュータシミュレーション
曜日 時限 火-1
テーマ コンピュータを用いた社会現象・物理現象等の解析
キーワード シミュレーション コンピュータ 数値計算


【授業要旨または授業概要】
 
  コンピュータシミュレーションとは、実際の現象あるいは実験や開発モデル等を数式化し、コンピュータによる模擬実験を行って解析・研究することであり、自動車、航空機、船、建築物、宇宙開発等から地球環境、経済・経営、社会現象の解析に至るまで、あらゆる分野で利用され情報処理技術の一分野として重要な役割を担っている。授業では、連続系や離散系の各種例題によるコンピュータ実習を通して、コンピュータシミュレーションの基礎を学習する。
 本授業ではプログラム言語としてC言語を用い、プログラミング経験があることを前提に授業を展開する。ただし、授業内においてC言語についての簡単な復習を行う。また、コンピュータシミュレーションについて実例などを挙げたのち、離散系では待ち行列について、連続系では常微分方程式や偏微分方程式の数値解法について、実際にプログラムを作成する。 
また、コンピュータシミュレーションによって得られた計算結果を、コンピュータグラフィックス( C G ) で可視化して表現する手法を学び、様々な分野で活用できる応用力を養うことを目標としている。


【学修の到達目標】
(1)プログラム言語の復習と活用法について理解する
(2)問題に合わせたシミュレーション手法の活用法について理解する
(3)ポスト処理の手法について理解する
添付ファイル:科学計算プログラミング到達目標.pdf

【授業計画】
◆スケジュール
第1回 ガイダンス・コンピュータシミュレーション概説
第2回 数値計算における誤差と精度
	  (C言語で検証する数値計算の誤差と精度)
第3回 シミュレーションの基礎知識
	  (シミュレーションの種類)
第4回 確率モデルの基礎と検証
	  (離散系シミュレーションⅠ)
第5回 乱数生成プログラム
	  (離散系シミュレーションⅡ)
第6回 モンテカルロ法
	  (離散系シミュレーションⅢ)
第7回 待ち行列問題
	  (離散系シミュレーションⅣ)
第8回 オイラー法による常微分方程式の解法
	  (連続系シミュレーションⅠ)
第9回 ルンゲクッタ法による常微分方程式の解法(振動方程式を解く)
	  (連続系シミュレーションⅡ)
第10回 差分法による偏微分方程式の数値解法1
	  (連続系シミュレーションⅢ)
第11回 差分法による偏微分方程式の数値解法2
	  (連続系シミュレーションⅣ)
第12回 差分式の精度と陽解法・陰解法
	  (連続系シミュレーションV)
第13回 グラフィックス1
      (OpenGLによる2次元描画)
第14回 グラフィックス2
      (OpenGLによる3次元描画)
◆予習・復習
第1回
予習:シラバスを通読し、授業の目的および授業内容について不明な点を明らかにしておくこと
復習:C言語について各自の習得レベルに合わせた復習を行うこと

第2回
予習:C言語について、変数・配列・制御構文(if文による分岐、for文による反復)、について、資料を見ずにソースコードが作成できるよう復習しておくこと
復習:数値計算において生じうる誤差の種類について理由とその対策方法について理解すること

第3回
予習:シミュレーションの種類について資料を通読すること
復習:シミュレーションの種類について具体例も含めて理解すること

第4回
予習:C言語によるプログラミングについて、特に自作関数を用いたソースコードが作成でるように各自のスキルに合わせて復習しておくこと。
復習:確率モデルの種類と、合同法による乱数生成方法について理解すること

第5回
予習:確率モデルを用いた乱数の計算方法について資料を通読しておくこと
復習:合同法を用いて一様乱数を生成するプログラムを作成し、乱数の精度について確認すること。

第6回
予習:乱数生成プログラムを完成させておくこと(関数化)。
復習:モンテカルロ法による解法例を理解し、実際にプログラムを作成し正しい解が得られることを確認すること

第7回
予習:日常生活の中で行列ができる場面(ATM窓口や店舗の会計)を想定し、行列が生じる要因について整理しておくこと。
復習:待ち行列問題のための解法プログラムの流れを理解すること

第8回
予習:常微分方程式を使った実例や導関数の意味について理解しておくこと
復習:Euler法の適用による利点・欠点や前進法・後退法・台形法による精度の違いついて理解し、常微分方程式の解法プログラムから正しい解が得られるようにしておく

第9回
予習:Euler法による解法プログラムの流れを理解しておくこと
復習:Runge−Kutta法とEuler法との相違点について理解し、Runge−Kutta法を用いた常微分方程式の解法プログラムが正しく動作するよう修正する

第10回
予習:多変量を変数にもつ関数の微分方法として用いる偏微分について理解しておくこと。
復習:差分法を用いた近似手法について理解し、差分法を用いて放物型偏微分方程式を解くプログラムを完成させること

第11回
予習:偏微分方程式の種類(放物型・双曲型・楕円型)について理解すること
復習:差分法を用いて楕円型偏微分方程式を解くプログラムを完成させること

第12回
予習:陽解法・陰解法の相違点について調べておくこと
復習:行列計算アルゴリズムについて理解すること

第13回
予習:C言語での関数を用いたプログラミング手法について理解しておくこと
復習:OpenGL(またはPython言語とそのライブラリ)を用いて、シミュレーション結果を2次元画像として表示するプログラムの作成

第14回
予習:2次元描画で用いた並行投影に対して、3次元描画で用いる透視投影について相違点を理解し、13回授業で扱ったソースコードの中から並行投影を設定していた命令文の場所を確認しておくこと
復習:シミュレーション結果を3次元画像として表示するプログラムの作成
◆集中授業の期間
 

【履修上の注意点】
先修条件はない。
「I C T 入門」を履修済みであることが望ましい。
「プログラミング応用A 」または「プログラミング応用B 」単位取得済みと同程度の知識とプログラミング経験があることを前提として授業を進める。

【成績評価の基準および方法】
・学則および学修に関する規則に則り2/3以上の出席が成績評価の対象になる。
・大学が認める理由による欠席の場合は欠席確認届を提出すること。それ以外の欠席理由は原則として考慮しない。
・定期試験を実施する。
・配点は、100点満点中、課題50点、定期試験50点として総合的に評価する。
・到達度90%以上でS、80%以上でA、70%以上でB、60%以上でCとし、60%未満はE評価となる。出席回数が2/3に満たない場合は/評価となる。


【教科書・参考書】


【その他の教材】
授業では教科書は使用しない。
授業の進捗に合わせ順次資料を配布する。


【担当教員への連絡方法】
電子メールアドレス【課題提出用アドレスではありません!】
 n.arai@tokai-u.jp

授業名、学生証番号、氏名を必ず明記すること。

PAGE TOP