概要

疑問

  • =と:=と:の違いは?
  • 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^^nn乗
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);が必須
    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)]);

キー待ち

  • pauseの代わりは
    readline(?\*standard\-input\*);

tex出力


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2017-01-16 (月) 11:14:38 (2659d)