
Ich hätte gerne den Code, der TikZ anweist, den Graphen für die rationale Funktion zu zeichnen y=(x^{2}+5x+6)/(x^{2}+2x-3)
. Ich habe versucht, zu verwenden addplot[very thin,blue]{frac(x^{2}+5x+6)/(x^{2}+2x-3)}
. Dieser Graph hat eine vertikale Asymptote x = 1. Wie lautet der Code zum Zeichnen dieser Linie – als gestrichelte Linie – mit Pfeilspitzen?
\documentclass[10pt]{amsart}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.11}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{amsthm}
\begin{document}
\hspace*{\fill}
\begin{tikzpicture}
\begin{axis}[axis equal image,
xmax=8,ymax=7,
axis lines=middle,
restrict y to domain=-7:7,
enlargelimits={abs=1cm},
axis line style={latex-latex},
ticklabel style={fill=white},
ytick=\empty,
xtick={-3}
%xlabel=$x$,ylabel=$y$,
]
\addplot[domain=-10:10,mark=none,samples=10] {frac{x + 2}{x - 1} node [above left, yshift=3pt]{$\scriptstyle{y}=\frac{x^{2}+5x+6}{x^{2}+2x-3}$};
\draw [fill=white] (-3,0) circle [radius=1.5pt];
\end{axis}
\end{tikzpicture}
\hspace{\fill}
\end{document}
Antwort1
Mit meiner Version von PGFplots \addplot
lässt sich der von Ihnen angegebene Befehl nicht einmal kompilieren, daher musste ich raten, was Sie erreichen möchten. In PGFplots können Sie Brüche einfach wie folgt schreiben: 1/(x^2)
.
Mit Matthews Kommentar zu Jakes Antwort aufdiese Fragex=1
Sie können mit der Taste eine Asymptote bei zeichnen vasymptote=1
. Um das Diagramm zuverlässig abzuschneiden, ohne viele Stichproben zu verwenden (orangefarbene Kurve), können Sie die beiden Teile separat darstellen und dabei angeben, domain
dass es etwas früher endet x=1
(schwarze Kurve).
\documentclass[10pt]{amsart}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8}
\pgfplotsset{vasymptote/.style={
before end axis/.append code={
\draw[densely dashed] ({rel axis cs:0,0} -| {axis cs:#1,0})
-- ({rel axis cs:0,1} -| {axis cs:#1,0});
}
}}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
axis equal image,
axis lines=middle,
xmin=-10,xmax=10,
ymin=-10,ymax=10,
enlargelimits={abs=1cm},
axis line style={latex-latex},
ticklabel style={fill=white},
ytick={-10,10},
xtick={-3,-10,10},
vasymptote=1,
]
% This doesn't clip to y=-10:10 nicely
% because there are too few samples near the asymptote:
\addplot[very thick, orange, domain=-10:10,samples=200, restrict y to domain=-10:10]
{(x^2+5*x+6)/(x^2+2*x-3)};
% Draw the two parts separately with individual domains:
\addplot[samples=50,domain=-10:1-0.27] {(x^2+5*x+6)/(x^2+2*x-3)};
\addplot[samples=50,domain=1+0.33:10] {(x^2+5*x+6)/(x^2+2*x-3)};
\draw [fill=white] (-3,0) circle [radius=1.5pt]; % What is this?
\end{axis}
\end{tikzpicture}
\end{document}
Antwort2
Die Lösung von Mark Wibrow führt zu einer permanenten Katastrophe, wenn plotpoints=14*(2^n)+1
(für jede nicht-negative ganze Zahl n
).
Um ein solches Problem zu beheben, kann (nur zum Spaß) die folgende Lösung verwendet werden.
\documentclass[pstricks,border=20pt,12pt]{standalone}
\usepackage{pst-plot}
\def\f{(x+2)/(x-1)}
\begin{document}
\begin{psgraph}[algebraic,plotpoints=1000,Dy=5,Dx=2]{->}(0,0)(-11,-30)(11,35){20cm}{20cm}
\psset{linecolor=red}
\psplot{-10}{0.9}{\f}
\psplot{1.1}{10}{\f}
\psset{linestyle=dashed,linecolor=blue}
\psline(1,-30)(1,35)
\psline(-11,1)(11,1)
\end{psgraph}
\end{document}
Antwort3
Nur zum Spaß, mit PSTricks :O
\documentclass[pstricks,border=5]{standalone}
\usepackage{pst-plot}
\begin{document}
\psset{xunit=20pt,yunit=20pt}
\begin{pspicture}*(-7.5,-7.5)(7.5,7.5)
\psgrid[gridlabels=0,gridcolor=gray!25,subgridcolor=gray!10](-7,-7)(7,7)
\psaxes[labels=none,ticksize=-2pt 2pt]{<->}(0,0)(-7,-7)(7,7)[$x$,-90][$y$,0]
\psplot[linecolor=blue,plotstyle=line,algebraic, yMaxValue=7,plotpoints=1000]
{-7}{7}{(x^2+5*x+6)/(x^2+2*x-3)}
\psline[linestyle=dashed](1,-7)(1,7)
\rput(4.5,4){$\displaystyle f(x)=\frac{x^2+5x+6}{x^2+2x-3}$}
\end{pspicture}
\end{document}
Antwort4
Alles was Sie brauchen, sind ein paar Addplot-Befehle:
\addplot[domain=-10:10,samples=1000]
{(x^2+5*x+6)/(x^2+2*x-3)};
\addplot[dashed, purple, latex-latex]
coordinates{(1,-6) (1,6)};
Die erste sollte Ihre reale Funktion darstellen, die zweite zeichnet eine vertikale Linie mit den Koordinaten. Die latex-latex
Option fügt latex
an beiden Enden Pfeilspitzen hinzu. Wenn Sie keine Pfeilspitzen an beiden Enden möchten, entfernen Sie einfach die entsprechenden latex
. Wenn Sie möchten, dass die vertikale Linie länger ist, ersetzen Sie einfach -6 und 6 in den Koordinaten durch etwas Größeres, z. B. -15 und 15.
hier ist ein vollständiges Beispiel:
\begin{tikzpicture}
\begin{axis}[axis equal image,
xmin=-8, xmax=8,
ymin=-7, ymax=7,
axis lines=middle,
restrict y to domain=-10:10,
enlargelimits={abs=1cm},
axis line style={-latex},
ytick=\empty,
xtick={-3},
%xlabel=$x$,ylabel=$y$,
]
\addplot[domain=-10:10,samples=1000]
{(x^2+5*x+6)/(x^2+2*x-3)};
\addplot[dashed, purple, latex-latex]
coordinates{(1,-6) (1,6)};
\end{axis}
\end{tikzpicture}