
Ich habe zwei grafische Lösungen für eine Ungleichung (und eine algebraische Lösung dafür). Eine Lösung soll auf der Zahlenlinie und die andere Lösung auf der kartesischen Ebene angezeigt werden. Ich möchte, dass die Zahlenlinie und die x-Achse in der kartesischen Ebene vertikal ausgerichtet sind.
Die Ungleichung ist
\begin{equation*} \frac{6}{x - 5} \geq x \end{equation*}
und die Lösungsmenge ist $(-\infty,-1) \cup (5,6]$. Ich möchte also im ersten Diagramm Markierungen und Beschriftungen für -1
, 5
, und 6
und eine dicke Linie links von -1
und zwischen 5
diesen 6
. Für TikZ
habe ich die folgenden Befehle verwendet.
\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)$);
Ich bin nicht sicher, welche Befehle die entsprechenden pgfplots
wären.
Der Code für die Zahlenreihe ließ sich nicht kompilieren. Ich habe den meisten Befehlen für die Zahlenreihe Kommentarzeilen vorangestellt.
Übrigens hätte ich die Punkte gerne mit einem schwarzen Kreis oder einem blauen Kreis markiert. Warum ist der Punkt (-1,-1)
mit einer blauen Raute und der Punkt mit einem roten Kreis markiert?(6,6)
(-1,-1)
(6,6)
\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}
Antwort1
PGFplots ermöglicht Ihnen die Nutzung aller üblichen Funktionen von TikZ innerhalb seiner {axis}
Umgebung. Sie haben Zugriff auf das Koordinatensystem durch, axis cs
so dass \node at (axis cs: 3, 4) {};
ein Knoten an derX-jKoordinate (3, 4)
. In Version 1.11 axis cs
wurde es zum Standardkoordinatensystem von TikZ innerhalb der {axis}
Umgebungen, sodass Sie es nicht axis cs
jedes Mal angeben müssen und stattdessen einfach eingeben können \node at (3, 4) {};
.
Ich stelle unten zwei sehr ähnliche Möglichkeiten vor, wie Sie (meiner Meinung nach) zeichnen können. Beide zeichnen die beiden relevanten Kurven ( x
und 6 / (5 - x)
), aber die erste verwendet auch dieX-Achse als Zahlenlinie, während die zweite die Zahlenlinie über dem Diagramm platziert.
Variante 1: Alles in Einem
Diese Lösung verwendet einen Achsensatz, um sowohl die entsprechenden Gleichungen für die Ungleichung anzuzeigen als auch den Teil der Zahlenlinie zu beschriften, für den die Ungleichung gilt:
\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}
Variante 2: Zahlenstrahl oben
Wenn Sie die Zahlenlinie von der Achse getrennt haben möchten (wie Sie es in der ursprünglichen Frage beabsichtigen), haben Sie im Grunde alles richtig gemacht:
\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}
Zusätzliche Hinweise
Erstens habe ich mir die Freiheit genommen, Ihr Beispiel zu bereinigen und Umgebungen wie zu verwenden enumerate
, description
und eine Umgebung erstellt solution
, die die Formatierung automatisch für Sie übernimmt. Obwohl \texbf{1) }
und \vskip1em
funktionieren, ist es nicht wirklich die beste Art, LaTeX zu verwenden. Sie sollten schreiben, was Siebedeutenanstatt zu schreiben, was Sie wollensehen\textbf{1) }
. Das bedeutet, dass anstelle von \textbf{2) }
eine Aufzählungsliste und anstelle von \textbf{Solution: } ... \rule{1.5ex}{1.5ex}
eine {solution}
Umgebung vorhanden ist.
Der Vorteil, wenn Sie schreiben, was Siebedeutenist, dass Sie, wenn Sie das Aussehen von Lösungen ändern möchten, dies an einer Stelle tun können, statt das gesamte Dokument durchgehen und jede Instanz ändern zu müssen.
Noch ein paar Kleinigkeiten:
- Aus irgendeinem Grund
{axis}
scheint die Umgebung mindestens einen\addplot
Befehl zu erfordern. Ich vermute, dass dies daran liegt, dass der Befehl benötigt wird, um den Bereich beider Achsen zu berechnen, selbst wennxmin
undxmax,
ymin
angegebenymax
sind. Da ich für die Zahlenlinie eigentlich nichts zeichnen möchte, habe ich verwendet\addplot [draw=none] {0};
. Ich kann in der PGFplots-Dokumentation keine Erwähnung dieser Anforderung finden. - Wenn PGFplots die Positionierung aller Beschriftungen berechnet, scheint eine Mindesthöhe erforderlich zu sein. Beim Zeichnen der Zahlenlinie habe ich zunächst verwendet
height=0pt
, was jedoch zu Fehlern führte, sodass ich stattdessen verwendet habeheight=11em
. Dies hat den zusätzlichen Vorteil, dass ich die Koordinate nicht mehr anpassen mussplot1.south
, da die vertikale Höhe der Grundlinie ausreicht. - Anstatt
samples
unddomain
bei jedem\addplot
Aufruf zu deklarieren, deklariere ich diese Eigenschaften für die gesamte Achse. Dadurch wird der Code etwas übersichtlicher und es wird auch sichergestellt, dass alle Diagramme über die gesamte Domäne gezeichnet werden (ich möchte beispielsweise nicht, dass die Linie aufy=x
halbem Weg endet). Wenn dies jedoch das beabsichtigte Verhalten ist,\addplot [domain=-5:0] {x};
überschreibt having das achsenweitedomain
. - Ähnlich wie beim vorherigen Hinweis funktioniert diese Änderung bei jedem Befehl in dieser Umgebung, wenn Sie
restrict y to domain
die Optionen verwenden . Außerdem werden Punkte verworfen, die außerhalb der angegebenen Domäne liegen. Sie müssen nicht in zwei separaten Aufrufen plotten, da alle Werte, die außerhalb der angegebenen Domäne liegen,{axis}
\addplot
restrict y to domain
6 / (5-x)
\addplot
jDomäne werden automatisch verworfen. - Betrachten Sie im Hinblick auf die beiden vorherigen Punkte
domain
undrestrict y to domain
als Einstellungen für den Gesamtansichts-Port für das gesamte Diagramm. PGFplots ermittelt dann, was gezeichnet werden soll. - Ich verwende
\pgfkeysvalueof{/pgfplots/xmin}
(und analog), um den Wert von zu erhaltenxmin
,ymin
undymax
anstatt sie fest zu codieren. Das bedeutet, dass, wenn ich ändern möchte, wo diej-Achse startet und stoppt, die Asymptotenlinie wird automatisch angepasst. - Anstatt
\addplot
zum Zeichnen der Linie zu verwendenx=5
, verwende ich explizite Koordinaten. Dies liegt hauptsächlich daran, dass ich das Verhalten von PGFplots manchmal als etwas inkonsistent empfand. - Anstatt
\addplot coordinates{-1,-1};
einen einzelnen Punkt zu zeichnen, habe ich einen der grundlegenden Ti verwendetkZ-Befehle. Erstens zeichnen wir nicht wirklich eine weitere Kurve, sondern kommentieren sie, also\addplot
fühlt es sich schon nicht so an, als ob wir das brauchen. Darüber hinaus\addplot
bringt der zusätzliche Befehl die Legendeneinträge und den Plotstilzyklus durcheinander, weshalb Ihr anfänglicher Plot verschiedene Formen und Farben hatte, obwohl Sie sie nicht angegeben haben. - Ich habe gewählt
width=\linewidth
, damit der Plot die Breite der aktuellen Zeile ausfüllt. Was istheight=0.7\linewidth
, ist willkürlich (ich hätte verwenden könnenheight=5cm
), aber der Grund für die Verwendung\linewidth
ist, dass, wenn ich die Formatierung des Dokuments ändere, das Seitenverhältnis der Plotbreite und -höhe gleich bleibt und immer garantiert ist, dass es die Breite der Zeile einnimmt. Was0.7
insbesondere das betrifft, verwende ich normalerweise,0.62
weil dies sicherstellt, dass der Plot dem folgtGoldener Schnitt, aber im speziellen Fall dieses Diagramms sah es meiner Meinung nach etwas zu gequetscht aus, also habe ich stattdessen verwendet0.7
.