我正在閱讀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