我正在阅读Mathematica编程指南,并试图编制本书的第一个程序之一。基本上,当我运行下面的程序:使用Mathematica 7调试Mathematica 5上的工作程序
Plot3D[{Re[Exp[1/(x + I y)]]}, {x, -0.02, 0.022}, {y, -0.04, 0.042},
PlotRange -> {-1, 8}, PlotPoints -> 120, Mesh -> False,
ColorFunction -> Function[{x1, x2, x3}, Hue[Arg[Exp[1/(x1 + I x2)]]]]]
任我得到一个1/0的错误和e^\无穷大的错误,或者,如果我降低PlotPoints
选项,比方说,60,溢出错误。虽然我有一个工作输出,但它不是它应该的。色调似乎从左角扩散,而它应该是原点扩散(可以在原始output上看到)
这是原始程序,显然运行在Mathematica 5上(Trott,Mathematica编程指南):
Off[Plot3D::gval];
Plot3D[{Re[Exp[1/(x + I y)]], Hue[Arg[Exp[1/(x + I y)]]]},
{x, -0.02, 0.022}, {y, -0.04, 0.042},
PlotRange -> {-1, 8}, PlotPoints -> 120, Mesh -> False]
Off[Plot3D::gval];
然而,ColorFunction
用这样的方式(第一Plot3D
参数)不工作,所以我想简单地适应新使用它的方式。
嗯,谢谢我猜!
是的,我已经明白了这一点,但我真的试图找出两个版本之间的变化,使旧代码无法使用。我也试图搞砸Plot3D的'WorkingPrecision'选项,但它也没有帮助。 无论如何,谢谢你的答案! – Literal 2010-04-20 14:30:59