这个问题的灵感来自我对另一个问题的回答。我想提供另一种隐函数图解决方案。不幸的是,以下代码会产生 PostScript 错误/undefinedresult in --exp--
。如何修复?
\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-func}
\begin{document}
\begin{pspicture}(-2,-2)(2,2)
\psplotImp[linecolor=red,stepFactor=0.2,algebraic](-2,-2)(2,2){x^(2/3)+y^(2/3)-2^(2/3)}
\end{pspicture}
\end{document}
答案1
该怎么办? (-2)^0.667 是不可能的,写成(x^2)^(1/3)
使用
\psplotImp[linecolor=red,stepFactor=0.1,
algebraic](-2.1,-2.1)(2.1,2.1){(x^2)^0.333+(y^2)^0.333-4^0.333}
并且正如文档中提到的那样,使用小于迭代区域的剪切区域,这是剪切所有“moveto”行所需的,这可以在 Heikos 的回答中看到:
\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-func}
\begin{document}
\begin{pspicture*}(-2,-2)(2,2)
\psplotImp[linecolor=red,stepFactor=0.1,
algebraic](-2.1,-2.1)(2.1,2.1){(x^2)^0.333+(y^2)^0.333-4^0.333}
\end{pspicture*}
\end{document}
答案2
ghostscript 解释器在打印部分虚空间中的图时遇到了一些麻烦。x
和的范围y
包括负数,并且指数不是整数。exp
运算符不支持这一点后记:
经验:根据 指数 经验 真实的
加薪根据到指数幂。操作数可以是整数或 r 数。如果指数有小数部分,则只有当底数为非负时结果才有意义。结果始终是实数。
例子
9 0.5 经验值 ⇒ 3.0
-9 -1 经验值 ⇒ -0.111111错误: 堆栈下溢,类型检查,未定义结果
在您的情况下,您会得到后一个错误undefinedresult
。如果范围限制为非负数,则该示例有效。
\documentclass[pstricks,border=12pt]{standalone}
\usepackage{pst-func}
\begin{document}
\begin{pspicture}(0,0)(2,2)
\psplotImp[linecolor=red,stepFactor=0.2,algebraic](0,0)(2,2){x^(2/3)+y^(2/3)-2^(2/3)}
\end{pspicture}
\end{document}