goLaTeX - Mein LaTeX-Forum

Mein LaTeX-Forum


Login  | Registrieren
Forum
      Option
[Erweitert]
  • Diese Seite weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

pgfplots, intersections, Geradengleichung

 

jensjj
Forum-Newbie
Forum-Newbie

Beiträge: 4
Anmeldedatum: 20.04.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.06.2017, 16:53     Titel: pgfplots, intersections, Geradengleichung
  Antworten mit Zitat      
Hallo aus dem hohen Norden,

ich suche nach einer Möglichkeit, Steigung und Achsenabschnitt einer Geraden, die zwei intern berechente Koordinaten (berechnet über "intersections") verbindet, zu berechnen.
Alternativ käme ich auch weiter, wenn ich die x- und y-Werte aus den Koordinaten herausextrahieren könnte. Es geht mir in dem Minimalbeispiel um die rote Gerade zwischen den Koordinaten P1 und P2, also um eine Lösung, die auf diesen Koordinaten basiert. Ich hoffe, ich habe bei meiner Suche nicht die offensichtliche Lösung übersehen. Dann wäre ich für einen Hinweis sehr dankbar.



Code • Öffne in Overleaf

\documentclass{standalone}
\usepackage[utf8]{inputenc}
\usepackage{pgfplots}
\usetikzlibrary{math, calc, intersections}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
   \begin{axis}[
   domain=0:1,
   height=9cm,
   width=9cm,
   xlabel={$x_A$},
   ylabel={$y_A$},
   grid=major,
   clip=false,
   xmin=0, xmax=1,
   ymin=0, ymax=1
   
]
   \addplot[mark=none, name path=A]{3.5*x/(1+2.5*x)};
   \addplot[green!50!black, mark=none, name path=B]{0.6876*x+0.19875};
   \draw[blue, mark=none, name path=C](0.9,0) -- +(0,0.9);
   \draw[green, mark=none, name path=D](0.3,0) -- +(0,0.7);
   \path [name intersections={of=A and D,by=P1}];
   \draw [red] (P1) circle[radius=2pt] node [xshift=10pt] {\footnotesize {P1}};
   \path [name intersections={of=B and C,by=P2}];
   \draw [red] (P2) circle[radius=2pt] node [xshift=10pt] {\footnotesize {P2}};
   \draw[red](P1) -- (P2);
\end{axis}
\end{tikzpicture}
\end{document}
 


Vielen Dank!

Minimalbild_Steigung.pdf
 Beschreibung:

Download
 Dateiname:  Minimalbild_Steigung.pdf
 Dateigröße:  35.04 KB
 Heruntergeladen:  25 mal

_________________

Viele Grüße
Jens
Private Nachricht senden Benutzer-Profile anzeigen

esdd
Forum-Meister
Forum-Meister

Beiträge: 2188
Anmeldedatum: 07.02.10
Wohnort: Stutensee
Version: MiKTeX 2.9
     Beitrag Verfasst am: 21.06.2017, 20:56     Titel:
  Antworten mit Zitat      
Leider verrätst Du nicht, was Du mit Steigung und Achsenabschnitt dann tun willtst.

Code • Öffne in Overleaf
\documentclass{standalone}
\usepackage[utf8]{inputenc}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usetikzlibrary{math, calc, intersections}
\begin{document}
\begin{tikzpicture}
   \begin{axis}[
   domain=0:1,
   height=9cm,
   width=9cm,
   xlabel={$x_A$},
   ylabel={$y_A$},
   grid=major,
   clip=false,
   xmin=0, xmax=1,
   ymin=0, ymax=1
   
]
   \addplot[mark=none, name path=A]{3.5*x/(1+2.5*x)};
   \addplot[green!50!black, mark=none, name path=B]{0.6876*x+0.19875};
   \draw[blue, mark=none, name path=C](0.9,0) -- +(0,0.9);
   \draw[green, mark=none, name path=D](0.3,0) -- +(0,0.7);
   \path [name intersections={of=A and D,by=P1}];
   \draw [red] (P1) circle[radius=2pt] node [xshift=10pt] {\footnotesize {P1}};
   \path [name intersections={of=B and C,by=P2}];
   \draw [red] (P2) circle[radius=2pt] node [xshift=10pt] {\footnotesize {P2}};
   \draw[red](P1) -- (P2)\pgfextra{\pgfgetlastxy{\xii}{\yii}};
   \path let \p1=(P1), \p2=(P2) in \pgfextra{%
      \pgfmathparse{(\y2-\y1)/(\x2-\x1)} \xdef\steigung{\pgfmathresult}%
      \pgfmathparse{\y1-\steigung*\x1} \xdef\achsenabschnitt{\pgfmathresult}%
   };
   \draw[yellow](0pt,\achsenabschnitt pt)--(P1);
   \draw[yellow](P2)--(210.5pt,210.5pt*\steigung+\achsenabschnitt pt);
\end{axis}
\node[below]at(current axis.outer south){Steigung: \steigung, Achsenabschnitt: {\achsenabschnitt} pt};
\end{tikzpicture}
\end{document}




Beachte dabei, dass \achsenabschnitt hier den Abstand des Schnittpunktes der Geraden mit der y-Achse vom Nullpunkt in pt angibt. Das hat also nichts mit den Einheiten zu tun, die an der Skale stehen. Ähnliches gilt für den Anstieg. Der enspricht nur dem Anstieg in der Geradengleichung, wenn eine y-Einheit genau so lang wie eine x-Einheit ist.

Wenn Du den Achsenabschnitt umrechnen möchtest, dann gib einen Wert für die x- und y-Einheiten vor:

Code • Öffne in Overleaf
\documentclass{standalone}
\usepackage[utf8]{inputenc}
\usepackage{pgfplots}
\pgfplotsset{compat=1.14}
\usetikzlibrary{math, calc, intersections}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
   \newcommand*\plotunit{7.5cm}
   \begin{axis}[
   domain=0:1,
   x=\plotunit,
   y=\plotunit,
   xlabel={$x_A$},
   ylabel={$y_A$},
   grid=major,
   clip=false,
   xmin=0, xmax=1,
   ymin=0, ymax=1
   
]
   \addplot[mark=none, name path=A]{3.5*x/(1+2.5*x)};
   \addplot[green!50!black, mark=none, name path=B]{0.6876*x+0.19875};
   \draw[blue, mark=none, name path=C](0.9,0) -- +(0,0.9);
   \draw[green, mark=none, name path=D](0.3,0) -- +(0,0.7);
   \path [name intersections={of=A and D,by=P1}];
   \draw [red] (P1) circle[radius=2pt] node [xshift=10pt] {\footnotesize {P1}};
   \path [name intersections={of=B and C,by=P2}];
   \draw [red] (P2) circle[radius=2pt] node [xshift=10pt] {\footnotesize {P2}};
   \draw[red](P1) -- (P2)\pgfextra{\pgfgetlastxy{\xii}{\yii}};
   \path let \p1=(P1), \p2=(P2) in \pgfextra{%
      \pgfmathparse{(\y2-\y1)/(\x2-\x1)} \xdef\steigung{\pgfmathresult}%
      \pgfmathparse{(\y1-\steigung*\x1)/\plotunit} \xdef\achsenabschnitt{\pgfmathresult}%
   };
   \draw[yellow](0pt,\achsenabschnitt)--(P1);
   \draw[yellow](P2)--(1,\steigung+\achsenabschnitt);
\end{axis}
\node[below]at(current axis.outer south){Steigung: \steigung, Achsenabschnitt: \achsenabschnitt};
\end{tikzpicture}
\end{document}




gl_geradengleichung1.png
 Beschreibung:

Download
 Dateiname:  gl_geradengleichung1.png
 Dateigröße:  17.97 KB
 Heruntergeladen:  19 mal
gl_geradengleichung2.png
 Beschreibung:

Download
 Dateiname:  gl_geradengleichung2.png
 Dateigröße:  17.89 KB
 Heruntergeladen:  20 mal
Private Nachricht senden Benutzer-Profile anzeigen

jensjj
Forum-Newbie
Forum-Newbie

Beiträge: 4
Anmeldedatum: 20.04.17
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.06.2017, 08:20     Titel:
  Antworten mit Zitat      
Super esdd! Vielen Dank - auch für den Hinweis auf die Skalierung/Einheit ist für mich hilfreich, da ich mit den Daten rechne und z. B. Start- bzw. Endpunkte anderer, hiervon abhängiger Funktionen bestimme.

Dein Vorgehen zeigt mir durch den Lösungsweg auch, wie ich aus einer Koordinaten den x- und y-Anteil ermittle. Auch das wird mir an anderer Stelle sicher noch helfen. Also, nochmals vielen Dank!


Zitat:

Leider verrätst Du nicht, was Du mit Steigung und Achsenabschnitt dann tun willtst.

Ich hatte versucht, das Minimalbeispiel auf mein Problem zu reduzieren. Vieleicht sieht es deswegen etwas wirr aus.
Ich erstelle ein Arbeitsdiagramm für eine Destillationsanlage. Die Arbeitspunkte der Anlage liegen auf solchen konstruierten Geraden, deren Anfangs- und Endpunkte wiederum Schnittpunkte anderer Funktionen sind.
Mit Steigung und Achsenabschnitt fällt es deutlich leichter, Betriebspunkte auf diesen Geraden einzuzeichnen.
_________________

Viele Grüße
Jens
Private Nachricht senden Benutzer-Profile anzeigen

Neues Thema eröffnen Neue Antwort erstellen



Options and Permissions
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum herunterladen
.

goLaTeX ist Teil der goForen
goForen.de goMATLAB.de goLaTeX.de goPCB.de


  Impressum | FAQ | goLaTeX RSS Button RSS-Feed

Copyright © 2008 - 2017 goLaTeX.de