无法绘制隐式定义的曲面

时间:2013-04-18 16:52:59

标签: matlab wolfram-mathematica

我有以下功能,这有点复杂:

   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广义多项式来绘制等值面:_(

1 个答案:

答案 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 的其他值的函数,所以在去那里之前你可能需要先处理这些积分。