今週は Mathematica というプログラムを使ってみる。 Mathematica は「みんなの代わりに計算してくれるソフトウェア」 「数式処理ソフトウェア」「数値視覚化ソフトウェア」 など色々なとらえ方があると思うが、習うより慣れろで、 とにかく使ってみて理解するのが良い。 最初は非常に簡単な計算から始める。
Mathematica の起動と簡単な計算
1+2
入力し終えたら、
シフトキーを押しながらリターンキーを打つ。
リターンキーだけ打っても計算を実行してくれないので注意。
これはまず覚えておくように。
10-5 3*4 3 4最後の「3 4」はかけ算の意味。 Mathematica ではかけ算は数学の数式を書いた場合と同様に、 数字あるいは変数の間に空白を空けるとかけ算の意味になるので覚えておこう。
2^8
この例は2の8乗を計算している。
1/2 1./2.最初の計算の答えは分数で出てきた。 Mathematica では計算精度をできるだけ失わないようにするために このような計算をする。 Mathematica は単なる電卓ではなくて、 数式処理プログラムだということが分かったはず。
今やった計算式と計算結果はファイルとして保存できる。 mathematica という新たなディレクトリーを作成し、 その中にファイルを保存する。 「File」プルダウンメニューの「Save」をクリックし、 basic_school.nb というファイル名を入れて保存(.nb は自動的に付く)。
次はもう少しだけ難しい計算をしてみる。
式の展開と因数分解
Expand[ (x+1)^3, x ]
このコマンドは x+1 の3乗を多項式に展開する。
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個)を使っている点に注意すること。
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]^2Mathematica は何も計算してくれない。 cos の2乗と sin の2乗を足すと1になるはず。 Mathematica にそれをやらせるには
Simplify[ Sin[theta]^2+Cos[theta]^2 ]
とする方法がある。
答が1になったはず。
?Solve
英語でしか説明が出ないが、何となくわかるはず。
コマンドのオプションの説明も
Options[Solve]
で見れるが、多くの場合ここで出てくるオプションは必要無いので、
オプションを見るコマンドがあるということだけ覚えておくこと。
ここでやった計算も junior_high_school.nb というファイルに保存する。
次は高校レベルの数学の計算をしてみる。
テイラー展開
Series[ 1/(1+x)^(1/2), {x,0,1} ]
用いた Series コマンドの書式は
Series[ 展開すべき関数 , 展開する変数とその範囲 ]となっている。
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^3+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
コマンドのオプションの書き方と非常に良く似ているので理解できるはず。
N[Pi] N[Pi,100]2番目の例では表示する数値の精度(100桁)を指定している。
Integrate[ Sin[x]/(a + b Cos[x])^(3/2), {x,0,Pi} ]これはちょっと計算に時間がかかりそう。 やはり Mathematica に任せた方が良いだろう。
ここでの計算も high_school.nb というファイルに保存する。