Verfasst am: 16.07.2016, 10:58
Titel: Fläche/Distanz unter einer Kurve ermitteln
Hallo Leute,
ich möchte folgendes erreichen. Gegeben ist der im Bild linke Punkt. Den Schnittpunkt habe ich bereits programmatisch umgesetzt und ist im Workspace. Nun möchte ich diesen Y-Wert auf der Kurve finden. Befehle die bereits versucht wurden zu benutzen sind
. Allerdings funktioniert das nicht wie ich möchte. Wie würdet ihr den Y-Wert am Effizientesten suchen?
Wenn das geschafft ist möchte ich eine horizontale Linie vom linken zum rechten Punkt ziehen und dann die Fläche Zwischen Kurve und horizontaler Linie berechnen.
Zweiter Ansatz wäre den Betrag des Vektors von Punkt1 zu Punkt2 zu berechnen, diesen dann vertikal zu projizieren und ein Dreieck wie im Bild zu erzeugen.
Hoffe, dass mein Ziel soweit klar ist. Würde mich sehr über Anregungen eurer Seite freuen!
Folgender Code löste mein Problem für die Fläche zwischen einer Gerade und einer Kurve.
Code:
x = 0:0.1:12; % x data
y1 = 3*exp(-0.5*x); % y data
y2 = 0.5;
lineStart = find(x>=0,1);
lineEnd = find(y1<=y2,1);
f = plot(x,y1,'b',x,ones(1,length(x))*y2,'r','LineWidth',2);
%ylim([04]) hold on
area(x(lineStart:lineEnd),y1(lineStart:lineEnd), y2,
'EdgeColor', 'none', 'FaceColor', [0.50.51],'ShowBaseLine','off') hold off
A = trapz(x(lineStart:lineEnd),y1(lineStart:lineEnd));
Code wurde dann dementsprechend angepasst. Mir fehlte der logische Zusammenhang mit den Schnittpunkten, wodurch ich für beide gesuchten Flächen eine Fläche von 0 bzw. einen Error bekam, da lineStart und lineEnd jeweils 1 waren und somit das Integral verschwindet.
Das Problem besteht weiterhin, wenn y1>y2 ist und ich die Sache von unten betrachte sprich meine Grenze liegt nun über der Funktion. Hoffe das war soweit verständlich. Bei Fragen oder Verbesserungsvorschlägen gerne einen Kommentar dazu abgeben.
Einstellungen und Berechtigungen
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 posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.