0

私は次の関数を持っていますが、これは少し複雑です:

   X1=Function[{r,\[Theta],l},4Re[(N[Integrate[E^(-(r^2+R^2)+2 I R l/r) (r+I R)^(2 l) 
(LaguerreL[1/2 (-l+n),l,(r^2+R^2)])^2 ,{R,-\[Infinity],\[Infinity]}]])]];

ここで、関数は [シータ] で一定です。この関数は、方程式 X1(r, [シータ], l)=0.08 によってサーフェス (多かれ少なかれ円筒形) を定義します。

問題は、コマンドでも描画できないことです:MathematicaのContourPlot3D、ListContourPlot3D、matlabでは、ラゲール一般化多項式を処理して等値面をプロットすることができませんでした:_(

4

1 に答える 1

0

nがラゲール多項式の次数を定義し、rが 3 次元ベクトル(x、y、z)の長さであると仮定すると、方程式から等高線図が得られます。

計算をもう少し効率的にするために、積分をメモ関数として定義しました。

fx1nl[n_, l_] := 
 fx1nl[n, l] = 
  4 Re[(N[Integrate[
       E^(-(r^2 + R^2) + 2 I R l/r) (r + I R)^(2 l) (LaguerreL[
           1/2 (-l + n), 
           l, (r^2 + R^2)])^2, {R, -\[Infinity], \[Infinity]}]])]

(その定義にrへの依存を組み込む方法がわからないので、代わりに次のハックを使用します。

fx1[rp_, n_, l_] := fx1nl[n, l] /. r -> rp

その後、先に進むことができます

ContourPlot3D[ fx1[Sqrt[x^2 + y^2 + z^2], 1, 1] == 0.08, {x, 0, 1}, {y, 0, 1}, {z, 0, 1} ]

... 例えば。

nlの他の値の関数を評価する運があまりないので、そこに行く前にそれらの積分を計算する必要があるかもしれません。

于 2013-05-07T18:31:37.830 に答える