08 & 09

Mathematicaについて

数学・数式を扱うためのツールとしてMathematicaを学び,またプログラミングによるシミュレ−ションを体験する.

簡単な使い方

Mathematicaは、数式計算、数値計算、グラフィックス、サウンドなどを同一環境において扱える数学の統合的なアプリケーションです。
左上のアイコンから「数式処理」「Mathematica」を選んで起動します。
アプリケーションが起動すると、真っ白なウインドウが表示されます。これは、「ノートブック」と呼ばれるもので、ここに式を書き込みます。たとえば、

1 + 2
とタイプし、Shiftキーを押しながらReturnキーを押して下さい。 入力した式が評価され、しばらくすると(1回目の計算だけ時間がかかります)結果が計算されます。
In[1]:=
  1 + 2
Out[1]:=
  3

「In[1]:=」は入力された式、「Out[1]:=」はそれに対する答を表します。 角カッコの中の数字は、式が入力されるたびに1ずつ増えていきます。
一度計算した結果は、%という記号を用いて参照することができます。次のように入力してみましょう。

% - 4
そして、Shift + Returnキーを押します。結果は、
In[2]:=
  % - 4
Out[2]:=
  -1
%は直前に計算された結果(Out[1])を参照しています。%の後に数字を入れると、そ の番号に対応する結果が参照されます。
In[3]:=
  %1 / 3
Out[3]:=
  1

計算の方法

基本的な演算の方法を示します。【】の中が演算子です。

●四則演算など

加算【+】
In[4]:=
  2 + 3
Out[4]:=
  5 
減算【-】
In[5]:=
  5.3 - 3.4
Out[5]:=
  1.9 
乗算【* またはスペース】
In[6]:=
  3 * 4
Out[6]:=
  12 
除算【/】
In[7]:=
  10 / 2
Out[7]:=
  5 
べき乗【^】
In[8]:=
  2 ^ 5
Out[8]:=
  32 
演算の優先順位
式中に複数の演算子がある場合は、一般的な数学の規則に基づいて式が 評価されます(べき乗>乗算、除算>加算、減算)。かっこ()があれば、その中の式 が最優先されます。
厳密値と近似値
Mathematicaでは、整数と分数は厳密値として扱われ、近似値とは区別されます。次の式を入力してみてください。
  305 / 177

厳密値が入力された場合、Mathematicaでは数値でなく既約分数が返されます 。ここが電卓との大きな違いです。近似値を求めるには、小数で入力するか(小数は 近似値として扱われる)、あるいは以下で述べる組み込み関数 Nを用いて次のようにします。
 

  N [ 305 / 177 ]

●数学定数について

大文字と小文字は区別されます。
円周率π【Pi】
次の例では、組み込み関数Nを用いて、πを20桁の精度で求めています。
In[1]:=
  N [ Pi, 20 ]
Out[1]:=
  3.1415926535897932385 
自然対数の底e(=2.71828...)【E】
In[2]:=
  N [ E, 3 ]
Out[2]:=
  2.71828

 

虚数単位(-1の平方根)【I】
次の例では、組み込み関数Sqrtを用いて、2+3i の平方根を求めています。
In[3]:=
  Sqrt[ 2.0 + 3.0 I ]
Out[3]:=
  1.67415 + 0.895977 I 
無限大【Infinity】
 

●組み込み関数

xの近似値をa桁の精度で求める【N[x,a]】

平方根【Sqrt[x]】

指数【Exp[x]】

自然対数【Log[x]】

bを底とする対数【Log[b,x]】

三角関数【Sin[x] Cos[x] Tan[x]】(xの単位はラジアン)

複素数zの実部【Re[z]】

複素数zの虚部【Im[z]】

●代数計算、微分、積分

因数分解【Factor[式]】(例:Factor[x^4 - 8 x^2 - 4 x + 3])

式の部分分数への分解【Apart[式]】(例:Apart[1/(x^3 -1)])

式の展開【Expand[式]】(例:Expand[(x+1)(x+2)(x+3)])

代数方程式の解【Solve[f,x]】(例:Solve[x^2 -2x +1 == 0 ,x])

fのx→aでの極限値【Limit[f,x->a]】

fをxで微分【D[f,x]】(例:D[x^n, x])

fのxによる不定積分【Integrate[f,x]】結果では、積分定数は省略される。

fのx=aからbまでの定積分【Integrate[f,{x,a,b}]】

fのx=aの周りでのn次の項までのテイラー展開【Series[f,{x,a,n}]】
テイラー展開の剰余項(O[x]^n)を取り除くには【Normal[x]】を用いる。


グラフを描く

●点をプロットする

●関数をグラフにする

●グラフに名前をつける


データの回帰分析

listと定義されたリストを2次曲線で近似するときは、Fit[list,{1,x,x^2},x]と入力します。求められた式をプロットすれば回帰曲線か得られます。回帰曲線とリストのプロットを重ねれば、データの傾向がよく分かります。


課題

  1. x^100 -1 を因数分解しなさい。
  2. f(x)=log(1+x)/xのx→0での極限値を求めなさい。
  3. f(x)=sin(2x+1)のとき、f'(x)を求めなさい。
  4. f(x)=(x-sin(x))/x^3をテイラー展開することにより、x→0での極限値を求めなさい。また、Limit関数で得た値と同じになることを確認しなさい。
  5. f(x)=sin(x)/(x^2+4)をx=0の周りでテイラー展開し、xの6次の項までの近似式を求めなさい。この近似式と元の関数を同時にプロットしなさい。
  6. f(x)=exp(-x^2)のx=-∞からx=∞までの定積分値を求めなさい。
    (exp()は、eのべき乗を表す)
  7. y=f(x)=sin(x)/(x^2 +1)を-2π≦x≦2πの範囲でグラフにしなさい。
  8. x=sin(t)、y=sin(2t)を0≦t≦2πの範囲でグラフにしなさい。
  9. z=f(x,y)=sin(x sin(y))を0≦x≦2π、0≦y≦2πの範囲でグラフにしなさい。
  10. x=(2+cos(u))cos(v)、y=(2+cos(u))sin(v)、z=sin(u)を、π≦u≦5π/2、0≦v≦3π/2の範囲でグラフにしなさい。
  11. 剪断応力についての課題を解きましょう。課題はここをクリック。

課題の提出先

各自のホームページに掲載しておくこと。

 http://webserver/~自分のログイン名

自分の課題がきちんと表示されることを確認しておくこと。

Mathematicaでは、HTML化について便利な方法があります。
「ファイル」→「特別な形式で保存」→「HTML」で、Mathematicaの画面を忠実に再現したHTMLファイルを作ってくれます。
ただし、保存する際にファイルをpublic_htmlディレクトリの下に置き、ファイル名を「〜.htm」または「〜.html」にして保存しましょう。

この方法では、Mathematicaで行ったことをホームページ上で見ることができるようにできますが、作業の内容までは保存してくれません。「特別な形式で保存」だけでなく、「保存」や「名前をつけて保存」で、作業内容も残しておくようにしましょう。
#これはMathematicaだけでなく他のソフトについても言えることです。