PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Min / Max Value einer Kurve ermitteln



pucki
06-07-2021, 17:15
Hallo zusammen,

ich neige ab und an dazu etwas zu übertreiben :)

Der Plot tut soweit, nur würde ich gerne für das erste Maximum und das erste Minimum auf beide Achsen die Werte (x, y) abtragen. Ich könnte jetzt die Werte aus der Tabelle die erzeugt wird auslesen, aber das ist ja eben nicht sinn und Zweck .. ich würde gerne an den anderen Parametern herumspielen und alles soll passen.

Mit Gnuplot kann man Pseudoplots erstellen und dann x und y Werte für Min/Max ermitteln, allerdings stehe ich voll auf dem Schlauch, wie ich den Code in das Beispiel integriere. Das mit dem auslesen der pgfkeys will auch nicht so wie ich das möchte.

Ich hatte mir vorgestellt, dass ich es schaffe die Werte in Makros zu schreiben und dann


\draw(0,\ymax) --(-0.2,\ymax) node[left]{aufgehübschter Wert für ymax};
\draw(0,\ymin) --(-0.2,\ymin) node[left]{aufgehübschter Wert für ymin};

und das ganze auch für die x-Werte.

Hat da jemand eine Idee?

Grüße





\documentclass{article}

\usepackage[latin1]{inputenc}
\usepackage{tikz}
\usetikzlibrary{shapes.geometric}
\usetikzlibrary{arrows.meta,arrows}
\usetikzlibrary{decorations.markings}
\usepgflibrary{decorations.text}
\usetikzlibrary[matrix]
\usetikzlibrary{calc}
\usetikzlibrary{math}
\usepackage{pgfplots}
\usepackage{pgfkeys}
\pgfplotsset{compat=newest}

\usepackage{verbatim}


\begin{document}
\pagestyle{empty}


\begin{tikzpicture}[domain=0:10, >=latex]


% Koordinaten - Achsen und Grid zeichnen
\draw[very thin,color=gray!10] (-0.,-0) grid (7.9,4.9);
\draw[-{Stealth[length=2mm]}] (0,0) -- (0,4.5) node[below left] {$|U_Z|$};
\draw[-{Stealth[length=2mm]}] (0,0) -- (7.5,0) node[right, pos=1] {$z$};%

\def\f{0.14}
\def\lambda{1/\f}
\def\beta{2 * pi *\f}
\def\imp{75 + {0,1}*65}
\def\z0{60}
\def\reflex{(\imp-\z0)/(\imp+\z0)}
\def\phi{abs(\reflex)}
\def\reflexA{abs(\reflex)}

\newcommand\beating[1]{2*abs(exp({0,1}*\beta* #1) + \reflexA * exp({0,1}*(\phi - \beta*#1)))}

\draw[smooth, samples=1000, color=blue, domain=0:\lambda, solid, thick]
plot[id=uz] function{\beating{x}};

\pgfkeysgetvalue{/pgfplots/data min}{\xmin}
\draw(2,5)node[above]{min: -\xmin-};

\end{tikzpicture}

\end{document}

rais
07-07-2021, 23:06
Moin moin,
vllt tut es ja, die entstandene foo.uz.table mit pgfplotstable einzulesen und auf Extrema auszuwerten.
Das hier:




\def\z0{60}

ist IMHO bestenfalls gefährlich: damit erstellst Du kein Makro `\z0', sondern ein Makro ´\z', auf das `0' folgen muß.


\documentclass{article}
\begin{document}
\def\z0{60}
\def\z1{59}
(\z0)
\show\z
\end{document}

ginge entsprechend in'n Knick, weil der hier zweite \def `\z' umdefiniert (und nicht `\z1' definiert). Damit bekämst Du dann auch


! Use of \z doesn't match its definition.

weil `\z' nach dem hier zweiten \def `1' erwartet und nicht `0'.

VG