WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Hilfe! was ist falsch hier?

 

franz86

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.03.2012, 01:03     Titel: Hilfe! was ist falsch hier?
  Antworten mit Zitat      
Hallo Leute ich soll die folgende Gleichung mit einem matlab sorver lösen(numerisch).
y' = (y/x)^2 +y/x y(1) = -1
hier ist meine Lösung:

Code:

 %f(x,y) = (y/x)^2 +y/x
 dy = @(t,y) (y./t).^2 + y./t;
 tspan = [0,3];  % Lösungsintervall
 y0 = 0;  % Anfangsbedingung
[t,y] = ode45(dy,tspan,y0);
figure(2)
%   Bild in subplot 1'
plot(t,y,'LineWidth',3)
 


Es klapt irgentwie nicht. was ist da fasch?
Danke


motlob
Forum-Anfänger

Forum-Anfänger


Beiträge: 14
Anmeldedatum: 16.03.12
Wohnort: ---
Version: R2009b
     Beitrag Verfasst am: 25.03.2012, 06:59     Titel:
  Antworten mit Zitat      
Hallo!

Du erhälst in deinem y-Vektor NaN als Werte. Das heißt, dass sich die DGL nicht lösen lässt. Das kann man auch einfach nachprüfen, indem du einfache DGLn ausprobierst, wie y' = y oder y' = t.

Dein Fehler ist wahrscheinlich, dass du den falschen Anfangwert y0 = 0 einsetzt, obwohl du geschrieben hast, dass y(1) = -1 eingesetzt werden muss. Dann man bei Matlab allerdings nur den Anfangwert bei t = 0 eingeben kann, musst du deine Zeitachse verschieben mit

t_0 +1 = t_1

wobei

y(t_0=0) = -1\text{   und   }y(t_1=1)=-1

Für deine DGL muss also gelten:

Code:
dy = @(t,y) (y/(t+1))^2 + y/(t+1);
y0 = -1;


Korrigiert mich, wenn ich falsch liegen sollte.
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 25.03.2012, 15:22     Titel:
  Antworten mit Zitat      
Hallo,

als erstes: Aussagen wie "Es klapt irgentwie nicht." sind nicht hilfreich.

Die DGL ist bei t = 0 nicht definiert, weil t im Nenner steht.

Wenn die Anfangsbed. für t0 = 1 oder so gegeben ist, ist das übrigens überhaupt kein Problem - man muss nur tspan entsprechend angeben.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
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 posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.