【发布时间】:2011-12-02 19:22:45
【问题描述】:
考虑以下定义:
f[x_]=Piecewise[{{0,x<1/2},{Interval[{0,1}],x==1/2},{1,x>1/2}}];
那么当做函数的Plot[f[x],{x,0,1}]时,图形并没有描绘图形的区间值f[1/2]。
任何关于如何在 Mathematica 中绘制区间值函数的想法将不胜感激。
更新 #1:我发现了一个 hack:
Plot[ f[x], {x,0,1}, ExclusionsStyle->Opacity[1]];
然而,该 hack 不适用于一般的区间值函数,例如
f[x_]=Piecewise[{{0,x<1/2},{Interval[{0,1}],1/2<=x<=1}}];
这是问题的本质。
更新 #2:
作为下面@Heike 简洁示例的后续:这只是部分解决方案。如果有人尝试以下操作:
f[x_] = Piecewise[{{0, x < 1/2}, {Interval[{x, 1}], 1/2 <= x <= 1}}];
Plot[ {f[x] /. Interval[a_] :> a[[1]], f[x] /. Interval[a_] :> a[[2]]},
{x, 0, 1}, Filling -> {1 -> {2}}]
那么图表描绘了 x=1/2 处等于值 [0,1] 而不是 [1/2,1] 的段。
【问题讨论】:
-
你认为实际上应该描绘一个区间吗?
-
作为图上的垂直线段:由于函数图的元素 (x,f(x)) 在 x=1/2 处是实线上的闭区间,我会像 Mathematica 一样能够为我绘制图表。
-
@Dimitris:
Plot不能绘制多图,只能绘制单射函数。另外,我想你想写Interval[{0,1}]。就目前而言,它的计算结果为Interval[{0,0}, {1,1}],这意味着{0,0}和{1,1}的联合区间。 -
感谢@bbtrv;我的意思是间隔,正如我在下面写的那样 - 修复它。
-
由于 Mma 内置了区间运算,很遗憾
Plot没有重载到实际绘制区间。
标签: wolfram-mathematica intervals