カーメの思いつき

カーメの思いつきで書くブログ。関心のある分野について書きます。

シミュレーションって難しいよねっていう話

みなさま、こんにちは。

今回は、少し仕事の話をしたいと思います。
シミュレーションについて最近よく思うことを書きます。

シミュレーションといっても、ここでは物理シミュレーションを扱います。

結論

この記事の結論を先に書くと、
シミュレーションはモデル化が全て
ではないかということです。

何が何だかよくわらかないと思いますが、ここから説明します。

書こうと思った経緯

まずここで、シミュレーションの話をしようと思った経緯を説明します。

筆者の仕事について

私は理系院卒で現在、某メーカーで技術職として働いています。
商品開発をする部署にいるのですが、マーケティング部門や営業部門からの要望で
いろいろなシミュレーションに係ることがあります。

ここで色々なというのは自分の専門分野のものもあれば、ぜんぜん知らない分野のものもやることがあるということです。
さらには自分の専門分野であっても初めて出会う評価指標を算出しなきゃいけないこともあります。

シミュレーションの依頼

ちょっと愚痴っぽくなりますが、実際には「よくわからないけど、自社内でなんかできるらしいからやってみて」みたいなことも多いです。
そもそもシミュレーションの実施目的はいろいろあるのですが、

  • カタログや提案書の中でエビデンスとして使用する数字が欲しい
  • 開発の際に比較するために数値が欲しい

といった経緯が多いイメージです。

なので、社内で使用するレベル感のものと社外へ出すレベル感のものが混在することになります。

実際には社内での比較用ということで算出した結果が、知らない間に提案書に組み込まれ社外のお客様に提出されていた、、みたいなこともあります。

よくあるすれ違い

これは個人の考察になりますが、社内で依頼してくる側に シミュレーションができればどんなことも分かる という意識があるように思います。もちろんこれは、そうあるべきですし。そうある方が望ましいと思います。
しかし、必ずそうなるわけではないので、うまくそのことを伝えられないといけません。

シミュレーションって

ここで、そもそも物理シミュレーションって何だろうかということについて思っていることを書いていきます。
これは筆者の主観が大いに反映されているので「ここは違うだろう」とか「もっとこういう意味だろう」とかありましたらコメントいただけると助かります。

シミュレーションの大枠

そもそも、シミュレーションというものの意味は以下のように説明されています。

シミュレーションとは、物理的に異なったシステムで他のシステムの振る舞いを予測したり評価したりする

書籍『シミュレーション辞典』(コロナ社)より

ここで、他のシステムの振る舞いを予測するために用いるのがモデル化になります。よって私は以下の図のように理解をしています。

なお、モデル化条件設定という用語が、一般的な用語かどうかはわかっていません。

モデル化とは

そもそも現実でリアルに起きている現象を計算可能な形に置くというステップがあり、その計算式を構成することをモデル化としています。

実際に中学や高校の物理では、このモデル化がすでに行われている問題を解くということを行っていたと思います。モデル化された上で、そこに計算条件を入れて計算していたわけです。

条件設定とは

上の図の右側のステップのことを(ここでは)条件設定という風に呼んでいます。これは、実際に数値を算出する(テストの問題を解くために)計算に必要な条件を設定するということです。
勝手な思い込みですが、この条件設定こそが、シミュレーションをやる上で最も重要であるという風に思っている人が多い気がしています。(もちろん重要ですが、、、)

とは言ってもよくわからない話だと思うので次の章で実際の例で説明します。

シミュレーション例

物を落とした時に何秒後に地面に着くのか

この例をシミュレーションとはおそらく呼ばないとは思いますが、、
これは、高校物理で出てくる簡単な例です。

この例におけるモデル化は、「落下している物体には重力のみが働く」ということになると思います。つまり、自由落下運動を考えるということになります。

このモデル化の上で t = \sqrt{\frac{2h}{g}}という式で計算することができます。
ここで、 tは、求める時間、 gは重力加速度、 hは落下する距離です。

なので、整理すると
モデル化 : 自由落下運動
条件設定 : 重力加速度、落下する距離
ということになります。

モデル化の前提条件

ここで、あまり意識されていませんが、モデル化の前提について説明します。
それは、この例では落ちる物体は質体としているというものです。すなわち、物体の大きさが0という前提です。
さらに、大きさがないので空気抵抗も無視しています。分裂することもありません。

リアルとの差

このようにモデル化の時点で実際には様々な条件が隠れています。

この例では、高さ2mくらいから落とす場合はほとんどリアルな結果と変わらないと思いますが、1000mくらいから物を落とす場合を考えようとするなら話は変わると思います。おそらく、空気抵抗を含んだモデル化をしないと実際との乖離が大きくなります。

意識したいこと

このように、シミュレーションを行う際にはモデル化を考えた方がいいと思っています。

しかし、実際には計算に入れる条件の方を精密に求めるということが多い気がしています。
例 高さ2m を2.01mというようにして入れる数値を細かくする

シミュレーションを行う目的によるとは思いますが、このような精密化はほとんど意味がないと思っています。

さいごに

この文章を読んでくださった方のお役に少しでも役立ちましたら幸いです。
ありがとうございました。