-1

我想a*y**3 + b(x)*y**2 + c(x)*y + d(x)在 gnuplot 中绘制格式函数。

编辑:要清除我要绘制的内容,这些是以下表达式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:在半夜做事并不总是一个好主意......显然我要求的是表面水平,但实际上我对绘图很感兴趣f(x,y) = 0

4

2 回答 2

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
于 2012-10-11T13:09:44.153 回答
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)
于 2012-10-11T16:09:34.737 回答