我想绘制此函数(抱歉,我不知道如何在这个论坛上写出方程式):
f(x)= -2*arccos(0.5*e^(ln(4)/x)-1)+pi
当我在 中输入代码(如下所示)时pgfplots
,出现错误,提示“维度太大”。我尝试将和中x
的整个 放入 中,我将域限制为(因此它继续),但似乎没有任何效果。唯一不会出错的方法是删除。但是,我得到一个空网格,其中没有显示任何函数。有人知道如何绘制这个函数吗?arccos
deg()
y
2:8
deg()
\begin{figure}[H]
\begin{tikzpicture}[scale=1.3, transform shape]
\begin{axis}[xmin=-8, xmax=8, ymin=-4, ymax=4, restrict y to domain=-8:1, axis x line=center, axis y line=center]
\addplot[color=blue, samples=100, domain=2:8]
{-2*acos( 0.5*e^(ln(4)/x) -1 )+pi};
\end{axis}
\end{tikzpicture}
\centering
\label{fig:thetafunction}
\end{figure}
这里你可以发现情节应该是什么样的。
答案1
我不明白你到底想用y
域做什么,因为你的函数只依赖于x
。问题是acos
函数以度为单位返回答案,但你想要以弧度为单位(如果我理解正确的话)。请参阅这答案。另外,我不确定是否有人可以更好地处理域问题,但由于您的x
在分母中,因此您在 处遇到了问题x=0
。我只是将域分成两部分,您可以根据需要随意更改边界。希望这对您有用。
\documentclass[10pt]{article}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot[color=blue, samples=100, domain=1:8]
{pi -2.0 * rad(acos(0.5 * exp(ln(4.0)/x) - 1.0))};
\addplot[color=red, samples=100, domain=-8:-0.1]
{pi -2.0 * rad(acos(0.5 * exp(ln(4.0)/x) - 1.0))};
\end{axis}
\end{tikzpicture}
\end{document}