General :: ivar:...不是有效变量

时间:2010-10-10 02:50:12

标签: wolfram-mathematica

我一直试图破译这个输出意味着什么,但我似乎无法弄明白。有人知道这里发生了什么吗?

alt text

我甚至尝试逐行运行这些行,只有在执行最后一行(show)时才会显示错误。

1 个答案:

答案 0 :(得分:6)

单独逐行单独行不会告诉你发生了什么,你必须拆开给你麻烦的陈述:在这种情况下,Show[p1, p2[1,1]p1Show都不能给你带来麻烦,这导致得出的结论是p2[1,1]。这是通过自己运行它产生的,这会产生相同的错误。

由于PlotPlot3D等方式评估函数参数,因此会生成错误。通常,它们基本上对函数的文本执行Replace,并且可能不会扩展函数调用。一个简单的解决方法是将p2重写为

p2[x0_, y0_] := Plot3D[Evaluate[p[x, y, x0, y0]], {x, 0, 2}, {y, 0, 2}]

摆脱了错误。 Evaluate确保在Plot3D获取函数之前以符号方式评估函数,避免任何错误处理。我希望我能更好地了解在这些情况下何时使用Evaluate,但如果你从这样的绘图函数中获得错误,那么很可能是错误处理函数。