Seite 1 von 1

Funktionen plotten

Verfasst: So 8. Mai 2022, 20:08
von Holger Witte
Hallo liebes Forum,

ich würde gern einige Funktionen ploten und dafür pgfplot in Kombination mit gnuplot nutzen.
Das unten aufgeführte Minimalbeispiel zeigt eine Wahrscheinlichkeitsverteilungsfunktion.
In der Verteilung kommen die Parameter alpha=2.710300 beta=27.135860 und gamma=31.744730 vor. Wie kann ich die Parameter vorab festlegen, sodass ich sie jederzeit ändern kann? ich würde gern in der Funktion lediglich die zuvor festgelegten Parameter alpha, beta und gamma verwenden. Das würde mir die Arbeit sehr erleichtern. Gibt es dafür eine Möglichkeit? Vielen Dank, Holger

Leider ist das Minimalbeispiel hier nicht lauffähig. Lokal auf meinem Rechner funktioniert es. Eventuell wegen "shell-escape"?
\documentclass[paper=a4]{paper}
\usepackage{pgfplots}
\pgfplotsset{width=7cm,compat=1.16}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot+[mark=none, thick] plot gnuplot[samples=100, domain=32:120]
{1/(1+(1/((x-31.744730)/27.135860))^2.710300)};
\end{axis}
\end{tikzpicture}
\end{document}

Re: Funktionen plotten

Verfasst: Mo 9. Mai 2022, 07:33
von gast.
plot gnuplot benötigt ein externes Programm, nämlich gnuplot. Deshalb funktioniert das hier nicht. Das ist im Beispiel aber auch gar nicht notwendig.

Du kannst beispielsweise drei Makros dafür definieren:
\documentclass[paper=a4]{paper}
\usepackage{pgfplots}
\pgfplotsset{width=7cm,compat=1.16}
\newcommand*{\Valpha}{31.744730}
\newcommand*{\Vbeta}{27.135860}
\newcommand*{\Vgamma}{2.710300}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot+[mark=none, thick,domain=32:120] %plot gnuplot[samples=100, domain=32:120]
{1/(1+(1/((x-\Valpha)/\Vbeta))^\Vgamma)};
\end{axis}
\end{tikzpicture}
\end{document}
Alternativ kann man mit \pgfmathdeclarefunction (→ pgf) auch konstante Funktionen deklarieren. Ich bevorzuge aber Makros. Näheres zu \newcommand ist jeder ausführlichen LaTeX-Einführung zu entnehmen.

Re: Funktionen plotten

Verfasst: Di 24. Mai 2022, 13:25
von Holger Witte
Vielen Dank! So funktioniert es :-)