![]() |
このページは、これから、Mathematica を使おうとする人の 最初の一歩を手助けできたらと思って書いています。
Mathematica を起動するには、kterm で
mathematica &
と入力します。
少し時間がかかりますが、しばらくするとMathematicaのウィンドウが出てきます。
まずは、なにはともあれ足し算でもしてみましょう。 マウスのカーソルをMathematicaのウィンドウの白い部分の中に 移動させて下さい。 そして、
1+1
と入力し、 それから、
Shift を押しながら Return を押して下さい。
※Returnだけ押しても計算は実行されません。
ここでまた少し時間がかかります。 これは、計算をするMathematicaの本体を起動しているためです。 最初に計算する時だけなので、1+1を計算するのにこんなに遅いんじゃ 使い物にならないじゃないかと思ってはいけません。
どうでしょう、
In[1]:=
1+1
Out[1]=
2
という様に表示されたでしょうか?
同じようにsin x 、cos x 、tan x
なども計算できます。Sin[Pi/6]
を1+1
と同じように計算してみて下さい。
In[2]:=
Sin[Pi/6]
Out[2]=1 - 2
このように関数の名前は頭文字が大文字で数学で使われる ままかあるいは完全なスペルになっています。
一つ前の計算の結果を使って計算を続けたいときは、%
という記号を使います。
In[3]:=
% * 2
Out[3]=
1
ここでは、%
には1/2
が入ります。
%
は、In,Outの[ ]
内の数字で見て 一つ前の結果を、%%
は二つ前を指します。%%%
以降同様です。 また、Out[n]で結果を指定することも出来ます。
In[4]:=
3^Out[1]
Out[4]=
9
Limit[((x+h)^2-x^2)/h,h->0]
を試してみてください。
これは、微分の定義をx の2乗
に当てはめたものですが、ちゃんと、
In[5]:=
Limit[((x+h)^2-x^2)/h,h->0]
Out[5]=
2 x
という答が出てきますね。
∞は、Infinity 、 -∞は、-Infinity と書きます。たとえば、
In[6]:=
Limit[3x/(1+x^2 Sin[1/x]),x->Infinity]
Out[6]=
3
というように。
ほら、このあたりから Mathematica ってすごいなぁって 思い始めたでしょう?
{1,2,3}
のような表現をリストといい、Mathematicaでは 式として扱います。 リストに対して演算子や関数を使うと、 リストのそれぞれの要素について演算子や関数を適応し、 それぞれの結果をリストにまとめて結果とします。
In[7]:=
{1,2,3}*2
Out[7]=
{2, 4, 6}
In[8]:=
Cos[{0,Pi/3,2Pi/3,Pi}]
Out[8]=1 1 {1, -, -(-), -1} 2 2
てな感じです。
次は、方程式でも解いて見ましょう。Solve[(x-1)(x-2)(x-3)==0]
を計算させて下さい。 答えは見えていますが、
In[9]:=
Solve[(x-1)(x-2)(x-3)==0]
Out[9]=
{{x -> 1}, {x -> 2}, {x -> 3}}
おや、変な矢印が出てきましたね。 この->
をMathematica では、ルールといいます。 これは、リプレースオール/.
とともに使用して、 式の一部を別の表現(式)で置き換える時に使うものです。
In[10]:=
(x+1)^2 +2(x+1) +1 /. {x+1 -> y}
Out[10]=
1 + 2 y + y^2
Solve の結果にルールが使われるのは、 その後の扱いが楽になるからです。
例えば、
In[11]:=
x^2+1 /. Out[9]
Out[11]=
{2,5,10}
ように使うことができます。 単に解のリストにしたいなら、
In[12]:=
x /. Out[9]
Out[12]=
{1,2,3}
とすればいいわけですね。
グラフをプロットする関数はPlot
で、次のようにして使います。
In[13]:=
Plot[x^2-x,{x,-1,2}]
![]()
Out[13]=
-Graphics-
{x,-1,2}
は、x
が-1
から2
の範囲をプロットしろということです。
(それをリストで与えているということなんですが。)
もう一つ描いてみましょう。
In[14]:=
Plot[Sin[x],{x,-Pi,Pi}]
![]()
Out[14]=
-Graphics-
Show という関数を使うと、 描いたグラフを重ねて見ることが出来ます。
In[15]:=
Show[Out[13],Out[14]]
![]()
Out[15]=
-Graphics-
前出のSolveを使えば交点が得られるでしょうか?
In[16]:=
Solve[x^2-x==Sin[x]
Solve::tdep:
The equations appear to involve
transcendental functions of the
variables in an essentially
non-algebraic way.
Out[16]=2 Solve[-x + x == Sin[x]]
答えは、ダメですね。 「代数的でない形で変数の超越関数を含んでいる」 ってとこですか? とにかくSinがあるから 代数的には解けないと言っている訳です。
そこで登場するのが、FindRoot です。 次の様にすれば、 FindRootはニュートン法により式を 数値的に解いてくれます。
In[17]:=
FindRoot[x^2-x==Sin[x],{x,2}]
Out[17]=
{x -> 1.61755}
{x,2}
は、x の初期値を 2 として求めよ、 ということを指定しています。