答案1
快速简便的方法是使用 CAS Sage 以及sagetex
带有如下代码的包:
\documentclass{standalone}
\usepackage{sagetex}
\usepackage[usenames,dvipsnames]{xcolor}
\usepackage{pgfplots}
\begin{document}
\begin{sagesilent}
H =region_plot((3*sqrt(x^2+y)+sqrt(4*x^3-3*x^2+y)-4)/(sqrt(y+1)+sqrt(3)*sqrt(4*x^3+3*y-1)-4)<=1,(x,-3,5),(y,-3,5),incol='lightblue', bordercol='gray',plot_points=500)
\end{sagesilent}
\sageplot[width=6cm]{H}
\end{document}
通过免费运行代码思杰云帐户来获取此输出。
可以找到有关 region_plot 的文档这里在 Sage 网站上。我认为可以通过 pgfplots 强制绘制这种类型的图,但这会花费更多时间。如果这就是你想要的,你可以在这个网站上找到一些相关的帖子(搜索 plot 和 sagetex),sagetex
例如黎曼 Zeta和康托函数。
答案2
您可以使用pgfplots
和 使用来实现compat=newest
这一点,这应该可以启用 Lua 后端以更快地进行函数评估。但是,编译时间仍然需要几分钟。
\documentclass{article}
\pagestyle{empty}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
\begin{axis}
[
view={0}{90},
samples=101,
domain=-2:6,
y domain=-2:6,
restrict z to domain=-inf:1,
xmin=-2, xmax=6,
ymin=-2, ymax=6,
]
\addplot3 [surf,shader=interp]
{
(3*sqrt(x^2+y)+sqrt(4*x^3-3*x^2+y)-4)
/
(sqrt(y+1)+sqrt(3)*sqrt(4*x^3+3*y-1)-4)
};
\end{axis}
\end{tikzpicture}
\end{document}