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

ode45

 

buntbarsch-1
Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 25.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 25.11.2014, 18:25     Titel: ode45
  Antworten mit Zitat      
guten abend, ich hätte eine frage zu meiner dgl weil beim plotten nur mist rauskommt. eigentlich soll es eine kurve sein die steil steigt und stetig abflacht, aber ich kriege bei meiner lösung für den y wert immer einen NaN Fehler und weiss nicht warum. habt ihr einen tipp was ich falsch mache?
meine dgl lautet:
 dy/dt = (s*2^(-5/3)*cos(y)*sin(y)*(2-cos(y))^(1/3))/(a0*v*(1-cos(y))*(1+cos(y))^(1/3))


s,n und v sind konstant und positiv.

mein kompletter programm code lautet:

Code:

a0=30*10^(-6);
s=37.404*10^(-3);
v=1893.333;

[t,y] = ode45(@(t,y)(s*2^(-5/3)*cos(y)*sin(y)*(2-cos(y))^(1/3))/(a0*v*(1-cos(y))*(1+cos(y))^(1/3)),[0,10],0);

%[t,y]=ode45(@ode,[0,6],0);

%i = 1;
%reshape(t,size(t,1),1);
%while i<=length(t);
 %   dtime(i)= (t(i)*s)/(v*a0);
 %   i=i+1;
%end
%reshape(y,size(y,1),1);
%k = 1;
%while k <= length(y);
  %  S(k) = 8 * pi() * a0^2 * (2/((1+cos(y(k)))*(2-cos(y(k)))^2))^(1/3);
  %  dradius(k) = sqrt(S(k)/pi())/a0;
  %  k=k+1;
%end
plot(t,y);

 


mit dem ausgeklammerten befehlen wollte ich dann die ergebnisse von t und y umrechnen.

ich hoffe auf ein wenig hilfe
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.11.2014, 22:10     Titel:
  Antworten mit Zitat      
Hallo,

ist die Funktion denn auch wirklich korrekt?
Die Funktion hat bei y=0 eine Definitionslücke, da dann durch 0 geteilt wird, und keinen existierenden Grenzwert (von links -inf, von rechts inf). Da ist es kein Wunder, dass ode45 Probleme hat.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
buntbarsch-1
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 2
Anmeldedatum: 25.11.14
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 26.11.2014, 17:47     Titel:
  Antworten mit Zitat      
Die Funktion ist leider korrekt, hab sie nochmal kontrolliert. Das die Funktion bei Null nicht Definiert ist ist auch richtig so, ich dachte das Problem löst man indem man matlab bei ode45(@.....,.....,0) eine Null angibt. Also ihm gesagt wird, dass bei y(0)=0 ist und die Funktion somit ausreichend definiert ist.

Ich schicke mal die Funktion nochmal als Bild, vielleicht habe ich sie ja doch vom Prinzip her falsch in Matlab eingegeben.

Vielen Danke aber schonmal Harald.

Mit freundlichen Grüßen, Christopher

funktion.png
 Beschreibung:
Die Funktion nochmal als Bild dargestellt, falls ich sie in matlab falsch eingegeben habe.

Download
 Dateiname:  funktion.png
 Dateigröße:  4.41 KB
 Heruntergeladen:  555 mal
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: 26.11.2014, 17:58     Titel:
  Antworten mit Zitat      
Hallo,

du gibst zwar damit y(0) an, aber ode45 versucht dort ja die Änderung auszuwerten, also y'(0).

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.