Pgfplots: einige übliche mathematische Funktionen können nicht dargestellt werden

Pgfplots: einige übliche mathematische Funktionen können nicht dargestellt werden

Ich fange an, pgfplots zu lernen, und ich möchte einige Funktionen darstellen: Kubikwurzel, Inverse und einige trigonometrische Funktionen.

Das Problem besteht darin, dass bei der Funktion y=1/x die Punkte zwischen den negativen und positiven Teilen der Domäne verbunden werden: Wir können die Asymptote nicht sehen.

\documentclass{minimal}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[]
\addplot [domain=-10:10, samples=100]{x^(-1)};
\end{axis}
\end{tikzpicture}
\end{document}

Bei der Funktion y=x^{1/3} wird der negative Teil der Definitionsmenge nicht angezeigt. Und bei den trigonometrischen Funktionen funktioniert einfach nichts richtig...

\addplot[domain=-27:27]{x^(1/3)};
\addplot[domain=-2*pi:2*pi]{cos(rad(x))};

vielen Dank, falls Sie mir ein wenig weiterhelfen können.


vielen Dank für eure Antworten, das hilft mir wirklich weiter. Nur noch eine letzte Sache: Die Kubikwurzelfunktion hat einen negativen Teil in ihrer Definitionsmenge, der nicht angezeigt werden kann. Weißt du, warum?

\begin{tikzpicture} 
\begin{axis}[
    width=8cm,xlabel={$x$},
    ylabel={$y$},grid=both, axis x line=middle, axis y line=middle, 
    title={$f(x)=x^{1/3}$}] 
\addplot[blue,domain=-27:27, no markers,samples=100] {x^(1/3)}; 
\end{axis} 
\end{tikzpicture}

NB: Ja, die Kubikwurzelfunktion hat einen teilweise negativen Definitionsbereich, und nein, es gibt keinen Imaginärteil. NB: Es tut mir leid, dass ich auf einer meiner ersten Fragen in diesem Kommentar bestehe, die eine „Antwort“ sein soll. Ich bin neu hier und da ich noch nicht registriert bin, weiß ich nicht, wie ich in einem neuen „Fragekommentar“ etwas zum Thema fragen kann.

Antwort1

Um die negativen und positiven Teile des 1/xDiagramms getrennt zu halten, müssen Sie sicherstellen, dass die Funktion bei ausgewertet wird x=0. Wenn Ihre Domäne symmetrisch ist, können Sie einfach eine ungerade Anzahl von Stichproben angeben ( z. B. ). Sie müssen auch sicherstellen, dass nicht-reale Werte nicht einfach stillschweigend verworfen werden, sondern einen Sprung im Diagramm verursachen. Geben Sie dazu (anstelle des Standardverhaltens ) samples=101an .unbounded coords=jumpdiscard

Die trigonometrischen Funktionen in PGF erwarten Grad, daher müssen Sie Radiant mit in Grad umrechnen deg(x)(nicht rad(x), das wird zum Umrechnen von Grad in Radiant verwendet).

\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[enlargelimits=false]
\addplot [domain=-10:10, samples=101,unbounded coords=jump]{x^(-1)};
\end{axis}
\end{tikzpicture}

\begin{tikzpicture}
\begin{axis}[enlargelimits=false]
\addplot[domain=-2*pi:2*pi, samples=100]{cos(deg(x))};
\end{axis}
\end{tikzpicture}
\end{document}

Antwort2

Die anderen Antworten bieten raffinierte Möglichkeiten zum Plotten 1/x, aber niemand hat erklärt, wie man plottetx^(1/3)

Das Problem tritt in vielen Grafikprogrammen/Rechnern auf. Kubikwurzeln werden oft mit Logarithmen berechnet, weshalb sie für negative Zahlen manchmal nicht definiert zu sein scheinen. Natürlich wissen wir, dass wir die Kubikwurzel jeder reellen Zahl ziehen können, also müssen wir das Programm/den Rechner austricksen.

Eine Möglichkeit hierfür besteht darin,

x/|x| * (|x|)^(1/3)

das die Kubikwurzelfunktion zeichnet und die Vorzeichen heimlich entsprechend vertauscht. Natürlich ist diese Funktion nicht bei definiert 0, also ist sie nicht wirklichgleichzur Kubikwurzelfunktion, aber es funktioniert für uns :)

Bildbeschreibung hier eingeben

\documentclass{standalone}
\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
    \begin{axis}
       \addplot[blue,domain=-10:10, samples=200]{x/abs(x)*abs(x)^(1/3)};
    \end{axis}
\end{tikzpicture}

\end{document}

Antwort3

Ich denke, Ihre Erwartungen sind zu hoch, da pgfplots kein Computeralgebrasystem (CAS) ist. Sie müssen ihm also helfen, indem Sie die Daten bearbeiten. Auch die samplesOption macht einen großen Unterschied, da die Diagramme wirklich die Punkte verbinden, und um zu sehen, ob ein Wert unbegrenzt ist, muss er an diesem Punkt ausgewertet werden, da sonst die Ergebnisse endlich sind und diese Punkte verbunden werden.

\documentclass{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[restrict y to domain=-9.9:9.9]
\addplot [domain=-10:10, samples=200]{x^(-1)};
\addplot[blue,domain=-10:10, samples=200]{x^(1/3)};
\addplot[red,domain=-2*pi:2*pi, samples=200]{sin(deg(x))};
\end{axis}
\end{tikzpicture}
\end{document}

Bildbeschreibung hier eingeben

verwandte Informationen