我有以下功能,这有点复杂:
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中我无法处理Laguerre广义多项式来绘制等值面:_(
答案 0 :(得分:0)
假设 n 定义拉盖尔多项式的阶数, r 是三维矢量(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}]
......例如。
我没有太多运气评估 n 和 l 的其他值的函数,所以在去那里之前你可能需要先处理这些积分。