Я сейчас читаю Руководства по программированию Mathematica, и я пытался разработать одну из самых первых программ книги. В основном, когда я запускаю следующую программу:
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 ^ \ infinity, либо, если я уменьшу опции PlotPoints
, скажем, 60, ошибку переполнения. Хотя у меня есть рабочий выход, но это не то, что должно быть. Кажется, что оттенок рассеивается от левого угла, тогда как он должен рассеивать начало координат (как видно на оригинальном выводе )
Вот оригинальная программа, которая, очевидно, работает на 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
) не работает, и поэтому я попытался просто приспособиться к его новому способу использования.
Ну, спасибо, наверное!