地学、地学概論
シミュレーション計算を表計算ソフトウェアでやることについて (メモ)
対象の状態をあらわす数量が時間とともに変わっていくのを追いかけるようなシミュレーションには、
プログラム言語でプログラムを書いたほうがよいと思う。
しかし、表計算ソフトウェアには慣れているが、
プログラム言語処理系を用意することは重荷と感じる人もいるだろう。
時間変化のシミュレーションは、
ワークシートに計算式を書きこむ方法でもできるので、
その実行例も用意することにしたい。
ただし、このやりかたには、いくつも難点がある。
みなさんには、複雑なワークシートをつくるよりも、プログラム言語を使えるようになることを勧めたい。
- セルに式がはいっていても計算結果の数値が表示される。これは便利である反面、式がはいっているのか数値がはいっているのか、そのセルにカーソルを持っていって内容を見ないとわからない、という欠点でもある。うっかり数値で上書きしてしまうと、意図したシミュレーションのプログラムでなくなるが、それに気がつかないおそれがある。
- 計算式の中で、ひとつ前の時間ステップの値を参照するには、セルの「相対参照」を使うが、パラメータ値のはいったセルを参照するには「絶対参照」を使う。
計算式をコピーすると、相対参照のセル番号はつけかわるが、絶対参照のセル番号は変わらない。
このどちらを使っているかも、まちがえやすくできている。
- (わたしはそうならないように注意して書いているが) もしセル間で双方向に依存するような式を書いてしまうと、計算結果が不確定になる(セルの値を決めていく順序に依存してしまう。)
- 計算対象が、空間次元をもたない変数からなる (わたしの表現でいう) 「0次元モデル」ならば、
シートの縦方向に時間が進むようにすれば直観的にもわかりやすく計算できるが、
空間次元をもつモデルだと、表現がむずかしくなる。
(そのうちでも、1種類の変数で、空間1次元のばあいにかぎれば、空間と時間との2次元の表で表現できるが、
変数の種類あるいは空間次元の数がふえるとむずかしくなる。
複数のワークシートから構成される「ブック」で、シートにまたがる計算を記述することはできるが
直観的にわかりやすくならないことが多い。)
(2020-06-14) 2022-01-23
増田 耕一 (MASUDA Kooiti)