第一回
2002/10/07

『シミュレーション概論』 講義メモ No.1 (10/7)

1.使用するシステムについて (A303演習室の制約)

  ・ パソコン
    Windows2000
     WEB利用: 講義ノート,各種連絡
     電子メール: 個人的指示/レポート提出,質問など
     プログラミング: Visual Fortran,Visual C++
     エディタ: 「メモ帳」「NotePad」
    Linux

  ・ UNIXワークステーション(別に申し込みが必要)
     Windows2000 から telnet利用
     ws24.ipse.media.kyoto-u.ac.jp
     エディタ: Mule
     Fortran90利用可。

  Fortran,telnet,ftp等の利用については → 『計算理学基礎論』講義資料


<プログラミング言語の特徴>
  Fortran  コンピュータがブラックボックスであった時代に開発された一般ユーザ用の言語で,もっとも歴史が長い。「数式をそのまま書ける(Formula Translator)」形に設計されていて数値解析に最適で,多くの数学関数やサブルーチンがライブラリパッケージとして蓄積されている。現在でもスーパーコンピュータや並列計算機を駆使した大がかりな計算やシミュレーションには主としてFortranが用いられる。グラフィックスが困難(一般的には別のパッケージが必要)

  C,C++  メインメモリやグラフィックスなどハードウェアを直接操作することによりコンピュータの特性をフルに生かしたプログラミングが可能で,効率的かつ多彩なデータ処理ができる。グラフィックスも標準で可能。

  VBA    マイクロソフトExcelに装備されたVisual Basicの簡易版であり,数値計算結果を直ちにグラフ表示できるから使いこなすと便利。「Excelで学ぶ流体力学」なんて本も出ている。

 この講義で扱うレベルの数値計算では,いずれの言語でも大差はない。


2.計算機シミュレーションとは?

・ 計算機の大量/高速数値データ・画像処理能力を有効利用した模擬実験

・ どのような場合にシミュレーションが必要/有効か?

  a 実験が困難あるいは不可能な場合

    例 原子炉の破壊限界や核爆発
        航空機や船舶の設計 『風洞実験』(模型実験)
      地球/宇宙規模の自然現象 例地球シミュレータセンター

  b 複雑な現象の中の本質的な要因を抽出したいとき

    → 純化した理想的理論モデルで実験してみる。
      自然科学・社会科学を問わず広く普及してきた探究方法

  c シミュレーションでしか解明し得なかった法則性もある。

    例 予知不可能な決定論的運動(後述)

  d 直観的理解を得るためのデモンストレーション教材


3.計算機シミュレーションの実行

  1) 何を知りたいか,明らかにしたいか?
  2) シミュレーションしか方法がないのか?
  3) 計算全体の設計
  4) 計算の各過程のアルゴリズムの検討
  5) プログラミング
  6) 試行と実行
  7) 結果の表示
  8) 解析・吟味/再実行

  実践の前に身につけておかなければならない基礎知識 = この講義の主要テーマ
  − 課題が目の前に迫ってくると,こんなことカッタるくってやってられなくなる! −

 @計算機の特性(限界)を知ること
   ・占有メモリと計算時間の節約: 計算の規模に関係
   ・ディジタル計算機特有の誤差: 計算結果の信頼性

 A数値計算の基礎    シミュレーションでは数値解析を避けることはできない。
   基本的な計算要素のアルゴリズム


(付)力学運動の決定論性と予知不能性

 ニュートンの運動方程式: dx/dt = p/m ,dp/dt = F(x,p)

は,運動状態を表現する位相空間 (x,p) のある状態(点)から時間dt後の状態(点)への写像を与えている。

この,時間をパラメータとする点の集合から集合への写像 L(t)が
         L(t1+t2) = L(t1)L(t2)
を満たすとき,一般に「力学系」という。

ある瞬間の状態(点)を与えれば,次の瞬間,その次の瞬間...と,その後の運動状態は未来永劫に一意的に決定される。(力学過程の決定論性

例 dx/dt = p , dp/dt = -x → x(t) = x0cos t + p0sin t , p(t) = -x0sin t + p0cos t
 
  これで,t秒後の運動状態は直ちにわかる(=予知できる)。

力学の教科書: 『次の運動方程式(微分方程式)の解を求めなさい。』


実は,この世の中の運動を表す微分方程式は解を持たない(積分形に書けない)ことの方が一般的なのである。

→ 出発点を与えれば行き先(軌跡)は決定されているにもかかわらず,それがどこであるかを予め知ることは出来ない(予知不能性)。

→ 数値積分して,次の瞬間,その次の瞬間...と微小変化を積み重ねて軌道をたどっていくしかない!

→ 計算機の出番だ! (あとはビデオ・デモンストレーション: ある散逸力学系の例)

実際の運動では,空気の摩擦や風など予測できない要因があるため,厳密に決定論的とはいえない(=確率論的運動)が,いかに単純化・理想化したとしても,この意味での本質的な予知不能性が存在する。→ 超簡単な解説記事 『運動の決定論性と予知不能性』