− Online Maxima
0 定数等
1 グラフ描画
2 代数
3 線形代数
4 三角関数の展開
5 指数関数、対数関数
6 微積分
7 微分方程式
8 ラプラス変換
9 フーリエ級数展開,フーリエ変換
10 ベクトル解析
11 複素関数論
Maximaの主なコマンド
-1
↑戻
− オンラインmaxima
(1) http://maxima-online.org/
パソコンにインストールして活用するのが望ましい。
タブロイド版もある。
しかし、
取りあえず、web上で使うこともできる。
00
↑戻
0 定数等
(1) π:
%pi;
(2) e:
%e;
(3) i:
%i;
(4) ∞:
inf;
(5) 小数点表示
float(\%pi),numer;
10
↑戻
1 グラフ描画
解像度1920×1080で,アスペクト比(x:y)=2:1.
plot2d(x^2,[x, -4, 4], [y, -2, 2]);
maxima-online.orgでは,アスペクト比(x:y)=4.1:3.
plot2d(x^2,[x, -4.1, 4.1], [y, -3, 3]);
とすると,ほぼ1:1のアスペクト比になる.
微調整は,定規を画面にあてて,調整する.
以下は,画面の調整のコマンド等
[g]:格子の書き込み
[m]:マウス先の座標表示
マウススクロール:x座標の移動
[Shift]+マウススクロール:y座標の移動
[Ctrl]+マウススクロール:x,y座標の縮小・拡大
[Ctrl]+[Shift]+マウススクロール:x座標の縮小・拡大
([g]と組み合わせ,gnuplotのwindowの枠をドラッグして1:1とする.)
(1) 2次元グラフ
plot2d (sin(x), [x, -2*%pi, 2*%pi],[y,-%pi,%pi]);
(2) 3次元グラフ
plot3d ( log ( x^2*y^2 ), [x, -2, 2], [y, -2, 2], [z, -8, 4], [palette, false], [color, magenta]);
(3) パラメータグラフ表示
plot2d([parametric,cos(t),sin(t)],[t,0,2*%pi],[nticks,100]);
(4) 混在グラフ表示
(1)
f:x;
g:sin(x);
plot2d([f,g,[parametric,2,t]],[x,-20,20,1],[y,-10,10,1],[t,-10,10]);
(2)
f:x/2;
g:2*sin(x);
g:taylor(g,x,0,8);
rr:realroots(f=g);
rrx:rhs(rr[1]);
rry:subst(x=rrx,f);
xy:[[3,4],[5,6],[rrx,rry]];
plot2d([f,g,[parametric,2,t],[discrete,xy]],[x,-20,20,1],[y,-10,10,1],[t,-10,10],[style,line,line,line,points]);
(5) 陰関数のグラフ
load(implicit_plot);
implicit_plot(x^2+y^2=4,[x,-6,6],[y,-3,3]);
(6) 空間曲線示
f:exp(t)*(8*sin(t)/5+4*cos(t)/5)+exp(-2*t)/5;
g:exp(t)*(2*sin(t)/5+6*cos(t)/5)-exp(-2*t)/5;
h:exp(t)*(-2*sin(t)/5+4*cos(t)/5)+exp(-2*t)/5;
plot3d([f,g,h],[t,0,3],[u,-5,5],[grid,100,2], [gnuplot_pm3d,false]);
20
↑戻
2 代数
(1) 右辺
rhs(x=t^2);
(2) 左辺
lhs(x=t^2);
(3) 展開
expand((x-4)^3);
(4) 因数分解
factor(x^2-2*x-3);
(5) 方程式
solve(x+4=8,x);
(6) 連立方程式
linsolve([x-y=0,x+y=5],[x,y]);
-> [x=5/2,y=5/2]
subst(%[1],x-y=0);
-> 5/2-y=0
(7) 代入
subst([x=2,y=-1,z=0],%);
30
↑戻
3 線形代数
(1) 縦ベクトル
b:matrix([1],[2]);
(2) 横ベクトル
c:matrix([1,2]);
(3) 行列
A:matrix([1,2],[3,4]);
(4) 行列Aと縦ベクトルbの積
A.b;
(5) 横ベクトルcの縦ベクトルへの変換
load(eigen);
columnvector([1,2]);
(6) 転置(縦横変換)
transpose(c);
(7) 逆行列
invert(A);
(8) 行列式
determinant(A);
(9) 特性方程式
charpoly(A,x);
(10) 行列Aの特性多項式の展開
expand(charpoly(A,x));
(11) 固有ベクトル
eigenvectors(A);
→[[[固有値],[重複数]],[[[固有ベクトル]]]]
(12) 固有縦ベクトルの行列
B:eigenvectors(A);
transpose(matrix(B[2][1][1],B[2][2][1]));
40
↑戻
4 三角関数の展開
(1) 展開(加法定理)
trigexpand(sin(x-y));
(2) 簡素化・計算
trigsimp(sin(x)^2+cos(x)^2);
trigrat(sin(x)^2+cos(x)^2);
(3) 指数関数化
exponentialize(sin(3*x));
(4) 積を減らす(積和,)
trigreduce(sin(x)*cos(x));
(5) 展開
trigexpand(sin(2*x));
(6) 和積
u:(x+y)/2;
v:(x-y)/2;
f:sin(u+v)+sin(u-v);
g:sin(x)+sin(y);
trigexpand(f);
(7) 合成
f:a*sin(x)+b*cos(x);
a1:subst(x=\%pi/2,f);
s1:a1/abs(a1);
a2:a1/s1;
b1:subst(x=0,f);
b2:b1/s1;
r:sqrt(a2^2+b2^2);
th:asin(b2/r);
f1:s1*r*sin(x+th);
50
↑戻
5 指数関数、対数関数
(1) 指数関数、対数関数の整理
radcan((a^m)^n);
(a^m)^n;
(2) 複素指数関数の三角関数化
f:demoivre(exp(%i*t));
f:radcan(f);
(3) 常用対数の定義
log10(x):=log(x)/log(10);
60
↑戻
6 微積分
(1) 極限値
limit(sqrt(x+1)-sqrt(x),x,inf);
(2) 微分
diff(x^2,x,1);
(3) テーラー展開
taylor((1+x)^(1/2),x,0,4);
(4) 定積分
integrate(x^2,x,0,3);
(5) 積分
integrate(x^2,x);
(6) 数値積分(近似)
f:3/(10-8*cos(x));
quad_qags(f,x,0,%pi*2);
→[積分近似値, 絶対誤差, 被積分関数の評価数, エラーコード]
エラーコード
0 問題なし
1 部分区間の数が上限超
2 丸め誤差が超過
3 被積分関数の振る舞いが極端に悪い
4 収束に失敗
5 積分が発散しているか収束が遅い
6 入力が無効
(7) 線積分(ds)
f:x^2*z;
r:[cos(t),sin(t),t];
dr:diff(r,t);
ds=sqrt(dr.dr);
ft:subst([x=r[1],y=r[2],z=r[3]],f);
integrate(ft*ds,t,0,2*%pi);
(8) 線積分(dr=[dx,dy,dz])
f:x^2*z;
r:[cos(t),sin(t),t];
dr:diff(r,t);
ft:subst([x=r[1],y=r[2],z=r[3]],f);
integrate(ft*dr,t,0,2*%pi);
(9) 面積分(dS)
load(vect);
f:x;
r:[sin(u)*cos(v),sin(u)*sin(v),cos(u)];
fuv:subst([x=r[1],y=r[2],z=r[3]],f);
ru:diff(r,u);
rv:diff(r,v);
rurv:express(ru~rv);
dS:sqrt(rurv.rurv);
integrate(integrate(fuv*dS,u,0,%pi/2),v,0,%pi/2);
(10) 面積分(F・ndS)
load(vect);
F:[0,x,z^2];
r:[sin(u)*cos(v),sin(u)*sin(v),cos(u)];
Fuv:subst([x=r[1],y=r[2],z=r[3]],F);
ru:diff(r,u);
rv:diff(r,v);
rurv:express(ru~rv);
ndS:rurv;
integrate(integrate(Fuv.ndS,u,0,%pi/2),v,0,2*%pi);
70
↑戻
7 微分方程式
(1) 常微分方程式
ode2('diff(y,x,2)=-y,y,x);
(2) 微分方程式初期値設定
2階
ic2(y=%k1*sin(x)+%k2*cos(x),x=0,y=1,'diff(y,x)=2);
1階
ic1(y=%c*cos(x),x=0,y=1);
(3) 線形連立微分方程式
atvalue(y(x),x=0,1);
atvalue(z(x),x=0,1);
desolve(['diff(y(x),x)=2*y(x)-z(x),'diff(z(x),x)=y(x)+2*z(x)],[y(x),z(x)]);
80
↑戻
8 ラプラス変換
(1) ラプラス変換
laplace(%e^(-t),t,s);
(2) ラプラス逆変換
ilt(1/(s-1),s,t);
90
↑戻
9 フーリエ級数展開,フーリエ変換
(1) ロード
load(fourie);
(2) フーリエ級数展開
f(x):=2*x*(x-1)*(x+1);
totalfourier(f(x),x,3/2);
define(g1(x),subst(50,inf,%));
g(x):=ev(g1(x),nouns,numer);
plot2d ([f(x),g(x)], [x, -3, 3],[y,-5,5]);
(3) フーリエ変換
ロードは必要なし
fp:1-x/2;
fm:1+x/2;
kF:exp(-%i*w*x);
Ffp:integrate(fp*kF,x,0,2);
Ffp:demoivre(Ffp);
Ffp:radcan(Ffp);
Ffm:integrate(fm*kF,x,-2,0);
Ffm:demoivre(Ffm);
Ffm:radcan(Ffm);
Ff:Ffp+Ffm;
Ff:radcan(Ff);
(4) フーリエ変換の関連積分
f:sin(x)^4/x^4;
tf:taylor(f,x,0,50);
v:integrate(tf,x,-2.5,2.5);
plot2d([f,tf],[x,-10,10],[y,-5,5]);
グラフから積分区間を再評価すること;
A0
↑戻
10 ベクトル解析
(1) パッケージ読み込み
load(vect);
(2) ベクトル定義
a:[1,-2,1];
b:[2,3,-1];
(3) 内積
a.b;
(4) 外積
a~b;
express(%);
(5) 関数定義
f(x,y,z):=(x^2+y^2)^(5/2);
(6) ノルム関数の定義
norm(v):=sqrt(v.v);
(7) ベクトル解析演算
laplacian(f(x,y,z));
express(%);
ev(%,diff);
grad(f(x,y,z));
express(%);
ev(%,diff);
div([x,x^2,x*y*z]);
express(%);
ev(%,diff);
curl([x,x^2,x*y*z]);
express(%);
ev(%,diff);
(8) grad,外積等の代数実行
express(%);
(9) 代数実行の微分実行
ev(%,diff);
(10) 全微分
z:x*y;
diff(z);
del(x)をdxと読むこと
(11) 関数関係定義
depends(w,[x,y],x,[r,u],y,[r,u]);
(12) 偏微分
wr:diff(w,r);
wu:diff(w,u);
(13) 極座標定義
X:r*cos(u);
Y:r*sin(u);
xr:diff(X,r);
yr:diff(Y,r);
xu:diff(X,u);
yu:diff(Y,u);
(14) 連鎖律
wr:subst(xr,diff(x,r),wr);
wr:subst(yr,diff(y,r),wr);
これで,wrの連鎖律実現
wu:subst(xu,diff(x,u),wu);
wu:subst(yu,diff(y,u),wu);
(15) 極座標の偏微分公式換
wr^2+wu^2/r^2;
ratsimp(%);
trigsimp(%);
→wx^2+wy^2がでる.
wrr:diff(wr,r);
wrr:subst(xr,diff(x,r),wrr);
wrr:subst(yr,diff(y,r),wrr);
wuu:diff(wu,u);
wuu:subst(xu,diff(x,u),wuu);
wuu:subst(yu,diff(y,u),wuu);
これで,wrr,wuuの連鎖律実現
wrr+wr/r+wuu/r^2;
ratsimp(%);
trigsimp(%);
→wxx+wyyがでる.
B0
↑戻
11 複素関数論
(1) 経路
r:exp(%i*t);
f:1/(z-0.5);
f:subst(z=r,f);
dr:diff(r,t);
(2) 区分積の実部,虚部
rpf:realpart(f*dr);
trigsimp(%);
ipf:imagpart(f*dr);
trigsimp(%);
(3) tによる複素数値積分を実部,虚部に分けて実行
quad_qags(rpf,t,0,%pi*2);
quad_qags(ipf,t,0,%pi*2);
→[積分近似値, 絶対誤差, 被積分関数の評価数,
エラーコード]
(4) コーシーの積分公式等
z:cos(t)+%i*sin(t); /*00*/
f:exp(z)*sin(z)/z^3; /*01*/
dz:diff(z,t); /*02*/
tf:taylor(subst(z=x,f),x,0,8); /*03 1/xの係数(留数)の2πi倍*/
quad_qags(realpart(f*dz),t,0,%pi*2); /*04*/
quad_qags(imagpart(f*dz),t,0,%pi*2); /*05*/
→[積分近似値, 絶対誤差, 被積分関数の評価数,
エラーコード]