使用 PGFPlots 绘制不等式图

使用 PGFPlots 绘制不等式图

我正在尝试绘制这个不等式的不等式图,但没有找到方法。我想要的图与 Mathematica 生成的图类似。有人可以帮忙吗?

在此处输入图片描述

我试过这个命令

\addplot3 [surf,shader=interp,samples=45, domain=-2:6, y domain=-2:6]
{(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)};

然后,view={0}{90}但是编译需要花费大量时间,我想应该有一种方法可以生成二维图,而不是改变三维图的角度。

答案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}

在此处输入图片描述

相关内容