我想在gnuplot中绘制格式为a*y**3 + b(x)*y**2 + c(x)*y + d(x)
的函数。
编辑:要清除我想要绘制的内容,这些是b(x), c(x), d(x)
的表达式:
b(x) = b1 + b2*x
c(x) = c1 + c1*x + c2*x**2
d(x) = d1 + d1*x + d2*x**2 + d3*x**3
a, b1, ... , d2, d3
是常数,我知道。
我想知道是否有办法给gnuplot一个f(x,y)
函数,它会弄清楚(数字上)这个情节。
编辑2:在半夜做一些东西并不总是一个好主意......显然我要求的是表面水平,但实际上我对绘图有兴趣{ {1}}
答案 0 :(得分:1)
这很简单:
gnuplot> b1=1.
gnuplot> b2=2.
gnuplot> c1=1.
gnuplot> c2=2.
gnuplot> d1=2.
gnuplot> d2=3.
gnuplot> d3=4.
gnuplot> b(x) = b1 + b2*x
gnuplot> c(x) = c1 + c1*x + c2*x**2
gnuplot> d(x) = d1 + d1*x + d2*x**2 + d3*x**3
gnuplot> a = 3.0
gnuplot> splot a*y**3 + b(x)*y**2 + c(x)*y + d(x)
我只是编造了一堆常数,但你明白了。您可能缺少的是,因为您正在绘制2个变量(x和y)的函数,所以需要使用splot
。我所做的是将其绘制为曲面,但如果使用pm3d
gnuplot> splot a*y**3 + b(x)*y**2 + c(x)*y + d(x) w pm3d
或者作为地图:
gnuplot> set view map
gnuplot> splot a*y**3 + b(x)*y**2 + c(x)*y + d(x) w pm3d
答案 1 :(得分:0)
我明白了:
set contour
unset surface
set view map
set cntrparam levels discrete 0
splot a*y**3 + b(x)*y**2 + c(x)*y + d(x)