Verfasst am: 04.02.2010, 18:37
Titel: DGL Problem, verbindung der Kurven im unendlichen
Hallo liebe Matlab-forum-nutzer
Ich sollte im Rahmen meiner Mathevorlesung ein Projekt zur Darstellung von DGL bearbeiten, jedoch traten hierbei fehler auf. Ich hoffe ihr koennt mir helfen.
Das Problem ist das Matlab scheinbar die Enden der Kurven miteinander verbindet was ja eigentlich bei einer DGL nicht so sein sollte.
Code:
dsolve('Dy = -y+x*y^2','x')% Ergebniss ist die Allgemeine Lösung y = 1/(1+x+exp(x)*C1) dsolve('Dy = -y+x*y^2,y(0)=1','x')% y = 1/(x + 1)
x = -3:0.01:3;
for C1=-4:0.4:4
y=1./(x + C1*exp(x) + 1) plot(x,y,'b'),axis([-3,3,-5,5]) hold on
end plot(x,1./(x + 1),'r') %makierte Kurve
es werden alle Kurvenpunkte miteinander verbunden. Sprich, wenn y erst sehr groß und unmittelbar danach sehr klein wird (Nahe Definitionslücke), wird das verbunden.
Lösung: sehr große und sehr kleine Werte vom Plot ausschließen.
Code:
x = -3:0.01:3;
for C1=-4:0.4:4
y=1./(x + C1*exp(x) + 1);
y(abs(y) > 100) = NaN;
plot(x,y,'b'),axis([-3,3,-5,5]) hold on
end plot(x,1./(x + 1),'r') %makierte Kurve
wow super vielen dank, ich hab auch schon überlegt einfach mal die y werte einzugrenzen wusste aber keinen "befehl" dafür
gruß julian
EDIT: desweiteren ist es ratsam das x interval sehr stark zu erhöhen z.B. 0.0001, bei vielen aufgaben wurde dadurch bereits das problem gelöst für den angezeigten bereich
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.