Gnuplot:函数的条件splot

时间:2015-06-10 23:57:00

标签: conditional gnuplot

我想在x + y-1 = 0的约束下单独绘制函数exp( - (x²+y²))。结果应该是单独的表面以及在x = y = 0.5时具有最大值的线。或者换句话说,它是函数与(110)平面的交集。

我到目前为止所得到的是

f(x,y)=exp(-(x**2+y**2))
g(x,y)=( (x+y-1==0)? f(x,y) : (1/0) )
splot f(x,y), g(x,y)

有和没有g(x,y)的行,但是我无法显示g(x,y) - 我只看到f(x,y)。 另外,我收到了非常丰富的错误消息:

Error: Key "<META>" added to modifier map for multiple modifiers; Using Mod4, ignoring Mod1

Error: Symbol "Meta_L" added to modifier map for multiple modifiers; Using Mod4, ignoring Mod1

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

这不是一个三维图,因为你只有一个自变量。 y的值由x+y-1=0确定。因此,您必须在f(x,y)=exp(-(x**2+y**2))评估f(x,1-x)

f(x,y)=exp(-(x**2+y**2))
plot f(x,1-x) w l

enter image description here

现在,上面的图表当然是曲线在XZ平面上的投影。如果你想要三维视图,那么我建议使用特殊文件名"+"对函数进行数值评估:

f(x,y)=exp(-(x**2+y**2))
set xrange [-10:10]
set yrange [-10:10]
splot "++" u ($1):(1.-$1):(f($1,1.-$1)) w l

enter image description here

您可以看到与表面的交点:

set isosamples 50
splot f(x,y), "++" u ($1):(1.-$1):(f($1,1.-$1)) w l

enter image description here