コンテンツにスキップ

高等学校情報/情報I/モデル化とシミュレーション

出典: フリー教科書『ウィキブックス(Wikibooks)』
※ 情報Iの単元(2023年現在)。
※ 旧課程では、情報B、「情報の科学」に合った内容。

モデル化

[編集]

世の中には、何かを確かめるために実験しようにも、本番で実験しようとすると、費用が掛かる、時間がかかる、命にかかわる、などの理由で、本番で実験するのが難しいことが多くあります。また、スポーツの試合とか手術は、そもそ本番は一度しか出来ません(※数研、東京書籍)。

そのような場合の対応を練習したり予測したりするため、実物・本番に似せたものを作って、代わりにそれで、実験または計算などを行うことがあり、そのような実物の代わりのものをモデルと言います(※日本文教出版ほか、)。

完全に実物そっくりではなく、知りたい事に関係のない、必要のない特徴については、似せません。

たとえば、駅の入り口にある路線図を考えてください。実際の地図上での長さと、路線図の長さは、まったく違います(※東京書籍など)。

そういう必要のない情報まで似せてしまうと、分析が難しくなってしまう場合もあるので、モデルでは、なるべく簡単に作ります。

このように、モデルを作る際は、単純化をします。単純化とは、その問題で本質的な部分だけを取り出し、他の部分の情報を省略することです(日本文教出版I、東京書籍I、第一学習社I)。


建築のモデルハウスの実物大の家なんかも、その名の通り、モデルです。モデルハウスのように、実物大のモデルのことを実物大モデルと言います(日本文教出版)。

自動車や航空機などの空気抵抗を調べる場合などは、なるべく実物大で行いますので(※数研出版)、このような抵抗実験における、代わりの実物大の模型も実物大モデルです。 、 実際より小さいミニチュアのモデルもよくあります。地図や地球儀などもそうです(日本文教出版)。


理科などの数式も、モデルの一種です。数式によるモデルを、数式モデルまたは数理モデルなどと言います(第一学習社、日本文教出版)。

たとえば、物理の運動方程式を考えるときは、その材質がビー玉かとか鉄球とか材質は無視して、単に質量が ××グラム の小さな硬い球を転がして、別の質量△△の四角い物体にブツけたらどうなるか、みたいに、予想に関係のない情報は省略して考えますが、このような省略もモデル化の特徴です。


なにも理科だけでなく、お金の計算もそうです(日本文教出版I)。

「毎月、貯金が1万3000円ずつ増えるとき、18か月後にどうなってるか?」という予想を考えるとき、どんな理由で貯金してるのかとか、誰が貯金してるのかとか、それは答えに関係ありません。


この運動方程式や貯金の予想などのように、検証したいことと関係の無いことが分かっている情報については、モデルでは再現しないのが一般的です。


化学の分子模型もモデルです(※開隆堂、数研、日本文教出版)。分子模型のように、ミクロの世界を拡大したモデルなど、実物より大きなモデルのことを拡大モデルと言います(※日本文教出版、)。


そもそも模型は英語で model (モゥデル)です。プラモデルもプラスチック模型。模型の「模」の字は、模倣・模擬の「模」。なお、一般的なプラモデルはミニチュアなので縮小モデルです(第一学習社)。


駅の入り口にある運賃の路線図も、あれもモデルです(※第一学習社)。実際の駅と駅どうしの距離と、あの図での駅と駅の距離は、まったく比例していません。駅の入り口のあの図で知りたい情報は、「どの路線にどの駅があって運賃がいくらか」といった情報なので、それ以外の情報は省略しているのです。

だから、駅の入り口のあの運賃のある路線図もモデルです。

なお、路線図やフローチャートなど、対象を図で表したモデルのことを「図的モデル」と言います


また、災害などは、命にもかかわるし(※数研出版)、道徳的にも理論を確認するために本番の災害を起こすのは問題ありますので、そのような分野でも、モデルは有用です。


モデルの分類

サイコロやくじ引きのような確率をふくむモデルを「確率モデル」と言います。

いっぽう、高校数学の方程式のように、確定した結果の出る、確率を含まないモデルを「確定モデル」と言います。


時間によって変化するモデルを「動的モデル」と言います。

たとえば、落下する物体の運動をあらわす方程式は、動的モデルです(実教 I)。

時間によって変化しないモデルを「静的モデル」と言います。

たとえば、円の面積と半径の関係の式は、静的モデルです(実教 I)。

※ ほか、連続モデルと離散モデル


シミュレーション

[編集]

実際の問題の予想や解決策を探すなどの目的で、なるべく実際に近いモデルを使って試行することをシミュレーションと言います(※数研など)。

コンピュータの無い時代からシミュレーションはあります(※数研)。たとえば、大地震が起きたときの感覚を体験する地震体験車もシミュレーションです(※第一学習社)。


コンピュータを用いたシミュレーションの場合、モデル化されたデータやプログラムをもとに、乱数を用いてシミュレーションできます(※ 東京書籍)。


シミュレーションの例

[編集]

たとえば、家を建築する際、いきなり建築するのではなく、現代では事前に3DーCGで建築結果の予想を表示できます。(※開隆堂、東京書籍)

また、家主・注文主に見立てたキャラクターの主観視点で、CGの家の中を歩き回って、観察することもできます(※開隆堂、東京書籍)。

※ もし仮に、シミュレーションしなかったとして、実際に家を建ててから問題点が見つかると、修理にとてもお金が掛かったり、そもそも直せなかったりする場合もあるので、なので事前にシミュレーションすることはとても大切です。


自動車の免許をとるための教習所には、普通、自動車の運転シミュレーターがあります。初心者が自動車の事故を起こしては大変なので、最初の練習などとして運転シミュレーターが教習所ではよく使われている(東京書籍I)。


他にも、航空業界では飛行機のパイロット訓練用などのフライトシミュレーターがあります。これは、パソコンゲームの「フライトシミュレーター」とは全く(まったく)の別に、実際の航空機のコクピットを模した大型のフライトシミュレーターというものもあり、航空業界ではパイロットの訓練に用いられています(※第一学習社、数研)。

失敗してもパイロットの命が安全です(※第一学習社)。

※ あと、第一学習社は述べていませんが、飛行機はとても値段が高く、たとえば数億円~数十億円もしますので(※あまり値段をwiki著者がきちんと調べてない)、節約にもなります。たとえコクピットを模したシミュレーターに1億円くらいかかろうが、それでも実際の航空機の数十億円とかと比べたら安上がりです。

ほか、電車の運転士のための運転シミュレーターもあります(※数研)。

※ ゲームセンターの「電車でGO」とは別に、鉄道会社での訓練用の運転シミュレーターがある。なんかテレビ番組で見た。なお、操作はだいぶ難しそうだった。


また、洪水などの災害予測でも、コンピュータを用いたシミュレーションが行われており、ハザードマップはこういったシミュレーションの成果で作られています(第一学習社)。


なお、気象の予測もシミュレーションです。気象の予測では、とても多くの要素を含んだ計算を行うため、大型のコンピュータ(スーパーコンピューター)が必要です(東京書籍I)。

自動車の空気抵抗の、コンピュータによるシミュレーションでも、スーパーコンピューターが一般には用いられます(※東京書籍I)。


「未来の人口予測」とか、ああいったのもシミュレーションです(日本文教出版I)。

道徳上、どうしても実物を使った実験ができないものもあり、そういう分野ではシミュレーションが問題の解明のためのヒントになります。


手術のシミュレータというのもあります(※ 数研、東京書籍 I )。なお、手術シミュレータは3D-CGを使う方式です(※ 数研)。


シミュレーションは、あくまで与えられた条件下での検証でしかないので、ほかの条件でも正しいとは限りません(※開隆堂)。よほど単純な現象をシミュレーションしている場合でもない限り、一般的にモデルは現実の一部しか反映していないため、得られるシミュレーション結果には誤差(ごさ)があります(数研出版)。

シミュレーションの誤差は何も科学技術や製造業などの分野だけでなく、たとえば衣料品の分野でも、マネキンに衣装を着せてみて問題なくても、実際に人間が袖を通すと途中で引っかかったりすることがあったりもします(※開隆堂)。

なので、シミュレーションをすべて正しいと考えることは危険です。


シミュレーションそのものを検証するための方法として、下記のような方法があります。

ほかの原理(モデル)を採用した別のシミュレーションで得られる結果と比較してみる。(※開隆堂)
物理的に実験をしてみる。

などです。

たとえば自動車会社では、まず形状などのデザインの設計時には粘土で実物大のモデルを作ったりします(※数研)。

※ たぶん、いきなり金属で試作品を作るとコスト高だし、ゴミも出るので、まず粘土などで作るのだろう。

また、強度の検証には、実際に、実物と同じ素材の車を作成し、それで衝突実験をします。

そうした実物大や実物での実験もしたうえで、並行・併行(※ともに「へいこう」と読む)して自動車会社ではコンピュータによる力学的な3Dシミュレーションも行っています(※開隆堂)。また、この強度シミュレーション用の自動車3Dモデルは、空気抵抗などを調べる空力シミュレーションにも転用されます(※東京書籍)。

前提として、自動車の3Dモデルを作る人が必要です。3D-CAD(スリーディー・キャド)と言われるソフトを使って、CADオペレーターなどと呼ばれる職種の人が、その3Dモデルを制作しています。

CADとは、Computer aided Design の略です。ここでいうDesign (デザイン)とは機械設計などの意味です。英語では設計もDesignです(美術的な意味がなくても英語では Design と言うこともあります)。

また、空気抵抗のシミュレーションのほかにも、精密な強度計算をする際も、事前に3D-CADでモデルを作る必要がある場合もあります(数研出版の傍注の図)。 (※ 有限要素法(FEM解析)っぽいシミュレーションの図だが、高校生には有限要素法は分かりっこないので詳細は省略。理系の大学の工学部の機械工学・土木工学の研究室くらいのレベルなので。理系大卒でも生物系とか情報系とか電気電子工学だと分からないレベルの難しさの内容。)

※ 検定教科書では、あたかも3D-CADで強度計算できそうな説明だが、それはやや不正確。応力解析(おうりょくかいせき)ソフトなどとは基本的にCADソフトは別物。ただし3D-CADソフトの中には、簡単な応力解析ができるものもある。
※ 有限要素法とかFEMとかは、けっして工業高校で習うような初歩の材料力学ではなく(もちろんその知識は必要だが)、さらにその発展系の応用的な理論の「弾性論」とか「弾性力学」という、とても難しい理系大学の高学年レベルの話。
(※範囲外)3D-CADは立体化だけでない

検定教科書では詳しく説明されてないのですが(そもそも検定教科書ではCADの2Dと3Dの区別すらしておらず、単に「CAD」の3文字だけで3D-CADの画面の応力解析の写真を見せている)、3D-CADは、けっして単に形状シミュレーションを立体化をしただけではなく、さらに部品どうしがぶつかっていないかとかの干渉のシミュレーション機能や、また、部品の「属性情報」の簡易的なデータベース機能を兼ね備えています。

これは、古い低価格の2D-CADには無い機能です。(最新の市販の2D-CADはどうだか知りません。)

なお、3D-CADのデータベースはあくまで簡易的なデータベースなので、それとは別に本格的なデータベースソフトも必要です。本格データベースソフトと3D-CADとの連携をラクにするためのアドオンなども既に開発されています。


自動車会社は、開発費用を削減するためと、その上で製品の安全性や信頼性などを確保した設計をするため、実験に基づいた精度の高いシミュレーションを開発して活用しています(※数研)。


※ 開隆堂がランダムウォークのシミュレーションを説明しているが、wikiでは説明が面倒。
※ 日本文教出版Iがデジタルツインを説明。興味ない。
※ 「待ち行列」を第一学習社と開隆堂。第一学習社は2ページ、開隆堂は2行。
※ モンテカルロ法を実教I 、数研出版で確認。


そのほか、借金が数年後に利息でどんだけ増えるかのような、数学の教科書の文章題にあるような問題も、シミュレーションと言えます(第一学習社)。コンピュータを使えば、対数関数表とか使わなくても表計算ソフトとかだけで計算できます。

モンテカルロ法

[編集]

モンテカルロ法とは、乱数をもちいて偶然性を再現して、それでシミュレーションを行うことです。コンピュータの乱数機能を用いて、モンテカルロ法のシミュレーションをできます。たとえばEXCELのRAND関数でもモンテカルロ法を出来る場合もあります(※実教出版)。歴史的には、コンピュータを使わなくても、サイコロや、トランプのシャッフルなどを使ってモンテカルロ法をしていた時代もありました(数研出版)。

一度だけの実験だと、片寄りがあるかもしれないので、モンテカルロ法では最低でも10回くらいは実験して、全体的な結果を分析します(実教I、数研、開隆堂)。

なお、数学の確立論の用語で「大数(たいすう)の法則」といって、おおむね「試行回数が多いほど、その確率予想の精度が良い」という感じの法則が知られています(詳しくは数学Aを調べてください)。モンテカルロ法で1回だけでなく何回も実験するのは、大数の法則を前提にしています。

※ モンテカルロ法と名前だけ聞くと難しそうですが、しかしその名前の由来は、国営カジノで有名なモナコの地名「モンテカルロ」にすぎません。数学者ジョン・フォン・ノイマンがモンテカルロ法を命名して確立したと言われています(数研)。なので、やってることも、サイコロやトランプやRAND()関数とかを使って偶然性を再現しているだけにすぎません。


・モンテカルロ法と円周率

実教出版と開隆堂の例ですが、モンテカルロ法を使って面積の近似値を求めることもできます。たとえば、90度の扇形の面積を実教Iは求めています。

「扇の範囲内の面積」:「扇の外の面積」 ∝ 「扇の範囲内に入る確率」;「扇の外に出る確率」

の関係を利用しています。なお、扇の内部か外かの判定は、ピタラスの定理を使った距離の計算で、できます。

この結果を用いて、円周率の近似値を求めることも、よく情報系の教育書では行われます。


VBAマクロ無しの表計算ソフトでも円周率のモンテカルロ法は可能ですが(実教がマクロ無し)、もしかしたらVBAマクロでプログラミングしたほうがラクかもしれません(開隆堂はマクロありで求めている)。

VBAの数値データを使う際、VBAのinteger(整数型、 -32768~32767) や Long (長整数、 -2147483648~2147483647)や Single(単精度浮動小数点数型) や Double(倍精度浮動小数点型) などのデータ型を勉強する必要があります。

たとえば、「変数 x を整数型で宣言したい」という場合は、

Dim x As integer

のように記述することになります。


他の言語だと、少数も整数も区別しないでも使える言語もありますが、しかしコンピュータでは小数は精度があまり良くないので、なので本来なら整数型と小数型を区別するのが、数値の精度の良い言語です。

たとえば、OSなどを作るのにつかわれるC言語でも、整数型と小数型とは区別しています。


その他

[編集]
(※範囲外)物理学科では流体力学とか実は深くは習わない

流体シミュレーションとか有限要素法とかの話題が出ましたが、

じつは大学教育では、そこらの分野の前提である物理学である「流体力学」とか「弾性力学」とかの理論は、本来なら物理学の一種ではありますが、しかし日本では大学の物理学科では、あまりそこまで深くは習いません。なぜなら、流体関係の研究室のある物理学科は、少ないのです。有限要素法とか弾性力学とかも同様、物理学科にその研究室のある理系大学(総合大学の理系学部も含む)は少ないのです。

それらの研究室があるのは、難関大学の工学部になります。物理学科でナビエストークス方程式とか習うのは、それすら計算は難しいですが、しかし流体力学の知識では初歩です。機械工学や土木工学では、もっと発展的な内容があります。

いちおう、他学部・他学科の科目の履修とかも規制緩和で可能ですが、なので物理学科の人が制度的には同大学の機械工学とか土木工学とか履修できますが(その学科が同大学にあれば)、しかし大学によっては理学部と工学部で校舎が離れていたり、時間割が自学科の必修科目の時間と重なっていたりとか、色々と実行は困難かもしれません。

物理学は内容が広すぎるので、じつは物理学者だけでなく工学者など隣接分野の学者とも共同して物理学は研究されています。進路など考える時は、ご参考に。

なお、機械工学も土木工学も、別に数学のように論理的に考えることを目的とする分野でもなければ、物理法則を解明することを目的とする分野でもないので、そこは勘違いしないように。

難しい計算ができたからといって、就職や収入が良いとも限らない。あくまで、開発費用の削減のためにシミュレーションを行っている(※東京書籍 I)のにすぎないので。

情報IIの範囲

[編集]

モデルを数式で作る際、次数を増やしすぎたり、変数を増やしすぎたりすると、見当違いの結果が出やすくなることが知られており、これを過剰適合(かじょう てきごう、over fitting)やオーバーフィッティングなどと言います(東京書籍、日本文教出版の『情報II』)。

※ 過剰適合については、詳しくは『高等学校情報/情報I/データの活用#情報IIの範囲』を参照せよ。