第11週


Mathematica を使う1


今週は Mathematice というプログラムを使ってみましょう。 Mathematica は「皆さんの代わりに計算してくれるソフトウェア」 「数式処理ソフトウェア」「数値視覚化ソフトウェア」など 色々なとらえ方があると思いますがとにかく使ってみて理解しましょう。 最初は非常に簡単な計算から始めましょう。

*小学校の算数

次はもう少しだけ難しい計算をしましょう。

*中学校の数学

次は高校レベルの数学です。

*高校の数学

次は大学レベルの物理に関係した数学です。

*大学の物理に関係した数学

Mathematica を楽しめたでしょうか。 mathematica を終了するには「File」プルダウンメニューの「Quit」を 選んで下さい。

それでは今週の課題です。

+今週の課題

これで今週の授業は終わりです。 お疲れさまでした。


ホームに戻る
スケジュールに戻る

小学校の算数

とにかく Mathematica をスターとしましょう。 以下のコマンドを実行して下さい。

    % mkdir week11
    % cd week11
    % mathematica &

「mathematica」はウィンドウ環境で使用できる Mathematica をスタートする コマンドです。 Mathematica にはこの他に文字端末で使用できる Mathematica を立ち上げる コマンド「math」もあります。 では簡単な計算をしましょう。

    1+2

簡単な計算ですね。 答を出すにはリターンキーをたたけばいいと思うかも知れませんが mathematica の場合にはシフトキーを押しながらリターンキーをたたきます。 これは忘れないで下さい。 他の計算もやってみましょう。

    10-5
    3*4
    3 4

最後の「3 4」はかけ算の意味です。 Mathematica ではかけ算は数学の数式を書いた場合と同様に数字 あるいは変数の間に空白を空けるとかけ算の意味になりますので 覚えておきましょう。 更に計算をしましょう。

    1/2
    1./2.

最初の計算の答えは分数で出てきましたね。 Mathematica では計算精度をできるだけ失わないようにするために このような計算をします。 2番目の例では計算式の中の数値が整数ではなくて実数となっています。 これは Mathematica の中ではある有限の精度しか持たない数値として扱われ ますので計算結果も有限の精度しか持たない実数で返ってきます。 この違いがわかりますか。 ベキ乗は以下のように計算します。

    2^8

この例は2の8乗を計算しています。 今やった計算はファイルとして保存できますから basic_school.ma という ファイルに保存しましょう。 ファイルを保存するには「File」プルダウンメニューで「Save」を選び ファイル名を入力します。 さっき作った week11 というディレクトリーに移ってから保存するように しましょう。

今週の最初に戻る

中学校の数学

まず「File」プルダウンメニューの「New」を選んで新しいウィンドウを 開きましょう。 まずは数式の展開です。

    Expand[ (x+1)^3, x ]

このコマンドは x+1 の3乗を多項式に展開します。 使った Expand コマンドの書式は

    Expand[ 展開すべき式 , 展開する変数 ]

です。 Mathematica のコマンド名はこの例のように必ず大文字で始まります。 これと区別するために皆さん自身が定義する変数や関数は小文字で始める ようにしましょう。 またコマンドのパラメータは [ ] で囲まれカンマ「,」で区切られます。 上の例だと手でもできそうですが下の例はどうでしょうか。

    Expand[ (x+1)^15, x ]

これはちょっと手では計算したくないですね。 次は逆に因数分解をやってみましょう。

    Factor[ x^2-5x+6 ]
    Factor[ x^3-x^2-10x-8 ]

Factor コマンドのパラメータは因数分解する数式です。 2次くらいだと手でも因数分解できそうですが3次以上になると 難しいですね。 Mathematica を使うのが便利だと思いませんか? 次は方程式を解いてみましょう。

    Solve[ x^2-1==0, x ]

方程式を解くコマンド Solve の書式は

    Solve[ 解くべき方程式 , 解くべき変数 ]

です。 解くべき方程式を書くときには等号として「==」(イコール2個)を 使っている点に注意して下さい。 2次の方程式なら手で解けますが3次の方程式はどうでしょうか。

    Solve[ x^3-2x^2-x+2==0, x ]

Mathematica なら簡単に解けますね。 この解いた方程式の解の様子を視覚的に見るために関数をプロットして みましょう。

    Plot[ x^3-2x^2-x+2, {x, -3, 3} ]

この Plot コマンドの書式は

    Plot[ プロットする関数 , プロットする変数とその範囲 ]

プロットする変数とその範囲は { } で囲んで変数、下限、上限の順で 書きます。 先に求めた方程式の解の様子が視覚的にわかりますね。 サイン関数なども当然扱えます。

    Sin[theta]^2+Cos[theta]^2

おやおや Mathematica は何も計算してくれませんでしたね。 皆さんは cos の2乗と sin の2乗を足すと1になると知っていますね。 Mathematica にそれをやらせるには

    Simplify[ Sin[theta]^2+Cos[theta]^2 ]

とする方法があります。 答が1になりましたね。

ここでは色々なコマンドが出てきましたね。 コマンド名がわかっている時には Mathematica の中でコマンドの説明を 見ることができます。

    ?Solve

英語でしか説明が出ませんが何となくわかりますよね。 コマンドのオプションの説明も

    Options[Solve]

で見れますが多くの場合ここで出てくるオプションは必要ありませんので オプションを見るコマンドがあるということだけ覚えておいて下さい。

この計算も junior_high_school.ma というファイルで保存しておきましょう。

今週の最初に戻る

高校の数学

また新しいウィンドウを開きましょう(「File」メニューで「New」を選ぶの でしたね)。 まずはテーラー展開をしてみましょう。

    Series[ 1/(1+x)^(1/2), {x,0,1} ]

用いた Series コマンドの書式は

    Series[ 展開すべき関数 , 展開する変数とその範囲 ]

となっています。 展開する変数とその範囲は前に出てきた Plot 関数のときのように { } で 囲まれ変数、最低次数、最高次数の順です。 従って例では x について0次から1次までテイラー展開するという意味に なります。 答の最後に付いている「O[x]2」は x の2次以上の項がまだ残っていることを 示しています。 1次くらいまでのテイラー展開は簡単にできそうですが次の例はどうでしょうか。

    Series[ 1/(1+x)^(1/2), {x,0,10} ]

これはちょっと手では無理そうですし計算間違いもしそうですね。 Mathematica に任せた方が良さそうです。 次は微分です。

    D[ x^3+x^2+x+1, x ]
    D[ Log[x], x ]
    D[ Sin[x], x ]
    D[ Cosh[x], x ]

特に説明しなくてもわかりますね。 次は積分です。

    Integrate[ x^s+x^2+x+1, x ]
    Integrate[ Log[x], x ]
    Integrate[ Sin[x], x ]
    Integrate[ Cosh[x], x ]

これも説明無しでわかりますよね。 上の例は全て不定積分ですが定積分も可能です。

    Integrate[ Sin[x], {x,0,Pi} ]

積分する変数とその積分範囲の書き方は Plot とか Series コマンドの オプションの書き方と非常に良く似ているので理解できると思います。 また積分の上限の Pi はπのことです。 Mathematica ではπも定義されています。 数値を表示するコマンド N がありますのでπの値を見てみましょう。

    N[Pi]
    N[Pi,100]

2番目の例では表示する数値の精度(100桁)を指定しています。 これまでの例では手でも簡単に積分できますが次の例はどうでしょうか。

    Integrate[ Sin[x]/(a + b Cos[x])^(3/2), {x,0,Pi} ]

これはちょっと計算に時間がかかりそうですね。 やはり Mathematica に任せた方が良いようです。 この計算も high_school.ma というファイルに保存しましょう。

今週の最初に戻る

大学の物理に関係した数学

今度は既にあるファイルをコピーしてきて開きましょう。 端末から以下のコマンドを打ち込んで下さい。

    % cp ~asakaguc/semia2.www/data/university.* ./

mathematica のウィンドウの「File」プルダウンメニューの「Open...」を 選択して university.ma を読み込んで下さい。 ファイルを読み込んで初期計算をするのに少し時間がかかります。

このファイルの中には青色の文字で(英語の)簡単な説明が書かれており 赤色の文字で Mathematica のコマンドが書かれています。 更にいくつかのプロット結果が入っています。 最初の例は進行波の例と書いています。 結果のプロットを見る限りそうは見えませんね。 実はこのプロットはアニメーションになっています。 アニメーションを動かすにはプロットの右側にある括弧のうち下端に矢印の ついたものをポインターとマウスボタンで選択してやります。 そうすると括弧の部分が白黒反転しますから、後は「Graph」プルダウンメニュー の「Animate Selected Graphics」を選択するとプロットが動き始めます。 アニメーションが始まると mathematica のウィンドウの下の部分にカセット プレーヤーのスイッチのようなボタンが現れますから、そのボタンで アニメーションをコントロールできます。 アニメーションを楽しんだら適当にアニメーションを止めて下さい。

ここで少しこのアニメーションを作った Mathematica のコマンドを見てみ ましょう。 Do というコマンドを使っていますね。 また Do コマンドの中にさっき使った Plot コマンドが入っています。 Do コマンドは指定したコマンドを繰り返すコマンドで、その書式は 以下のようになっています。

    Do[ 繰り返すコマンド , 変化させるパラメータと範囲及びステップ ]

ですからこの例では繰り返すコマンドがサイン関数を描く Plot コマンドで 変化させるパラメータが t でその範囲及びステップサイズが0から2πと 20分のπとなっています。 このコマンドを実行すると40枚余りのプロットが描かれることになります。 40枚のプロットは一体どこにあるのかですって。 さっき選んだプロットの横に付いている括弧をダブルクリックしてください。 プロットが全て出てくるはずです。 もう一度ダブルクリックするとプロットは再び隠れます。 こんなに沢山プロットを描いていたので初期計算に時間がかかったのですね。 またアニメーションというのはこの隠れたプロットを順番に繰り返し 表示していたのです。

2番目の例を見てみましょう。 2番目の例は「うなり」の例と書いてありますね。 2種類の振動数の違う波を重ね合わせると「うなり」が生じるという現象です。 この例は振動数が10%違う場合をプロットしたものです。 うなりが生じているのが視覚的にわかると思います。

3番目の例は Do コマンドを使って「うなり」をアニメーションにしました。 見てみて下さい。 このように Mathematica を使うと簡単に物理現象を視覚化したりアニメーション化 できます。

今週の最初に戻る

今週の課題

今週は Mathematica の簡単な使い方を学習しました。 まずは高校の数学レベルの計算を10個以上 Mathematica にさせてみて ください。 その計算を week11 の下の mymath.ma というファイルに保存して、ファイルを 作ったことをメイルにて知らせてくれたら教官が見にいきます。

物理現象あるいは数学に関連するようなアニメーションを1つ作ってみま しょう。 myanimation.ma というファイルに保存して、ファイルを作ったことを メイルにて知らせてくれたら教官が見にいきます。 適当な物理現象などが思い付かない場合には以下のアニメーションに挑戦 してみて下さい。

これで今週の課題は終了です。

今週の最初に戻る