m_rtostrasir ではリストを [, ] で囲むが,
Mathematica では {, } で囲む.
この関数はこの変換をおこなう.
[259] m_rtostr([1,2,3]);
{1,2,3}
[260] m_rtostr([[1,x,x^2],[1,y,y^2]]);
{{1,x,x^2},{1,y,y^2}}
もう一つ例をあげよう.
次の関数 m_Inverse(M) は ox_math
をよんで行列 M の逆行列を計算する関数である.
m_Inverse(M) は次のように r_tostr(M) を用いて
asir の行列を Mathematica 形式に変換してから
ox_execute_string で Mathematica に逆行列を計算
させている.
def m_Inverse(M) {
P = 0;
A = m_rtostr(M);
ox_execute_string(P,"Inverse["+A+"]");
B = ox_pop_cmo(B);
C = m_tree_to_string(B);
return(eval_str(C));
}
[269] M=[[1,x,x^2],[1,y,y^2],[1,z,z^2]];
[[1,x,x^2],[1,y,y^2],[1,z,z^2]]
[270] A=m_Inverse(M)$
[271] red(A[0][0]);
(z*y)/(x^2+(-y-z)*x+z*y)
ox_execute_string, ToExpression(Mathematica),
m_tree_to_string
Go to the first, previous, next, last section, table of contents.