在y中绘制三阶多项式

时间:2012-10-11 04:05:36

标签: gnuplot

我想在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}}

2 个答案:

答案 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)