- =と:=と:の違いは?
- x=b+a, y=2aをいい感じに行列表記にしてくれる方法はないの?
🔗いろいろ詰まったサンプル
/*Rotate A*/
A : matrix([-0.0703557, 0.993238 ,-0.0923413], [ 0.996815 ,0.0665199 ,-0.043984], [ -0.0375441 ,-0.0951417 , -0.994756]);
X:matrix([1, 0, 0],[0, cos(x), -sin(x)], [0, sin(x), cos(x)]);
A.X
ev(A.X, x = %pi/10)
float(ev(A.X, x = %pi/10));
quit();
- コメントアウトは/**/
- 終端は;か(が表示抑制)
- Maxima は大文字,小文字. を区別しない.
- C言語で言うincludeは、batch("matrix_sample.max");で可能
| コマンド | 機能 |
|---|
| [1,2,3] | 横ベクトル |
| A[2,3] : x; | 成分操作 |
| matrix([1, 2, 3], [2, 4, 5]) | 行列。横行列を複数指定した分、縦に連結した行列 |
| zeromatrix(m, n) | 零行列 |
| ident(n) | n次単位行列 |
| columnvector([1, 2, 3]) | 縦行列 |
| diag([1,2,3]) | 対角行列.load("diag");が必要 |
| transpose(A) | 転置 |
| |
|---|
| 以前の実行結果 | % |
| 円周率π | %pi |
| 自然対数の底e | %e |
| 虚数単位i | %i |
🔗基本操作
| 記号 | 効果 |
|---|
| A; | 表示 |
| A:B; | 代入 |
| A.B | 行列演算 |
| A*b | 行列A*ベクトルbの演算 |
| A^^n | n乗 |
| A^3 | 要素n乗 |
| Aˆˆ(-1); or invert(A); | 逆行列 |
| n*(n+1)/2, n=10; | 式に一時的に値を代入可能 |
| f(x) := x^2 + 2*x + 1;, h(x) := if x < 0 then 0 elseif x = 0 then 1/2 else 1; | 関数定義(二次関数とヘヴィサイド関数) |
| |
|---|
| sum(一般項, 添字変数, 下限, 上限); product(式, 添字, 下限, 上限); | ΣとΠ |
| radcan(%) | ルートが入った式の整理 |
| allroots(x^2 = 4);, find_root(x^2-x-2, x, 0, 5); | 近似解 |
| expand((x+y)^4);, factor(%); | 因数展開、因数分解 |
| partfrac(x/(x+1), x);, ratsimp(%); | 部分分数分解、部分分数展開 |
| solve([y=x^2, y=x+2], [x, y]); | 厳密解 |
| diff(x^x, x);, integrate(x, x); | 微分積分 |
| limit(sin(x)/x, x, 0); | 極限 |
| taylor(sin(x), x, 0, 5); | テイラー展開(0周りで5似まで展開) |
🔗solve文詳細
eq1 : a*x + b*y = e;
eq2 : c*x + d*y = f;
solve([eq1, eq2], [x, y]);
load(draw);
draw3d([implicit(x^2+y^2+z^2=0.5,x,-1,1,y,-1,1,z,-1,1)], [color=red,implicit(x^2+y^2+z^2=1,x,-1,1,y,-1,1,z,-1,1)]);
🔗キー待ち
readline(?\*standard\-input\*);
🔗tex出力