如何在 axis 環境中使用 pgfplots 繪製 arcsin(sin(x)) ?

如何在 axis 環境中使用 pgfplots 繪製 arcsin(sin(x)) ?

我想使用 PGFplots 在軸環境中繪製函數 arcsin(sin(x)) 。我獲得的行為使我相信函數 arcsin 和 sin 在產生函數 x -> x 之前相互抵消,這並不完全是正確的行為。

\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
    \begin{tikzpicture}[line cap=round,line join=round,x=1cm,y=1cm]
        \begin{axis}[
        x=1cm,y=1cm,
        axis lines=middle,
        ymajorgrids=true,
        xmajorgrids=true,
        xmin=-8.5,
        xmax=8.5,
        ymin=-6.5,
        ymax=7.5,
        xtick={-10,-9,...,10},
        ytick={-7,-6,...,7},
        ]
            \addplot[smooth,samples=100,domain=-8.5:8.5] (\x,{asin(sin(\x))});
        \end{axis}
    \end{tikzpicture}
\end{document}

這會產生以下輸出: 給定程式碼的輸出。

但是,輸出應該如下所示: 在此輸入影像描述

怎麼解決這個問題呢?我特別尋找一種避免在如此多的子區間上破壞函數的方法,因為這可能會變得非常乏味。

答案1

正如@mickeo所說,您需要先將sin函數的x轉換為deg,然後在函數之後將弧度轉換回asin

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
x=1cm,y=1cm,
axis lines=middle,
ymajorgrids=true,
xmajorgrids=true,
xmin=-8.5,
xmax=8.5,
ymin=-6.5,
ymax=7.5,
]
\addplot[green!50!black,very thick,smooth,samples=100,domain=-8.5:8.5] {asin(sin(deg(x)))*(pi/180)};
\end{axis}
\end{tikzpicture}
\end{document}

在此輸入影像描述

相關內容