Maxima では、関数を使用して、任意の数の変数x[1]
...で微分方程式系を数値的に解きたいと思い ます。for ループで変数にインデックスを付けることができるように、変数名に角かっこを使用します。n = 2 の場合の呼び出しの例を次に示します。x[n]
rk
rk
rk([derivativeOfX[1],-2*x[1]+x[2],derivativeOfX[2],x[1]-2*x[2]], [X[1],derivativeOfX[1],X[2],derivativeOfX[2]], [1,1,2,0], [t,0,10,0.1])
残念ながら、次のエラーが表示されます。
define: in definition of f_rk_4, found bad argument X[1]
とを手動で置き換えるX[1]
とx1
、エラーはなくなります。X[2]
x2
rk([derivativeOfX1,-2*x1+x2,derivativeOfX2,x1-2*x2], [x1,derivativeOfX1,x2,derivativeOfX2], [1,1,2,0], [t,0,10,0.1]);
rk
変数名の角括弧が気に入らないようですが、for ループで変数にインデックスを付けるために角括弧が必要です。私は何をすべきか?