Maxima
をテンプレートにして作成
[
トップ
|
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
* Maxima [#j531a254]
**計算結果のファイル保存/読み込み [#t2633c3c]
すべて保存
save("result.max", all);
loadfile("result.max");
入力のみ保存
stringout("input.bat", input);
**Unix系コマンド使用 [#g4d9a7f1]
system("cat input.bat");
**texソースに変換 [#k02c586d]
tex(d1);
**バッチ処理 [#p9ab00c7]
batch("batch.bat");
**カレントディレクトリ変更 [#y3b9c632]
?xchdir("D:\\Temp")$
**出力順序変更 [#d815d31e]
Maxima標準だと,z^2+y^2+x^2のように我々の感覚とは逆に表示...
この出力式の変数順序を変更する.
ordergreat(x,y,z);
これにより,x^2+y^2+z^2のようにx,y,zの順になる.
orderless(z,y,x);
でも同様.
元の状態に戻したいときは,
unorder();
を実行する.また,他の順番にしたいときもunorder()を実行し...
**代入・置き換え [#w152c01b]
x=3をf=x^2+y^2に代入
f:x^2+y^2;
subst(3, x, f);
式の置き換えは,ratsubst(置き換える式,置き換えられる式,...
**関数定義 [#s1cf276d]
f(x):=x^2+3;
f(4);などとして使用する.
直前の結果から関数を定義するときは
define(f(x), %o1);
**展開 [#be81b96b]
expand((x+2)^5);
factor(x^2+2*x+1);
**係数 [#cb11468e]
有理式から変数の係数を取得する場合,
func:3*x^3+2*x^2+x+1+5*y^2+4*y+3*x*y;
coeff(func,x,1); /* xの係数 : 3y+1 */
coeff(func,x,2); /* x^2の係数 : 2 */
coeff(func,y,2); /* y^2の係数 : 5 */
**多項式の整理 [#gb2bc65a]
他変数の多項式を1つの変数について整理する.
func:3*x^3+2*x^2+x+1+5*y^2+4*y+3*x*y;
rat(%,x);
これにより,
3*x^3+2*x^2+(3*y+1)*x+5*y^2+4*y+1
となる.rat(func,x)でもよい.
**微積 [#f798b944]
-微分 diff(数式,微分したい文字);
diff((x^2+1)^3,x);
-積分 integrate(数式,積分したい文字);
integrate(1/(1+x^3),x);
-微分 diff diff( f(x),x )
-n階微分 diff diff( f(x),x,n )
-不定積分 integrate integrate( f(x),x )
-定積分 integrate integrate( f(x),x,a,b )
-数値積分 romberg romberg( f(x),x,a,b )
-偏微分
diff(f, x)だと,式f中のx以外の要素は定数と見なされ微分さ...
depends(y,x);
diff(x^2+y+xy,x);
結果は,dependsなしだと 2*x,dependsありだと,2*x+'diff(y...
依存関係を取り除く場合は,
remove(y,dependency);
**連立方程式 [#efbaa466]
-代数方程式 solve( 方程式,変数 )
-連立方程式 solve([方程式1,方程式2、...],[変数1,変数2...
-連立方程式 algsys([方程式1,方程式2、...],[変数1,変数2...
**ベクトル [#rc054d81]
-定義
u: [ux,uy,uz];
v: [vx,vy,vz];
-要素アクセス(1始まり)
u[1];
-内積(ux*vx+uy*vy+uz*vz)
u.v;
-ノルム(|u|)
ノルム関数の定義
norm(u):=sqrt(u.u);
-外積
外積関数の定義
cros(u,v):=[u[2]*v[3]-u[3]*v[2], u[3]*v[1]-u[1]*v[3], u[...
-各要素同士の積([a*c, b*d])
u*v;
**行列 [#ib66de0e]
-定義
M: matrix([a,b],[c,d]);
-積
M.M;
-行列とベクトルの積
M.u;
-各要素同士の積
M*M;
-累乗
M^^2;
-各要素の累乗
M^2;
-行列式
determinant(M);
-逆行列
M^^-1;
-トレース(対角成分の和)
load("nchrpl");
mattrace(M);
**定数 [#b145d160]
-円周率
%pi
-虚数単位
%i
-自然対数の底
%e
-黄金比(1+sqrt(5))/2
%phi
**計算結果の表示方法 [#l94656a0]
-浮動小数点表示
float(f(10));
float(%pi);
-より高精度な浮動小数点表示
fpprec:100; // 表示桁数設定
bfloat(%pi);
**整数論 [#p51c9c00]
-除法の商と余り
quotient(60,7); // 商(整数)
mod(60,7); // 余り
divide(60,7); // 商と余り両方
-素数かどうかを調べる(true or false)
primep(67);
-素因数分解
factor(207); // 結果は3^2 * 23
ifactors(207); // 結果は[3,2],[23,1] -> 3^2 * 23^1 の形式
**終了 [#de540368]
quit();
*例 [#d1d46036]
**SPHのPoly6重み関数((h^2-r^2)^3)の係数を求める [#u00f4c58]
W(r):=(h^2-r^2)^3;
integrate( integrate( integrate( W(r)*r^2*sin(theta), r,...
結果は,
9
64 %pi h
---------
315
係数はこの逆数になる(有効範囲内の体積分で割ることで∫W=1と...
2次元では,
integrate( integrate( W(r)*r, r, 0, h), theta, 0, 2*%pi);
*リンク [#se2dd6d9]
-[[公式:http://maxima.sourceforge.net/]]
-[[Maximaで遊ぼう:http://www.bekkoame.ne.jp/~ponpoko/Math...
[[FrontPage]]
終了行:
* Maxima [#j531a254]
**計算結果のファイル保存/読み込み [#t2633c3c]
すべて保存
save("result.max", all);
loadfile("result.max");
入力のみ保存
stringout("input.bat", input);
**Unix系コマンド使用 [#g4d9a7f1]
system("cat input.bat");
**texソースに変換 [#k02c586d]
tex(d1);
**バッチ処理 [#p9ab00c7]
batch("batch.bat");
**カレントディレクトリ変更 [#y3b9c632]
?xchdir("D:\\Temp")$
**出力順序変更 [#d815d31e]
Maxima標準だと,z^2+y^2+x^2のように我々の感覚とは逆に表示...
この出力式の変数順序を変更する.
ordergreat(x,y,z);
これにより,x^2+y^2+z^2のようにx,y,zの順になる.
orderless(z,y,x);
でも同様.
元の状態に戻したいときは,
unorder();
を実行する.また,他の順番にしたいときもunorder()を実行し...
**代入・置き換え [#w152c01b]
x=3をf=x^2+y^2に代入
f:x^2+y^2;
subst(3, x, f);
式の置き換えは,ratsubst(置き換える式,置き換えられる式,...
**関数定義 [#s1cf276d]
f(x):=x^2+3;
f(4);などとして使用する.
直前の結果から関数を定義するときは
define(f(x), %o1);
**展開 [#be81b96b]
expand((x+2)^5);
factor(x^2+2*x+1);
**係数 [#cb11468e]
有理式から変数の係数を取得する場合,
func:3*x^3+2*x^2+x+1+5*y^2+4*y+3*x*y;
coeff(func,x,1); /* xの係数 : 3y+1 */
coeff(func,x,2); /* x^2の係数 : 2 */
coeff(func,y,2); /* y^2の係数 : 5 */
**多項式の整理 [#gb2bc65a]
他変数の多項式を1つの変数について整理する.
func:3*x^3+2*x^2+x+1+5*y^2+4*y+3*x*y;
rat(%,x);
これにより,
3*x^3+2*x^2+(3*y+1)*x+5*y^2+4*y+1
となる.rat(func,x)でもよい.
**微積 [#f798b944]
-微分 diff(数式,微分したい文字);
diff((x^2+1)^3,x);
-積分 integrate(数式,積分したい文字);
integrate(1/(1+x^3),x);
-微分 diff diff( f(x),x )
-n階微分 diff diff( f(x),x,n )
-不定積分 integrate integrate( f(x),x )
-定積分 integrate integrate( f(x),x,a,b )
-数値積分 romberg romberg( f(x),x,a,b )
-偏微分
diff(f, x)だと,式f中のx以外の要素は定数と見なされ微分さ...
depends(y,x);
diff(x^2+y+xy,x);
結果は,dependsなしだと 2*x,dependsありだと,2*x+'diff(y...
依存関係を取り除く場合は,
remove(y,dependency);
**連立方程式 [#efbaa466]
-代数方程式 solve( 方程式,変数 )
-連立方程式 solve([方程式1,方程式2、...],[変数1,変数2...
-連立方程式 algsys([方程式1,方程式2、...],[変数1,変数2...
**ベクトル [#rc054d81]
-定義
u: [ux,uy,uz];
v: [vx,vy,vz];
-要素アクセス(1始まり)
u[1];
-内積(ux*vx+uy*vy+uz*vz)
u.v;
-ノルム(|u|)
ノルム関数の定義
norm(u):=sqrt(u.u);
-外積
外積関数の定義
cros(u,v):=[u[2]*v[3]-u[3]*v[2], u[3]*v[1]-u[1]*v[3], u[...
-各要素同士の積([a*c, b*d])
u*v;
**行列 [#ib66de0e]
-定義
M: matrix([a,b],[c,d]);
-積
M.M;
-行列とベクトルの積
M.u;
-各要素同士の積
M*M;
-累乗
M^^2;
-各要素の累乗
M^2;
-行列式
determinant(M);
-逆行列
M^^-1;
-トレース(対角成分の和)
load("nchrpl");
mattrace(M);
**定数 [#b145d160]
-円周率
%pi
-虚数単位
%i
-自然対数の底
%e
-黄金比(1+sqrt(5))/2
%phi
**計算結果の表示方法 [#l94656a0]
-浮動小数点表示
float(f(10));
float(%pi);
-より高精度な浮動小数点表示
fpprec:100; // 表示桁数設定
bfloat(%pi);
**整数論 [#p51c9c00]
-除法の商と余り
quotient(60,7); // 商(整数)
mod(60,7); // 余り
divide(60,7); // 商と余り両方
-素数かどうかを調べる(true or false)
primep(67);
-素因数分解
factor(207); // 結果は3^2 * 23
ifactors(207); // 結果は[3,2],[23,1] -> 3^2 * 23^1 の形式
**終了 [#de540368]
quit();
*例 [#d1d46036]
**SPHのPoly6重み関数((h^2-r^2)^3)の係数を求める [#u00f4c58]
W(r):=(h^2-r^2)^3;
integrate( integrate( integrate( W(r)*r^2*sin(theta), r,...
結果は,
9
64 %pi h
---------
315
係数はこの逆数になる(有効範囲内の体積分で割ることで∫W=1と...
2次元では,
integrate( integrate( W(r)*r, r, 0, h), theta, 0, 2*%pi);
*リンク [#se2dd6d9]
-[[公式:http://maxima.sourceforge.net/]]
-[[Maximaで遊ぼう:http://www.bekkoame.ne.jp/~ponpoko/Math...
[[FrontPage]]
ページ名: