
Tengo dos soluciones gráficas para una desigualdad (y una solución algebraica). Una solución se mostrará en la recta numérica y la otra solución se mostrará en el plano cartesiano. Quiero que la recta numérica y el eje x en el plano cartesiano estén alineados verticalmente.
La desigualdad es
\begin{ecuación*} \frac{6}{x - 5} \geq x \end{ecuación*}
y el conjunto de soluciones es $(-\infty,-1) \cup (5,6]$. Entonces, en el primer gráfico, quiero marcas y etiquetas para -1
, 5
y 6
una línea gruesa dibujada a la izquierda de -1
y entre 5
y 6
. Con TikZ
, utilicé los siguientes comandos.
\draw[line width=2pt, -latex] ($(-1,0) +(-3pt,0pt)$) -- (-2.9,0);
\draw[fill] (-1,0) circle (3pt);
\draw (5,0) circle (3pt);
\draw[fill] (6,0) circle (3pt);
\draw[line width=2pt] ($(5,0) +(3pt,0pt)$) -- ($(6,0) +(-3pt,0pt)$);
No estoy seguro de cuáles pgfplots
serían los comandos apropiados.
El código de la recta numérica no se compilaba. Puse líneas de comentarios delante de la mayoría de los comandos de la recta numérica.
Por cierto, me gustaría que los puntos (-1,-1)
estuvieran (6,6)
marcados con un círculo negro o un círculo azul. ¿Por qué el punto está (-1,-1)
marcado con un diamante azul y el punto (6,6)
marcado con un círculo rojo?
\documentclass{amsart}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{tikz}
\usetikzlibrary{calc,positioning,intersections}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}
\begin{document}
\noindent {\textbf{1.) }}Determine the solution set to
\begin{equation*}
\frac{6}{x - 5} \geq x .
\end{equation*}
Graph the solution set on the real number line.
\vskip0.2in
\noindent {\bf Solution} \vskip1.25mm
\noindent $q(x) = 6/(x - 5)$ is a rational function defined on ${\mathbb{R}}\setminus\{5\}$. On the interval $(5, \, \infty)$, $q(x) \geq x$ if, and only if,
\begin{equation*}
(x - 6)(x + 1) = x^{2} - 5x - 6 \leq 0 ,
\end{equation*}
or equivalently, $5 < x \leq 6$. Likewise, on the interval $(-\infty, \, 5)$, $q(x) \geq x$ if, and only if, $x \leq -1$. \rule{1.5ex}{1.5ex}
\vskip0.2in
\noindent \hspace*{\fill}
\begin{tikzpicture}
\begin{axis}[name=plot1, %height=0.5in, width=5in, clip=false,
% xmin=-10,xmax=16,
% xlabel=$x$,
% axis line style={latex-latex},
% xtick={},
% extra x ticks={-1,5,6},
% extra x tick labels={$-1$,5,6},
% extra x tick style={xticklabel style={below}},
% xlabel style={at={(ticklabel* cs:1)},anchor=north west}
]
\end{axis}
\begin{axis}[name=plot2, at={($(plot1.south)+(0,-0.75cm)$)}, anchor=north, height=5in, width=5in,
axis lines=middle, clip=false,
xmin=-10,xmax=16,
ymin=-10,ymax=16,
restrict y to domain=-10:16,
xtick={\empty},ytick={\empty},
ticklabel style={font=\tiny,fill=white},
extra x ticks={-1,6},
extra x tick labels={$-1$,6},
axis line style={latex-latex},
xlabel=$x$,ylabel=$y$,
enlargelimits={abs=0.25cm},
xlabel style={at={(ticklabel* cs:1)},anchor=north west},
ylabel style={at={(ticklabel* cs:1)},anchor=south west}
]
\addplot[samples=501,domain=-10:4.4, blue] {6/(x - 5)};
\addplot[samples=501,domain=5.4:16, blue] {6/(x - 5)} node[above,pos=0.9,font=\footnotesize]{$y=\dfrac{6}{x-5}$};
\addplot[latex-latex, samples=2, domain=-10:15] {x} node[anchor=west, pos=1, font=\footnotesize]{$y=x$};
\addplot[dashed, latex-latex, samples=2, domain=-10:16] (5,x) node [pos=0.05, anchor=north, font=\footnotesize, sloped] {$x=5$};
\addplot coordinates{(-1,-1)};
\addplot coordinates{(6,6)} node[anchor=west,font=\footnotesize]{$(6,6)$};
\end{axis}
\end{tikzpicture}
\end{document}
Respuesta1
PGFplots le permite utilizar todas las funciones habituales de TikZ dentro de su {axis}
entorno. Tienes acceso al sistema de coordenadas a través axis cs
de lo que \node at (axis cs: 3, 4) {};
coloca un nodo en elX-ycoordinar (3, 4)
. En la versión 1.11, axis cs
se convirtió en el sistema de coordenadas predeterminado utilizado por TikZ dentro de los {axis}
entornos, por lo que no es necesario especificarlo axis cs
cada vez y, en su lugar, simplemente puede escribir \node at (3, 4) {};
.
A continuación proporciono dos formas muy similares de dibujar (lo que creo) que deseas. Ambos trazan las dos curvas relevantes ( x
y 6 / (5 - x)
), pero el primero también usa laX-eje como la recta numérica mientras que el segundo coloca la recta numérica encima de la gráfica.
Versión 1: Todo en uno
Esta solución utiliza un conjunto de ejes para mostrar las ecuaciones apropiadas para la desigualdad y etiquetar la parte de la recta numérica para la cual la desigualdad es verdadera:
\documentclass{amsart}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amsthm}
\usepackage{thmtools}
\declaretheoremstyle[
headfont=\normalfont\bfseries,
numbered=unless unique,
bodyfont=\normalfont,
spaceabove=1em plus 0.75em minus 0.25em,
spacebelow=1em plus 0.75em minus 0.25em,
qed={\rule{1.5ex}{1.5ex}},
]{solstyle}
\declaretheorem[
style=solstyle,
title=Solution,
refname={solution,solutions},
Refname={Solution,Solutions}
]{solution}
\usepackage{enumitem}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\begin{document}
\begin{enumerate}[label=\bfseries\arabic*)]
\item Determine the solution set to
\begin{equation*}
\frac{6}{x - 5} \geq x .
\end{equation*}
Graph the solution set on the real number line.
\begin{solution}
We first observe that there is a singularity at \(x = 5\) as we consider the
region above and below \(5\) separately:
\begin{description}
\item[\(\boldsymbol{x > 5}\)] Over this interval, the denominator is always
greater than zero. As a result, multiplying both sides by \(x-5\) we
obtain:
\begin{align*}
& 6 \geq x^{2} - 5x \\
\Leftrightarrow & 0 \geq x^{2} - 5x - 6 = (x-6)(x+1)
\end{align*}
Over the given domain, \(x+1\) is always positive; therefore, we must have
that \(x-6 \leq 0\) and conclude that the inequality is satisfied only for
\(5 < x \leq 6\).
\item[\(\boldsymbol{x < 5}\)] Over this internal, the denominator is always
less than zero. As a result, multiplying both sides by \(x-5\) flips the
inequality and we obtain:
\begin{align*}
& 6 \leq x^{2} - 5x \\
\Leftrightarrow & 0 \leq x^{2} - 5x - 6 = (x-6)(x+1)
\end{align*}
Over the given domain, \(x-6\) is always negative; therefore, we must have
that \(x+1 \leq 0\) and conclude that the inequality is satisfied only for
\(x \leq -1\).
\end{description}
The two relevant curves for this inequality are plotted below with the
appropriate domain marked in red along the \(x\)-axis:
\begin{center}
\begin{tikzpicture}
\begin{axis}[
width=\linewidth,
height=0.7\linewidth,
axis lines=middle,
xlabel=\(x\),
ylabel=\(y\),
xlabel style={at={(ticklabel* cs:1)},anchor=west},
ylabel style={at={(ticklabel* cs:1)},anchor=south},
clip=false,
domain=-5:10,
samples=501,
restrict y to domain=-10:16,
clip=false,
]
\addplot [blue] {6/(x - 5)}
node [above, pos=0.95, font=\footnotesize] {\(y=\dfrac{6}{x-5}\)};
\addplot [latex-latex] {x}
node[anchor=west, pos=1, font=\footnotesize]{\(y=x\)};
\draw [dashed, latex-latex]
(5,\pgfkeysvalueof{/pgfplots/ymin}) -- (5, \pgfkeysvalueof{/pgfplots/ymax})
node [pos=0.05, below, sloped, font=\footnotesize] {\(x=5\)};
\fill [blue] (-1, -1) circle [radius=2pt]
node [anchor=north, font=\footnotesize] {\((-1, -1)\)};
\fill [blue] (6, 6) circle [radius=2pt]
node [anchor=west, font=\footnotesize] {\((6, 6)\)};
\draw [-latex, red, very thick] (-1, 0) -- (\pgfkeysvalueof{/pgfplots/xmin}, 0);
\draw [red, very thick] (5, 0) -- (6, 0);
\fill [black] (-1, 0) circle [radius=2pt];
\draw [draw=black, fill=white] (5, 0) circle [radius=2pt];
\fill [black] (6, 0) circle [radius=2pt];
\end{axis}
\end{tikzpicture}
\end{center}
\end{solution}
\end{enumerate}
\end{document}
Versión 2: recta numérica en la parte superior
Si desea tener la recta numérica separada del eje (como pretendía en la pregunta original), básicamente lo tenía todo bien:
\begin{center}
\begin{tikzpicture}
\begin{axis}[
name=plot1,
width=\linewidth,
height=11em,
axis x line=middle,
axis y line=none,
clip=false,
domain=-5:10,
axis line style={latex-latex},
]
\addplot [draw=none] {0};
\draw [-latex, red, very thick] (-1, 0) -- (\pgfkeysvalueof{/pgfplots/xmin}, 0);
\draw [red, very thick] (5, 0) -- (6, 0)
node [above, pos=0] {\(5\)}
node [above, pos=1] {\(6\)};
\fill [black] (-1, 0) circle [radius=2pt]
node [red, above] {\(-1\)};
\draw [draw=black, fill=white] (5, 0) circle [radius=2pt];
\fill [black] (6, 0) circle [radius=2pt];
\end{axis}
\begin{axis}[
at=(plot1.south),
anchor=north,
width=\linewidth,
height=0.7\linewidth,
axis lines=middle,
xlabel=\(x\),
ylabel=\(y\),
xlabel style={at={(ticklabel* cs:1)},anchor=west},
ylabel style={at={(ticklabel* cs:1)},anchor=south},
clip=false,
domain=-5:10,
samples=501,
restrict y to domain=-10:16,
clip=false,
]
\addplot [blue] {6/(x - 5)}
node [above, pos=0.95, font=\footnotesize] {\(y=\dfrac{6}{x-5}\)};
\addplot [latex-latex] {x}
node[anchor=west, pos=1, font=\footnotesize]{\(y=x\)};
\draw [dashed, latex-latex]
(5,\pgfkeysvalueof{/pgfplots/ymin}) -- (5, \pgfkeysvalueof{/pgfplots/ymax})
node [pos=0.05, below, sloped, font=\footnotesize] {\(x=5\)};
\fill [blue] (-1, -1) circle [radius=2pt]
node [anchor=north, font=\footnotesize] {\((-1, -1)\)};
\fill [blue] (6, 6) circle [radius=2pt]
node [anchor=west, font=\footnotesize] {\((6, 6)\)};
\end{axis}
\end{tikzpicture}
\end{center}
Notas adicionales
En primer lugar, me tomé la libertad de limpiar su ejemplo y utilizar entornos como enumerate
y description
creé un solution
entorno para encargarse del formato automáticamente. Aunque funciona \texbf{1) }
y \vskip1em
funciona, en realidad no es la mejor manera de usar LaTeX. Deberías escribir lo quesignificaren lugar de escribir lo que quieresver. Es decir, en lugar de \textbf{1) }
, \textbf{2) }
tener una lista enumerada; y en lugar de eso \textbf{Solution: } ... \rule{1.5ex}{1.5ex}
, tener un {solution}
ambiente.
La ventaja de escribir lo quesignificares que si desea cambiar la apariencia de las soluciones, puede hacerlo en un solo lugar en lugar de tener que revisar todo el documento y cambiar cada instancia.
Algunas otras pequeñas cosas:
- Por alguna razón, el
{axis}
entorno parece requerir tener al menos un\addplot
comando. Sospecho que es porque necesita eso para calcular el rango de ambos ejes incluso sixmin
yxmax,
ymin
estánymax
todos especificados. Como no quiero trazar nada para la recta numérica, utilicé\addplot [draw=none] {0};
. Parece que no puedo encontrar ninguna mención de este requisito en la documentación de PGFplots. - Cuando PGFplots calcula la posición de todas las etiquetas, parece requerir una altura mínima. Al dibujar la recta numérica, inicialmente usé
height=0pt
, pero esto resultó en errores, por lo que uséheight=11em
. Esto tiene el beneficio adicional de que ya no necesito ajustar lasplot1.south
coordenadas ya que la altura vertical de la línea base es suficiente. - En lugar de declarar
samples
ydomain
con cada\addplot
llamada, declaro estas propiedades para todo el eje. Esto hace que el código sea un poco más limpio y también garantiza que todos los gráficos se dibujen en todo el dominio (por ejemplo, prefiero que la línea noy=x
se detenga a la mitad). Sin embargo, si ese es el comportamiento previsto,\addplot [domain=-5:0] {x};
anulará el ancho del ejedomain
. - Similar a la nota anterior, tener
restrict y to domain
en las{axis}
opciones hace que ese cambio funcione para cada\addplot
comando en ese entorno. Además,restrict y to domain
descarta puntos que están fuera del dominio especificado. No es necesario trazar6 / (5-x)
en dos\addplot
llamadas separadas porque cualquier valor que termine fuera del especificadoydominio se descartan automáticamente. - Con respecto a los dos puntos anteriores, piense en
domain
yrestrict y to domain
como configuración el puerto de visualización general para todo el gráfico, y PGFplots descubrirá qué dibujar. - Utilizo
\pgfkeysvalueof{/pgfplots/xmin}
(y análogo) para obtener el valor dexmin
yymin
enymax
lugar de codificarlos. Esto significa que si quiero cambiar donde estáy-eje comienza y se detiene, la línea asíntota se ajustará automáticamente. - En lugar de usar
\addplot
para dibujar la líneax=5
, uso coordenadas explícitas. Esto se debe principalmente a que a veces encontré que el comportamiento de PGFplots es ligeramente inconsistente. - En lugar de usar
\addplot coordinates{-1,-1};
para dibujar un solo punto, usé uno de los Ti básicoskComandos Z. En primer lugar, en realidad no estamos trazando otra curva, sino que la estamos anotando, por lo que\addplot
ya no parece lo que necesitamos. Además, tener el\addplot
comando adicional alterará las entradas de la leyenda y el ciclo de estilo de trazado, de ahí que su trazado inicial tuviera varias formas y colores a pesar de no especificarlos. - Elegí
width=\linewidth
que la trama ocupara el ancho de la línea actual. En cuanto aheight=0.7\linewidth
, es arbitrario (podría haber usadoheight=5cm
), pero la razón para usarlo\linewidth
es que si cambio el formato del documento, la relación de aspecto del ancho y alto del trazado sigue siendo la misma y siempre se garantiza que ocupará el ancho. de la línea. En cuanto a0.7
en particular, normalmente lo uso0.62
porque garantiza que la trama siga elproporción áurea, pero en el caso particular de este gráfico pensé que se veía demasiado aplastado, así que usé0.7
.