|このページについて|

''概要'':このページでは、数学ソフト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/]]


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS