しぐまっく

愛機MacBook Pro(Mid 2010)を研究やら趣味やらに使っている際のおぼえがき.homebrewとかlinuxとかwebサービスとかも.

Maxima小ネタ

Maximaのマニュアルはかなり長いですが,普段使うような部分は限られてきます.ここでは使えそうな関数やネタをちょくちょく載っけていきます.

関数とリテラル

a:10; ←リテラル
f(x):=a*x; ←関数

リスト

(%i) a:[0,1,2,3,4,5];
(%i) a[2];
(%o) 1
(%i) second(a);
(%o) 1

[]で書かれたものはリストと呼ばれる.配列と同じように変数[x]でアクセスできる,が配列とは異なる.firstやsecondでも呼び出せる.
式などもリストになっている.

(%i) x=0;
(%o) x=0
(%i) first(%);
(%o) x ←"x=0" が xと0とが等号で結ばれるというリスト

リストの作成

構文: makelist(適用する式,変数,開始値,終了値)
例: 0,1,2, .... ,10 というリストを作りたい場合.

a:makelist(i,i,0,10);

例: パラメータを変化させていっぱいグラフを描きたい

f(x,k):=sin(k*x);
a:makelist(f(x,k),k,1,5);
plot2d(a,[x,0,%pi]);

plotに関して

書式: plot2d([関数1,..],[x,始点,終点],[y,始点,終点],[logx],[logy],[gnuplot_term,x11],...)
x範囲以外はオプション.関数は複数指定できる.
関数として [discrete,xyの組のリスト] を指定すると離散値のプロットができる.
plotのオプション→ Maxima 5.31.0 Manual: 12. Plotting

反復文

構文: for 変数:初期値 {step ステップ} while (条件式) do 動作

v1(x):=x;
v2(x):=x^2;
v3(x):=x^3;
v(x):=[v1(x),v2(x),v3(x)];
for i:1 while (i<4) do wxplot2d(v(x)[i],[x,0,1]);