二元运算符的错误非数字参数

Error non numeric argument to a binary operator

我想绘制一组多项式的误差图。我的命令行如下:

W=function(x){(x^2 - 4*x + 3)*exp(1)^((x*log(x))/2)}
Z=function(x){7*x^3 - 40*x^2 + 69*x -36}
plot(abs(W-Z))

然后我得到一个错误。

要绘制一个函数,必须在一组点上对其求值。简单地做 W-Z 就是试图从另一个函数对象中减去一个函数对象,这是没有意义的,因此是错误的。您可以简单地定义一个序列,在该序列上评估函数并绘制绝对差值。例如,

x <- seq(1, 100, 0.1)

plot(abs(W(x) - Z(x)))

请注意,由于您只向 plot() 提供了一个参数,因此默认的 x 轴标签将为 Index。要更改它,您可以像这样使用 xlab= 参数:

plot(abs(W(x) - Z(x)), xlab="x")

现在 x 轴标签将为 "x"。有关绘图选项的更多信息,请使用 ?plot.

查看 plot 的文档