[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
mathematica.start
:: Localhost で ox_math
を起動する.
整数
ox_math
を起動する.
起動された ox_math
の識別番号を戻す.
Xm_noX =1
としておくと, ox_math
用の debug window が開かない.
M_proc
に格納される.
P = mathematica.start() |
ox_launch
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
mathematica.tree_to_string
:: ox_math の戻す Mathematica の木構造データ t を asir
形式に
なおす.
文字列
リスト
ox_math
の戻す Mathematica の木構造データ.
asir
形式に
なおす.
m_
をキーワードの先頭につけて, 関数呼出形式の文字列へ
かえる.
[267] mathematica.start(); 0 [268] ox_execute_string(0,"Expand[(x-1)^2]"); 0 [269] A=ox_pop_cmo(0); [Plus,1,[Times,-2,x],[Power,x,2]] [270] mathematica.tree_to_string(A); (1)+((-2)*(x))+((x)^(2)) [271] eval_str(@); x^2-2*x+1 |
[259] mathematica.tree_to_string(["List",1,2]); [1 , 2] [260] mathematica.tree_to_string(["Plus",2,3]); (2)+(3) [261] mathematica.tree_to_string(["Complex",2.3,4.55]); mathematica.complex(2.3 , 4.55) [362] mathematica.tree_to_string(["Plus",["Complex",1.2,3.5],1/2]); (mathematica.complex(1.2 , 3.5))+(1/2) [380] eval_str(@); (1.7+3.5*@i) |
ox_pop_cmo
, eval_str
, mathematica.rtomstr
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
mathematica.rtomstr
:: t をなるべく Mathematica の理解可能な文字列に変える.
文字列
オブジェクト
asir
ではリストを [
, ]
で囲むが,
Mathematica では {
, }
で囲む.
この関数はこの変換をおこなう.
[259] mathematica.rtomstr([1,2,3]); {1,2,3} [260] mathematica.rtomstr([[1,x,x^2],[1,y,y^2]]); {{1,x,x^2},{1,y,y^2}} |
もう一つ例をあげよう.
次の関数 mathematica.inverse(M)
は ox_math
をよんで行列 M
の逆行列を計算する関数である.
mathematica.inverse(M)
は次のように r_tostr(M)
を用いて
asir の行列を Mathematica 形式に変換してから
ox_execute_string
で Mathematica に逆行列を計算
させている.
def inverse(M) { P = 0; A = mathematica.rtomstr(M); ox_execute_string(P,"Inverse["+A+"]"); B = ox_pop_cmo(B); C = mathematica.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=mathematica.inverse(M)$ [271] red(A[0][0]); (z*y)/(x^2+(-y-z)*x+z*y) |
ox_execute_string
, ToExpression
(Mathematica),
mathematica.tree_to_string
[ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] |
This document was generated by Nobuki Takayama on January, 28 2008 using texi2html 1.76.