2

エルミート多項式の再帰関係について maxima に伝えようとしています。

私の最初の表現は次のようなものです。

phi[0]:exp(-1/2*x^2);

phi[1]:sqrt(2)*x*phi[0];

wxplot2d([phi[0],phi[1]], [x,-5,5]);

ここまでは順調ですが、他のすべてを次のように定義したいと思います。

phi[n]:sqrt(2/n)*x*phi[n-1] - sqrt((n-1)/n)*phi[n-2];

これは爆撃するだけです(スタックオーバーフロー)。そのために本当に言いたいことは

wxplot2d(phi[10], [x,-5,5]) は私に賢明な絵を与えるでしょうか?

4

1 に答える 1

5

これを処理する方法は複数あります。これが機能する1つの方法です。

(%i2) phi[n](x) := sqrt(2/n)*x*phi[n-1](x) - sqrt((n-1)/n)*phi[n-2](x) $
(%i3) phi[0] : lambda ([x], exp(-1/2*x^2)) $
(%i4) phi[1] : lambda ([x], sqrt(2)*x*phi[0](x)) $
(%i5) phi[0];
(%o5) lambda([x],exp((-1)/2*x^2))
(%i6) phi[1];
(%o6) lambda([x],sqrt(2)*x*phi[0](x))
(%i7) phi[2];
(%o7) lambda([x],sqrt(2)*x^2*%e^-(x^2/2)-%e^-(x^2/2)/sqrt(2))
(%i8) phi[3];
(%o8) lambda([x],
         sqrt(2)*x*(sqrt(2)*x^2*%e^-(x^2/2)-%e^-(x^2/2)/sqrt(2))/sqrt(3)
          -2*x*%e^-(x^2/2)/sqrt(3))
(%i9) phi[10];
       <very large expression here>
(%i10) plot2d (%, [x, -5, 5]);
       <nice plot appears>

これは、いわゆる配列関数を使用します。任意の integerの場合nphi[n]はラムダ式 (名前のない関数) です。

これは、リテラル整数 (例: 0、1、2、3、...) に対してのみ機能することに注意してください。phi[n]where is a symbolを扱う必要がある場合nは、別のアプローチを探すことができます。

于 2014-03-28T22:49:39.500 に答える