)%20%D1%81%20%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D1%8C%D1%8E%20pgfplots%20%D0%B2%20%D1%81%D1%80%D0%B5%D0%B4%D0%B5%20%D0%BE%D1%81%D0%B5%D0%B9%3F.png)
Я хотел бы построить график функции arcsin(sin(x)) в среде осей с помощью PGFplots. Полученное мной поведение приводит меня к мысли, что функции 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, сначала нужно преобразовать x в градусы для sin
получения функции, а затем после функции преобразовать обратно в радианы 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}