|このページについて| ''概要'':このページでは、数学ソフトMathematicaの基本的な使い方を解説します。 ''親ページ'':このページの親ページは[[Mathematica]]です。 |目次| #contents ---- *[[Mathematica:http://www.wolfram.com/products/mathematica/index.html]]の基本的な情報 [#f0d24490] **Mathematicaで出来ること [#z99d8cd9] 普通の数学に登場する計算は全部出来る.簡単な電卓としても使えるし,微分方程式だって解ける.100個未知数があって100本方程式があるとき,Mathematicaに解かせたほうが絶対はやい.経済学との絡みで言えば,効用関数のグラフを描いたり,無差別曲線を描いたりすると視覚的な手助けになるので,経済理論の理解が深まる. **有用サイト,本 [#s3ab90fe] 以下の本を読みながら実際にMathematicaをいじってみれば、一通り使いこなせるようになります。 -宮岡悦良(2000),『Mathematica数学の道具箱〈上〉』,ブレーン出版 -宮岡悦良(2000),『Mathematica数学の道具箱〈上〉』,ブレーン出版 ネット上にあるメモとして,以下があります. -[[はじめてのMATHEMATICA:http://www.ipc.yamanashi.ac.jp/guide/Mathematica/1-1.html]] -[[Mathematica コマンドリファレンス:http://aerith.net/project/Mathematica/ref-j/Mathematica.html]] -[[お家元の機能紹介ページ:http://www.wolfram.com/products/mathematica/tour/]] -[[Mathematica のクイックリファレンス:http://www-antenna.ee.titech.ac.jp/~hira/lecture/math/math_room/quick_ref/index.html]] *基本的な使い方 [#me5e9f38] In[1]:= 3+2 などと押す.[SHIFT]を押しながら,ENTERを押すと, Out[1]= 5 などと帰ってくる(以下,In[]とかOut[]とかは省略する).四則演算の記号は, |掛け算|*| |割り算|/| |足し算|+| |引き算|-| |べき乗|^| を使う. aに3を代入する場合は, a = 3 とやる.これは,a=3(aイコール3)という等式を意味しているのではなく,「aに3を代入せよ」ということを意味する. a*4 とかやれば, 12 とか返ってくる.aの中の3を消去したい場合 Clear[a] とかやればよい.ここで,Clear[]はMathematicaに内臓されている組込関数である.組込関数は,すべて大文字で始まり,関数の対象を [] でくくる.このルールは,すべての組込関数で同じ.尚,オブジェクト指向に a // Clear とかやっても,まったく同じである. 変数に代入する方法としては,以下のような方法もある. 5 a + 5 /. a->10 こうやれば, 55 とか返ってくる.a=3とやると,Clear[]で消去するまで,aの中に3が入っている(aがグローバル変数ということ)が,この方法だとこの行でのみaに10が入っている(aはローカル変数ということ).複数の変数を同時に代入するときは, 2 x + 3 y + 4 z /. {x->10, y->20, z->30} とやればよい. ここで,掛け算は,*という記号を使わずに,半角スペースを開ければよい点に注意. 他に,関数をいくつか紹介しておこう.例えば, (x+1)^5 // Expand とやれば,展開してくれる.展開内容を,再び因数分解したい場合は, Factor[] をやればよい. 複雑に見える数式を,もっとも簡潔な形に,すっきりとまとめてくれる関数は, Simplify[] である. その他,例えば円周率のπは, Pi である.πを5桁で表現したい場合は, N[Pi,5] とやればよい. また, Out[1] + 4 などとやれば, 9 と返ってくる.これは,一番最初の計算式3+2の結果の5がOut[1]の中に入っているためである. %1 は,Out[1]と同じ内容を返す. 直前のOutputは, % の中に入っている.2つ前のOutputは %% の中に入っている.3つ前のOutputは %%% の中に入っている. *関数の定義 [#ma0b198f] 組込関数ではなく,自分オリジナルの関数を定義することも出来る.例えば,xにある値を代入したとき,その10乗を計算してくれる関数を定義してみよう. jujo[x_]:=x^10 これだけで, jujo[3] などどやれば, 59049 と瞬時に,3^10を計算してくれる.すごい.定義する関数名は,既存の組込関数とかぶらないように注意すべきである.既存の組込関数はすべて大文字から始まることに注意して,自分で作るときには,小文字から始まるようにすれば,まずかぶらない. x_ とやるのは,xという変数そのものみ意味があるのではなく,そこに何かを代入するのだ,ということを明確にするためである. 多変数の関数も当然,定義できる.例えば, aho[x_, y_, z_] := x^2 y^3 z^4 と定義して, aho[1, 2, 4] とやれば, 2048 と即座に返ってくる.すごい. 定義した関数を完全に消去するには, Remove[aho] とかやる.グローバル変数とローカル変数が混在すると良くないので,こまめにMathematicaを新しく起動することを推奨する. なお, g[x_] := 5 x + 1 などと関数を定義したとき, g[x] とやれば 1 + 5 x を返すが, g だけでは,定義された関数だと認識してくれないので注意すべし. g[a] とやれば, 1 + 5 a と返ってくることから,g[]の,[]の中に何を代入するかが大事である. g[a] /. a -> x とかやれば, 1 + 5 x とか返ってくる. 合成関数も扱える. f[x_] := x^3 g[x_] := 5 x + 1 と定義しておこう. f[g[x]] とやれば, (1 + 5 x)^3 を返す. g[f[x]] とやれば, (1 + 5 x^3) を返す. *論理式 [#p619ccce] x==y xとyは等しい x!=y xとyは等しくない x>y x>y x>=y x≧y x<y x≦y A && B 条件Aかつ条件B A || B 条件Aまたは条件B !A 条件Aではない Xor[A,B] 排他的な「または」(AまたはBの,どちらか一方のみ) 以上の論理式を使って,条件付き関数を考えることも出来る.例えば, hantei[x_] := -1 /; x < 0; hantei[x_] := 0 /; x == 0; hantei[x_] := 1 /; x > 0; と定義すれば,Indicator関数のようなものが定義できる.つまり, hantei[0] とやれば, 0 と返ってくる. hantei[11] とかやれば, 1 と返ってくる. hantei[-10] とかやれば -1 とか返ってくる. *Reference [#e95f92ff] **参考書籍 [#a357d618] -宮岡悦良(2000),『Mathematica数学の道具箱〈上〉』,ブレーン出版 -宮岡悦良(2000),『Mathematica数学の道具箱〈下〉』,ブレーン出版 **リンク [#l05421f0] -[[神戸大学 Mathematica ホームページ:http://bach.istc.kobe-u.ac.jp/mma/]]