Verfasst am: 24.08.2011, 18:21
Titel: schnittpunkt eines graphen und einer waagrechten zur x-achse
Hallo zusammen,
ich versuche mich seit kurzen erst mit matlab und benötige eine hilfe und zwar will ich die typische kennlinie eines Photovoltaikmodules nachbilden. Das funktioniert auch- es entsteht ein parabelähnlicher Graph. Nun will ich eine waagrechte zur x-Achse eintragen und mir die Schnittpunkte anzeigen und ausgeben lassen, habs schon mit solve probiert, aber das will einfach nicht hinhauen....
Wie in deinem Fall die Lösung über solve() geht, weiß ich auch nicht. Du darfst hier auf jeden Fall kein .* verwenden. Es werden ja keine Daten eingesetzt, sondern du musst die Gleichung angeben.
Hier noch zwei andere Möglichkeiten
Code:
x=-10:0.1:10;
y=x.^2+2; % Normalparabel um 2 verschoben % Lösung über solver [x_solve y_solve] = solve('y=x^2+2','y=10');
% x Werte an der Stelle y = 10 interpolieren
idx=find(x==0);
% positiver x-Bereich
x_interp(1) = interp1(y(idx:end),x(idx:end),10);
% negativer x-Bereich
x_interp(2) = interp1(y(1:idx),x(1:idx),10);
% x aus Datensatz finden
idx(1)=find(y<=10,1,'first');
x_find(1) = x(idx(1));
idx(2)=find(y<=10,1,'last');
x_find(2) = x(idx(2));
plot(x,y);
hold on;
plot(x_interp(2),10,'r*');
plot(x_interp(1),10,'r*');
plot(double(x_solve(2)),10,'g.');
plot(double(x_solve(1)),10,'g.');
plot(x_find(2),y(idx(2)),'k.');
plot(x_find(1),y(idx(1)),'k.');
grid on;
Ich habe die Unterteilung in positiven und negativen Bereich nur gemacht, da die Werte in Va für interp1() aufsteigend sein müssen. Evtl. ist das bei dir nicht nötig, wenn die Kurve nur im I.Quadranten liegt. Sonst poste doch mal bitte die fehlenden Größen aus der Gleichung oder ein Screen des Graphen.
ja stmmt die einteilung ist bei mir nicht nötig... hab jetzt auch mal ein bild angehängt.
habs jetzt mit der einfachen von dir vorgeschlagenen eingabe probiert, aber leider wird mir da dann nur ein punkt angezeigt. wie kann ich mir den 2. noch anzeigen lassen?
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.