高校物理アシストサイト 「アシスト君」
目次 (クリックすると,各章へジャンプします)
1 モデリングについて
2 モデラスのインストール
3 モデラスの紹介
4 実習:等加速度運動(ステップ・バイ・ステップ)
5 課題:投げ上げのモデルの作成
6 実習:等加速度運動(微分型コード)
7 課題:水平投射を微分型で作成
8 課題:斜方投射の作成
9 課題:次の中から選択して作成
10 課題:単振動
11 課題:各自課題を見つけてモデリングする
12 組み込み関数
高校生が家庭学習として使えるように,実習マニュアルを書きました。
読むべきところが多いため,時間がかかりますが,ひとつの章に1〜2時間くらいかけて取り組んでください。
なお,このページは「アドバンシング物理研究会<京都・和歌山>」の協力を得て作成しました。
従来,高校物理では理論と実験と問題演習が中心の学習スタイルが続いてきました。しかし科学の方法の一つにモデリングがあります。
モデル=模型を考え,ときには組み立てて検討するというのは日常生活でも少なからずあります(たとえば駅までの近道を考えたり,工作をする前の準備段階など)。また専門の研究者はコンピュータも用いてモデル化を図り,そのモデルの妥当性や将来の予測なども考えています。
ただ,コンピュータではどうしてもプログラム言語というハードルが高く,普通の高校生には取り組みが難しい状況がありました。
ここで用いるソフトは,「モデラス」(Modellus)というソフトです。「モデラス」は,物理をはじめとする自然現象のモデリングの教育用に開発されたソフトで,扱いがとても簡単で,コンピュータ言語をまったく学ばなくても,モデルを変更したり,新しく書いたりすることができます。
ここでの目的は,「モデラス」の練習をすることよりも,物理現象を探究することとモデリングの意味を考えることにあります。
2 モデラスのインストール
次のURLにアクセスします。
http://phoenix.sce.fct.unl.pt/modellus/downloads.php
「Modellus 2.5」のバージョンをインストールすることにします。
ただしパソコンはWindowsでないとダメです。Windows98,Me,XPなら問題ないはずです。
E-mailの欄は2回目以降のアクセスで入力するようです。初めてのときは,[Register Here]をクリックして次に進みます。
次に,下のような画面になる。NameとE-mailは記入の必要あり。Addressは空白でも大丈夫。
[Submit]をクリックして次に進みます。
次の[Download Modellus]をクリックして次に進みます。
いよいよ最後の画面。イギリスの国旗をクリックすると,英語版がダウンロードできます。
残念ながら今(2006.10.)のところ,日本語版はありません。
上下2段ありますが,上の段はModellus本体と少しのサンプルファイルですが,下の段の方はModellus本体とたくさんのサンプルファイルが含まれています。
ファイルサイズは大きいですが,ここは下の段の方をダウンロードしましょう。
ダウンロードが終われば,そのファイルをダブルクリックでインストールしてください。
英語ですが,何となく分かると思います。
(1)念のためコンピュータを再起動させ,パソコン本体を立ち上げてください。
以下の実習では,m-files.zipを右クリックでダウンロードして,新しいフォルダに解凍しておいてください。
(2)解凍したファイルの中に「UNARI.mdl」というファイルがあります。ダブルクリックすると,「Modellus」のソフトが起動し,該当のファイルが読まれますので,そのまま「Modellus」を活用することができます。
(3)起動しない場合は「関連づけ」を設定します。たとえば「加速度diff.mdl」というファイルをダブルクリックすると,WindowsXPの場合「このファルは開けません・・・・・」というようなメッセージに困るのですが,「一覧からプログラムを選択する」にチェックを入れてOKをクリックします。
次に「参照」というボタンをクリックして,Program Filesというフォルダ内のModellusというフォルダ内にModellus.exeというファイルがあるので,これを選んで「開く」をクリックします。その後「OK」で,あとはだいたい分かると思います。
次からは拡張子が.mdlのモデラスファイルを開けやすくなると思います。(つまり例えば「単振動.mdl」をダブルクリックすると,自動的にモデラスが起動するはずです。)
(4)「UNARI.mdl」はタイトル通り,振動数の異なる2つの波によるうなりを表すモデルです。「Modellus」の練習も兼ねて,分かる範囲でいろいろ操作してみましょう。
↑この画像をクリックすると,大きいサイズの画像が表示されます。
(WindowsXPなら画像右下の四角いマークをクリックすると,大きく見える場合もあります。)
各ウィンドウとコード
Modelウィンドウ どんな動きをさせるかを数式モデルで表したものです。 Controlウィンドウ アニメーションを動かしたり,停止したりとコントロールするところです。 Notesウィンドウ 操作の仕方や注意などを記してあるところです。 Initial Conditionsウィンドウ 初速度,加速度など定義されているデータを与えるところです。 Graphウィンドウ 縦軸と横軸を選択して,グラフを描くところです。 Animationウィンドウ 実際に動きを見るウィンドウです。コントロールウィンドウのをクリックして,動かします。
一旦モデラスを終了してください。
モデラスは同時に2つ以上のファイルを開くことが来ません。
4 実習:等加速度運動(ステップ・バイ・ステップ)
解凍したファイルの中の「加速度step.mdl」というファイルを開いてください。
Modelウィンドウのコードの説明
コンピュータプログラムでは「=」は「代入」の意味です。つまり1行目は,
さっきまでのv + 加速度×微小時間 をあらためてvに代入せよ
という意味になります。
では2行目はどうでしょうか。
さっきまでのx + 速度×微小時間 をあらためてxに代入せよ
ここで,xは変位,vは速度,aは加速度,Δtは微小時間を表します。またx,v,aはベクトル量であり,右向きを正とします。
実際にこのウィンドウに式を書くとき,Δを使いたいときは青矢印のボタンをクリックします。
またlastを使いたいときは赤矢印のボタンをクリックします。
Modelを書き終えたら,Interpretというボタンをクリックして終了です。
すこしでもModelを変更したら,必ずInterpretをクリックしなければなりません。
ちなみに,Modelウィンドウで「 ; 」(セミコロン)を文頭に付けると,コメント行として認識されます。でも日本語は入力できません。
つぎに微小時間とは一体何秒なのでしょうか? それはContorolウィンドウで定義します。
Options...というボタンをクリックすると,右図のようなウィンドウが現れます。
青矢印:微小時間Δtのことです。
赤矢印:0秒〜10秒まで行います。
緑矢印:角度の単位を「度」にするか「rad」にするか決めます。
黒矢印:ファイルを開くと同時にプログラムを始めることができます。
Initial Conditionsウィンドウの説明
パラメータや変数の初期値を決めるところです。
コマンドメニューの「Case」に「Add」というコマンドがあります。これでcaseを追加できます。
この例では3つのケースを登録しています。現象にどのような違いが生じるか,予想ができますか?
Graphウィンドウの説明
このウィンドウは複数出すことができます。縦軸と横軸は簡単に選択できます。
Adjustをクリックすると,枠内に収まるよう自動的に調節してくれます。
赤丸のところに3つの小さな正方形があります。
この色と,Initial Conditionsウィンドウの3つのcaseの色が同じですね。
つまり3つのcaseを同時にグラフに表示が可能です。
Animationウィンドウの説明
実際にプログラムを走らせていると,このウィンドウでアニメーションを描くことができます。
あるいは定数や変数を表示させることができます。
またこのウィンドウから変数を入力することも可能です。
caseに合わせてアニメーションが変わりますが,同時に複数のcaseを描くことはできません。
さらに緑色の丸いオブジェクトを右クリックして,その属性を細かく設定します。次の図のように,横軸はxとして設定してあり,さらにx=0.3で画面上を1ピクセル移動するようになっています。(ピクセル・・・・画素。画面を分割したときの最小単位) またAttributesのチェックは目的に合わせて設定してください。
この例でスポーツカーが使用されています。この画像は必ず,モデラスファイルと同じフォルダにおいてください。
このような制約のため,今後皆さんが製作したモデラスファイルは,一つ一つ異なるフォルダに入れることにしましょう。混乱を避けるため必ず守ってください。
アニメーションを描く上で役立つのが右図の10個のアイコンです。
簡単な説明はウィンドウ下部に出ます。
@ オブジェクトを移動するときのモード。
A particleなどを描けます。
B ベクトルを描けます。
C レベルインジケーターを設置できます。
D アナログメーターを設置できます。
E プロッターとして,グラフなども書けます。
F デジタルメーター,つまり数値を表示します。
G 画像をインポートできます。
H 説明文などの文章を埋め込めます。
I 5種類の幾何学的なオブジェクトを置けます。
@以外は右クリックで詳細を決める必要があります。
※丸数字でごめんなさい
●ファイルの保存について 【重要】
(1)Modellusはおそらく16bitアプリケーションのため,長いファイル名をつけることができません。
例のように「全角4文字+.mdl」または「半角8文字+.mdl」の制約を受けます。
ただし,保存した後に,ファイル名を長いものに変更してもトラブルはないようです。
良い例:加速度.mdl 加速度あ.mdl accelera.mdl 125加速.mdl
悪い例:加速度運動.mdl acceleration.mdl
(2)モデラスで作ったファイルを名前を付けて保存する場合,そのフォルダは標準ではインストールしたフォルダになってしまいます。
せっかく作ったファイルが行方不明にならないためにも,ファイル管理には気をつけてください。
(3)ここで皆さんが作ったモデラスファイルは皆さんに著作権があります。
そのことを示すために,また誰の作ったものか紛らわしくなったときのために,Notesウィンドウに自分の名前を書いておくようにしてください。
5 課題:投げ上げのモデルの作成
物体の投げ上げ運動をステップ・バイ・ステップの考え方でモデル化してください。
case,Graph,Animation , Initial Condition 各ウィンドウも使いましょう。
6 実習:等加速度運動(微分型コード)
「加速度diff.mdl」というファイルを開いてください。
Modelウィンドウが上図のように記述されています。
「モデラス」ではこのように,微分型でコード(プログラム)を書くことができます。
このような式を微分方程式といい,その微分方程式を満たすような関数を求めることを、「微分方程式を解く」といいます。
しかし、かならずしもきれいな関数の形の解が求まる、つまり微分方程式が解けるとは限りません。
「モデラス」のモデルは微分方程式の形で与えることもできます。(しかし、微分方程式を数学者のように解くのではなくて、与えられた微分の関係式にもとづいて、ある上手い方法の内部の数値計算によって、近似計算をして行きます。)
ここでは微分の計算式を使って物理現象を表現して、そのモデルを動かすことによって、もう一度探究してみましょう。
Modelウィンドウの説明
特に説明は不用ですね。ただし,1行目はなくても同じように作動します。
Tableウィンドウの説明
実習1では説明しませんでしたが,Tableウィンドウというウィンドウも作れます。
これはtのstepごとに変数(定数も)がどのような値を取るか,表形式で示されます。
この値をすべてコピー(下図の赤丸のアイコンをクリック)してエクセルに貼り付けると,2次活用できます。
Animationウィンドウに日本語を表示させる方法
「text」ボタンをクリックし,ウィンドウ内で左クリックすると,下図のようなウィンドウが現れる。
赤矢印のところに日本語を入力するだけでは,正しく表示されない。
そこで赤丸の「Font」ボタンをクリックする。
すると下のようなウィンドウが現れる。
「フォント名」のところで「MSゴシック」を選び,「文字セット」が「日本語」になっていることを確認しよう。
サイズは好みのものを選んで下さい。
最後に「OK」を押す。その後上図のようなウィンドウに戻り,もう一度「OK」を押せばよい。
7 課題:水平投射を微分型で作成
水平方向の変位をx軸(右向きを正),鉛直方向の変位をy軸(上向きを正)として水平投射の運動をモデリングしてください。
重力加速度をgとし,Initial Conditionsウィンドウで具体的な値を設定すると便利です。
念のため,名前を付けて保存しておきましょう。
斜め上方に投射された物体の運動をモデリングしてください。上の課題のファイルをもとに作ってもいいでしょう。
角度は「度(degrees)」なのか「ラジアン(radians)」なのか決めて下さい。
保存の際は,別の名前で保存してください。
9 課題:次の中から選択して作成
(1)燃料を減らしながら進むロケット
→ 運動方程式,速度や加速度の微分的記述
(2)空気抵抗力を受けながら鉛直に落下する物体
→ 運動方程式,速度に比例する空気抵抗力,速度や加速度の微分的記述
(3)液面から落とし,浮力を受けてやがて上昇する物体
→ 運動方程式,浮力,速度や加速度の微分的記述,
速度に比例する抵抗力のない場合とある場合
(4)ばねに取り付けたおもりの運動
→ 運動方程式,フックの法則,速度や加速度の微分的記述
速度に比例する抵抗力のない場合とある場合
10 課題:単振動
「単振動.mdl」というファイルを開き,まず走らせて下さい。
提示したモデルは振幅がA=10,振動数がf1=100[Hz]の単振動y1で,t=0.0005ごとにステップするようにデザインされている。
これを元に,次のモデルを作成してみましょう。
(1) 振幅は同じで振動数が5Hz異なる単振動y2を追加し,Animationウィンドウで縦軸をy2,横軸をtとしてプロッターも追加して下さい。
(2) さらにy3=y1+y2を追加し,y3を描くプロッターも追加して下さい。
(3) このy3は何を表していますか? また公式も確認してみよう。
もし図が見にくい場合は,何を工夫すればいいですか? またGraphウィンドウも使ってみましょう。
(4) caseを利用してf2を2倍振動や3倍振動にし,そのときの合成波形を見て下さい。
11 課題:各自課題を見つけてモデリングする
適当なものが見つからない場合は,次の中から1つ選択してモデリングする。
(1)モンキーハンティング
(2)缶ジュースをストローで飲んでいるときの系の重心移動モデル
(3)等速円運動と単振動の関係を表示
(4)ドップラー効果のアニメーション
(5)n倍振動の重ね合わせ,およびそれぞれの振動の振幅を調節したときの波形の変化
(6)底面積100[m2]の円筒形タンクに水が深さ5[m]だけ入っており,現在,水が毎秒10リットル注ぎ込まれている。同時にタンクの底の穴から,水の深さに比例した水量が流れ出している。初めは水の深さが5[m]で一定であった。20秒後から注入する水量を1.5倍にしたとき,何秒後にタンクの水の深さは一定になるだろうか。またそのときの水の深さは何mだろうか。水の深さの変化を表すグラフも作成してみよう。ただしタンクの深さは十分深いとします。
12 組み込み関数
関 数 使 用 例 平方根 sqrt(2) サイン(正弦) sin(w*t) コサイン(余弦) cos(w*t) タンジェント(正接) tan(5) セカント(正割/コサインの逆数) sec(2) コセカント(余割/サインの逆数) cosec(a) コタンジェント(余接/タンジェントの逆数) cotan(a) アークサイン(サインの逆関数) arcsin(0.5) アークコサイン(コサインの逆関数) arccos(0.5) アークタンジェント(タンジェントの逆関数) arctan(0.5) 自然対数(底がeの対数) ln(5) 常用対数(底が10の対数) log(10) 乱数 rnd(10)
0〜10の間の乱数を発生整数乱数 irnd(10)
0〜10の間の整数の乱数を発生絶対値 abs(-5) 整数化 int(5.3)
結果は5
訳者注:小数部分を切り捨てる四捨五入 round(a)
aの小数部分を四捨五入階乗 fact(5)
5!=5*4*3*2*1=120符号 sign(a)
a < 0なら -1
a > 0なら 1
a = 0 なら 0