ATMELのAT-Tiny26,ATmega,R8Cなどのワンチップマイコン,C言語,JAVAなどのプログラミング言語の入門のためのページです.サンプルプログラムを中心に紹介します.他にもLinixや数学ソフトなどの紹介も行います.

このブログを検索

あなたは 番目のお客様です.

2008年6月12日木曜日

Windows版 Mathematicaの使い方
(覚え書き)


Windowsでは式を入力してShiftキーを押しながらEnterキーを押す.(Shift+Enter)

Mathematicaの基礎知識
式を入力すると入力(In)に対する結果(Out)が表示される.

関数は[]でくくる.関数の最初は大文字である.
よく使う定数
E(自然対数の低),PI(円周率),I(虚数),Infinity(無限大)

たとえば x^3 + y^3(Shift+Enter)で式が記憶される.
この式の因数分解を行いたい場合
Factor[%]
ここで%は直前の式をあらわす
今度は,上の結果を展開したい場合
Expand[%]
でもとに戻る.

方程式の解法
Solve[4x-1==0,x]
Solve[a x^2+b x+c==0,x]
(注)Solve[ax^2+bx+c==0,x] とすると正しい結果が出ない.これはMathematicaではaxやbxも変数とみなすためである.異なる変数の間にはスペースが必要.スペースの代わりに*を使っても良い.
Solve[a x^2+b x+c==0,x]
Solve[{x-4y==-2,2x+y==5},{x,y}]
上の問題は逆行列を使った行列演算でも解くことができる.
A={{1,-4},{2,1}}
Y={-2,5}
Inverse[A].Y

関数の極限
Limit[(1+1/x)^x,x->Infinity]
矢印や無限大は,右のリストから選んでもよい

式の微分
x^3-4x^2+Exp[-x^2]+Sin[2x]
D[%, x]

微分方程式
DSolve[{x''[t]+x[t]==0,x[0]==1,x'[0]==0},x[t],t]
DSolve[{x''[t]+x'[t]+x[t]==0,x[0]==1,x'[0]==0},x[t],t]
DSolve[{x''[t]+x'[t]+x[t]==2Cos[t],x[0]==1,x'[0]==0},x[t],t]
Plot[式,{t,a,b}]で結果をグラフ表示することも可能である.a,bは横軸の範囲.

式の積分
1/x-4x^2+Exp[-x]+Sin[2x]
Integrate[%, x]

定積分
Integrate[Exp[-x^2],{x,0,1}]
式の値を数値で与えるには
N[%]
表示桁数を指定することもできる.
N[%,100]
N[]を忘れた場合,とりあえず1.0を式に掛けておいてもよい.
例えばIntegrate[Exp[-x^2],{x,0,1}]*1.0

複素数の絶対値と偏角
z = (1 + I)/Sqrt[2]
Abs[z]
Arg[z]

行列
行列やベクトルの定義
A={{1,-4},{2,1}}
B={{a,b},{c,d}}
C={-2,5}
行列の演算
A.B (内積)
B.B
Cross[A,B] (外積)
A^3
逆行列
Inverse[A]
行列式
Det[A]
行列の固有値と固有ベクトルを求める.
A={{3,-5,-5},{-1,7,5},{1,-9,-7}}
Eigenvalues[A]
Eigenvectors[A]
固有値と固有ベクトルが条件を満たすか確認する
固有値-2に対する固有ベクトルがB = {1, -1, 2}のとき
A.B と -2Bが同じ結果になる
A={{2,0,-1},{0,2,0},{-1,0,2}}

グラフ描画
Plot[Sin[4x] Exp[-x^2],{x,-5,5}]
ParametricPlot[{Sin[5t],Cos[3t]},{t,0,2Pi}]
ParametricPlot3D[{Sin[15t], Cos[15t], t}, {t, 0, 2Pi}, PlotPoints -> 400]
Plot3D[Exp[-(x^2 + y^2)], {x, -5, 5}, {y, -5, 5}]
ContourPlot[Exp[-(x^2 + y^2)], {x, -5, 5}, {y, -5, 5}]
グラフの上下が削られる場合には以下のようにオプションを追加する.
Plot[Sin[10x] Exp[-x^2], {x, -5, 5}, PlotRange -> {-1, 1}]
Plot3D[Exp[-(x^2 + y^2)], {x, -5, 5}, {y, -5, 5}, PlotRange -> All]
Plot3D[Exp[-(x^2 + y^2)], {x, -5, 5}, {y, -5, 5}, PlotRange -> {0,1}]
グラフを細かく(精密に)書きたい場合には,Plotpointsで関数のサンプリング数を変える.
Plot3D[Exp[-(x^2 + y^2)], {x, -5, 5}, {y, -5, 5}, PlotRange -> All,PlotPoints->100]

関数の定義
f[x_]:=x^2 Sin[x]
Plot[f[x],{x,-10,10}]
変数への値の代入
x=10
x^2

最も簡単な形式を返す
FullSimplify[1/(Sqrt[2] - 1)]

値のクリア
Remove["x"]