Mathematica:在无限功能下填充

时间:2013-08-04 14:28:47

标签: plot wolfram-mathematica infinity

Mathematica:填充无限深的潜力

评论:Mathematica问题的正确页面是this one

我想想象Mathematica中一个盒子中的粒子的势阱,类似于维基百科here中的第二张图片。 我已经分段定义了我的功能

(*Length of the box*)
L     = 4; 

(*Infinitly deep potential well between 0 and L*)
V[x_] := Piecewise[{
            {\[Infinity], x <= 0},
            {0, 0 < x < L}, 
            {\[Infinity], L <= x}}]

并希望获得一个绘图函数,该函数给出一个填充区域,其中势可能无穷大。

不幸的是,我的尝试最终出现在势能的“零区域”之间的阴影区域,而我希望在无限区域中有阴影。

Table[Plot[V[x], {x, -5, 10}, 
Filling -> f], {f, {Top, Bottom, Axis, 0.3}}]

2 个答案:

答案 0 :(得分:2)

问题是Infinity对于情节而言太过分了。所以,让我们给它一些其他大数字。但是为了防止它重新缩放y轴,我们需要特定于上面的绘图范围

Block[{\[Infinity] = 1*^1},
 Plot[V[x], {x, -5, 10},  Filling -> Bottom, 
  PlotRange -> {Automatic, 1}]
 ]

或者你可以用V[x]/.\[Infinity]->1*^1代替Block,但我更喜欢Block

答案 1 :(得分:1)

只需给它值而不是无限:

(*Length of the box*)L = 4;

(*Infinitly deep potential well between 0 and L*)

V[x_] := Piecewise[{{1, x <= 0}, {0, 0 < x < L}, {1, L <= x}}]
Plot[V[x], {x, -5, 10}, Filling -> Bottom]

plot

使用图形基元的另一种方法:

wellLeft = 0;
leftBorder = wellLeft - 1;
rightBorder = L + 1;
wellRight = L;
top = 5;
Graphics[{
  Hue[0.67, 0.6, 0.6],
  Opacity[0.2],
  Rectangle[{leftBorder, 0}, {wellLeft, top}],
  Rectangle[{wellRight, 0}, {rightBorder, top}]
  }, Axes -> True]

enter image description here