TikZ가 기능을 잘못 그립니다. - 어떻게 하면 코드를 더 좋게 만들 수 있나요?

TikZ가 기능을 잘못 그립니다. - 어떻게 하면 코드를 더 좋게 만들 수 있나요?

우리는 이 TikZ 코드를 얻었고 이것이 geogebra에 다른 결과를 제공한다고 합니다(https://artofproblemsolving.com/community/c68h3228155_need_help_with_tikz):

\begin{tikzpicture}[scale=.5]
\draw[->] (-3,0)--(5,0) node[below]{$x$};
\draw[->] (0,-7)--(0,3) node[left]{$y$};
\draw[thick, domain=-1.5:2] plot(\x, {2.8*\x^4+4.77*\x^3-5.47*\x^2-7.61*\x});
\end{tikzpicture}

또한 점근선은 TikZ와 같은 또 다른 결과를 제공합니다. 위 링크의 게시물 #2를 참조하세요.

TikZ에서 무엇을 더 좋게 만들 수 있나요?

답변1

-문제는 확장 시 의 확장/우선순위에 있습니다 \x. 당신이 사용할 수있는@Skillmon의 솔루션또는 괄호를 추가하세요.

\documentclass[border=3.14,tikz]{standalone}

\begin{document}

\begin{tikzpicture}[scale=.5]
\draw[->] (-3,0)--(5,0) node[below]{$x$};
\draw[->] (0,-7)--(0,3) node[left]{$y$};
\draw[thick, red, domain=-1.5:2] plot(\x, {2.8*(\x)^4+4.77*(\x)^3-5.47*(\x)^2-7.61*(\x)});
\draw[thick, dotted, domain=-1.5:2] plot(\x, {2.8*\x*\x*\x*\x+4.77*\x*\x*\x-5.47*\x*\x-7.61*\x});
\end{tikzpicture}

\end{document}

여기에 이미지 설명을 입력하세요

다음과 같이 하면 부호 우선순위 문제가 더욱 분명해집니다.

\documentclass[border=3.14,tikz]{standalone}

\begin{document}

\begin{tikzpicture}[scale=.5]
\draw[->] (-3,0)--(5,0) node[below]{$x$};
\draw[->] (0,-7)--(0,3) node[left]{$y$};
\draw[thick, red, domain=-1.5:2] plot(\x, {\x^2});
\draw[thick, dotted, domain=-1.5:2] plot(\x, {(\x)^2});
\end{tikzpicture}

\end{document}

여기에 이미지 설명을 입력하세요

\x^2가 확장되고 값이 음수(예: -2) 일 때 을 얻는 것으로 보이며 -2^2이는 로 해석됩니다 -4.

답변2

케이Z에는 지수 함수에 문제가 있으며 \x*\x*\x*\x대신 사용하는 \x^4등의 문제가 있습니다.

\documentclass[border=3.14,tikz]{standalone}

\begin{document}

\begin{tikzpicture}[scale=.5]
\draw[->] (-3,0)--(5,0) node[below]{$x$};
\draw[->] (0,-7)--(0,3) node[left]{$y$};
\draw[thick, domain=-1.5:2] plot(\x, {2.8*\x*\x*\x*\x+4.77*\x*\x*\x-5.47*\x*\x-7.61*\x});
\end{tikzpicture}

\end{document}

여기에 이미지 설명을 입력하세요

이를 더욱 개선하려면 다음을 수행하십시오 . domain(x=2에서 평가된 함수는 45.86과 같음) 을 늘리고 .samplessmooth


\documentclass[border=3.14,tikz]{standalone}

\begin{document}

\begin{tikzpicture}[scale=.5]
\draw[->] (-3,0)--(5,0) node[below]{$x$};
\draw[->] (0,-7)--(0,3) node[left]{$y$};
\draw[thin, red, domain=-1.5:1.5, samples=101, smooth] plot(\x, {2.8*\x*\x*\x*\x+4.77*\x*\x*\x-5.47*\x*\x-7.61*\x});
\end{tikzpicture}

\end{document}

함수에 여전히 숫자 문제가 있는 경우(이 함수에는 해당되지 않지만 발생할 수 있음) 패키지를 사용하는 것이 좋습니다 pgfmath-xfp. 플롯 속도가 약간 느려지지만 여기에 정의된 함수를 사용하면 훨씬 더 나은 해상도를 얻을 수 있습니다.

\documentclass[border=3.14,tikz]{standalone}

\usepackage{pgfmath-xfp}

\begin{document}

\begin{tikzpicture}[scale=.5]
\draw[->] (-3,0)--(5,0) node[below]{$x$};
\draw[->] (0,-7)--(0,3) node[left]{$y$};
\draw[red, domain=-1.5:1.5, samples=101, smooth] plot(\x, {2.8*\x*\x*\x*\x+4.77*\x*\x*\x-5.47*\x*\x-7.61*\x});
\pgfmxfpdeclarefunction{myfunction}{1}
  {2.8*(#1)^4+4.77*(#1)^3-5.47*(#1)^2-7.61*(#1)}
\draw[very thin, blue, domain=-1.5:1.5, samples=101,smooth] plot(\x, {myfunction(\x)});
\end{tikzpicture}

\end{document}

여기에 이미지 설명을 입력하세요

관련 정보