
Tenemos este código TikZ y se dijo que esto da un resultado diferente a 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}
También la asíntota da otro resultado como TikZ, consulte la publicación n.° 2 en el enlace de arriba.
¿Qué se puede mejorar en TikZ?
Respuesta1
El problema está en la expansión/precedencia de -
cuando se expande \x
. Puedes usarLa solución de @Skillmono agregue paréntesis:
\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}
El problema de precedencia de signos es aún más evidente si haces esto:
\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}
Parece que cuando, digamos, \x^2
se expande y el valor es negativo, digamos -2, se obtiene -2^2
, que se interpreta como -4
.
Respuesta2
TikZ tiene problemas con la función exponente, úsela \x*\x*\x*\x
en lugar de \x^4
, etc.:
\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}
Para mejorar aún más esto: reduzca domain
(su función evaluada en x = 2 es igual a 45,86), aumente samples
y tal vez use smooth
.
\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}
Si aún tiene problemas numéricos con su función (no es el caso de esta función, pero puede suceder), es posible que desee utilizar el pgfmath-xfp
paquete. Ralentiza un poco tus gráficos, pero el uso de funciones definidas con él proporciona una resolución mucho mejor:
\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}