|
DragonLady |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.09.2012, 15:10
Titel: dsolve vs ode-solver
|
 |
Hallo,
ich habe da mal eine Frage. Ich habe eine DGL mit y(0)=0. Wenn ich diese mit dsolve löse, bekomme ich auch eine Lösung: .
Wenn ich diese nun mit ode45 lösen möchte, steht zuerst die gegebene 0 drin, dann NaN und dann inf. Wie kann es denn nun sein, dass Matlab das Problem einerseits mit dsolve lösen kann und andererseits doch wieder nicht?
|
|
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 13.09.2012, 17:03
Titel: Re: dsolve vs ode-solver
|
 |
Hallo DragonLady,
Zitat: |
Wenn ich diese nun mit ode45 lösen möchte, steht zuerst die gegebene 0 drin, dann NaN und dann inf. |
Dann hast Du offensichtlich einen Bug im Code. Solange wir den Code nicht sehen, haben wir keine Chance zu erraten, wo der Fehler liegt.
Gruß, Jan
|
|
|
DragonLady |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 13.09.2012, 19:13
Titel:
|
 |
Hallo zurück.
Mein Code lautet wie folgt:
Und der Aufruf erfolgt dann mit:
|
|
|
Jan S |

Moderator
|
 |
Beiträge: 11.057
|
 |
|
 |
Anmeldedatum: 08.07.10
|
 |
|
 |
Wohnort: Heidelberg
|
 |
|
 |
Version: 2009a, 2016b
|
 |
|
|
 |
|
Verfasst am: 13.09.2012, 21:38
Titel:
|
 |
Hallo DragonLady,
Nun, was erwartest Du denn als Lösung für t=0 und den Startwert y=0? Welchen Wert wird dann "dy = 0.5 / y" annehmen? Wenn man das dann integriert, was könnte dabei heraus kommen?
SQRT(4*x/5) ist eine merkwürdige Lösung, oder? Was erhälst Du denn, wenn Du dies ableitest?
Gruß, Jan
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 14.09.2012, 09:47
Titel:
|
 |
Hallo,
die Ansätze sind schlicht komplett unterschiedlich.
dsolve löst symbolisch. Vereinfacht gesagt werden Techniken angewandt, die man im Studium gelernt hat, um Differentialgleichungen zu lösen: oft zunächst allgemeine Lösung, dann Anfangsbedingungen einsetzen.
odexy löst numerisch. Die Ableitung wird an mehreren Stellen ausgewertet und daraus die Funktion an verschiedenen Punkten angenähert. Da die Ableitung bei y = 0 unendlich ist, zieht sich das in den weiteren Rechnungen in Form von inf oder nan durch.
Wenn eine Lösung mit odexy gesucht wird, sollte sie zumindest mal eindeutig sein. Das ist sie in dem Fall aber nicht, da mit deiner Lösung auch das Negative davon eine Lösung ist.
Grüße,
Harald
|
|
|
DragonLady |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 14.09.2012, 11:16
Titel:
|
 |
Hallo erstmal ihr beide und danke für die schnellen Antworten.
@Jan
Ich sollte vielleicht nochmals drüberlesen, bevor ich was schreibe. Nach Probe sieht man ja, dass die Lösung sqrt(x) sein muss. Da habe ich vielleicht schon vorher was Andreres bei mir eingegeben.
@Harald
Irgendwie hatte ich mir schon gedacht, dass das was mit dem 1/y und y(0)=0 zu tun haben könnte.
Gibt es aber eine Möglichkeit so ein Problem trotzdem über einen ode-solver zu lösen?
|
|
|
Harald |

Forum-Meister
|
 |
Beiträge: 24.501
|
 |
|
 |
Anmeldedatum: 26.03.09
|
 |
|
 |
Wohnort: Nähe München
|
 |
|
 |
Version: ab 2017b
|
 |
|
|
 |
|
Verfasst am: 14.09.2012, 13:53
Titel:
|
 |
Hallo,
es gibt eine Möglichkeit, die allerdings sehr mit Vorsicht zu genießen ist: Statt 0 einen Startwert angeben, der sehr nahe bei 0 ist.
Man sieht hier auch schön das Problem der zwei Lösungen, da für
das Negative der ersten Lösung herauskommt.
Ich möchte aber nochmal betonen, dass man mit einem solchen Vorgehen sehr vorsichtig sein muss. Das kann zu minimalsten Abweichungen führen, aber in manchen Fällen sicher auch zu komplett anderen Lösungen.
Grüße,
Harald
|
|
|
DragonLady |
Gast
|
 |
Beiträge: ---
|
 |
|
 |
Anmeldedatum: ---
|
 |
|
 |
Wohnort: ---
|
 |
|
 |
Version: ---
|
 |
|
|
 |
|
Verfasst am: 15.09.2012, 09:23
Titel:
|
 |
Hallo Harald,
leider ist das ja oft so, dass sich die Fehler dann noch verschlimmern können, wenn man einige Bedingungen ändert.
Dankeschön, dass du dir die Zeit genommen hast, um über mein Problem nachzudenken.
|
|
|
|
|
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
|
|
Impressum
| Nutzungsbedingungen
| Datenschutz
| FAQ
| RSS
Hosted by:
Copyright © 2007 - 2025
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.
|
|