【问题标题】:How can I plot an interval-valued function in mathematica?如何在mathematica中绘制区间值函数?
【发布时间】: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


【解决方案1】:

也许你可以做类似的事情

f[x_]=Piecewise[{{0,x<1/2},{Interval[{0,1}],1/2<=x<=1}}];

Plot[{f[x] /. Interval[a_] :> a[[1]], 
 f[x] /. Interval[a_] :> a[[2]]}, {x, 0, 1}, Filling -> {1 -> {2}}]

【讨论】:

    猜你喜欢
    • 2019-11-30
    • 1970-01-01
    • 2011-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多