Verfasst am: 25.02.2013, 14:53
Titel: Lösung einer DGL stark vom Startwert abhängig
Hallo,
ich möchte mittels folgender DGL die Form einer Blase/eines Tropfen lösen. Die Gleichung dazu ist in der Literatur häugifer zu finden. z.B. in (Meyers, T. G.; Charpin, J. P. F. (2009): A mathematical model of the Leidenfrost effect on an axisymmetric droplet. In: Phys. Fluids 21 (6), S. 063101063101-8.)
Die Gleichung lautet:
a ist eine Konstante (Stoffwert) und ein zu setzender Vorgabewert, welcher (nach der Theorie) die Größe der Blase bestimmt. beschreibt die Bogenlänge und den aktuellen Winkel zur r Achse. Es liegt ein r,z Koordinatensystem vor.
In events wird die Abbruchbedingung gesetzt. Ich habe gerade leider kein Webspace um ein bild hochzuladen. Deshalb habe ich das subfigure eingefügt. Mein Problem ist nun, dass ab einem bestimmten wert sich die Lösung strak ändert. Für z_0 <= -3336 erhalte ich die Lösung in der gewünschten Form (eine halbe Blase). Für z_0 > -3336 geht die Funktion für wachsende dann aber leider "in die andere Richtung"...
Ich habe leider keine Ahnung warum, da für diese Werte von z_0 die Blase eigentlich einfach größer werden sollte.
Hat jemand eine Idee, woran dieses liegt oder wie man es umgehen kann?
die DGL wird mit einer gewissen Genauigkeit simuliert. Bei manchen z0 führt der Genauigkeitsverlust dazu, dass du in eine falsche Lösung läufst (kann man sich vermutlich anhand eines Richtungsfelds schön ansehen, z.B. mit quiver).
danke für die schnelle Antwort. Es verbessert das Problem wirklich. Leider tritt der Fehler aber immernoch auf. Jetzt zwischen -3332 und -3333. Beim weiteren Verkleinern der RelTol bekomme ich dann irgendwann eine Warnung, dass diese auf 2.22045e-014 erhöht wurde.
wenn du 'abstol' auch noch verkleinerst, bekommst du auch noch für -3332 die gewünschte Lösung, allerdings für -3330 nicht mehr. Ich vermute, dass man da einfach an die Grenzen der Solver stößt.
was mir noch aufgefallen ist: du verwendest in der Anfangsbedingung 1e-15. Hat das einen tieferen Hintergrund oder ist das einfach "ein Wert nah bei 0"? Falls letzteres, könnte man auch versuchen, diesen Wert zu variieren - etwas näher nach 0 hin oder von 0 weg.
Verfasst am: 26.02.2013, 11:36
Titel: Re: Lösung einer DGL stark vom Startwert abhängig
Hallo Axel,
Nur eine Randbemerkung: Der leider übliche brutale Clear-Header "clear all, clc, close all" ist kein Fehler, aber hilfreich ist er im Allgemeinen auch nicht. Das Löschen aller Funktionen aus dem Speicher raubt nur Zeit, da das Nachladen von der Platte langsam ist.
Einige Zeilen später dann nochmal "clear y" anzuwenden, bringt dann gar nichts, da ja bereits alles gecleart wurde.
du verwendest in der Anfangsbedingung 1e-15. Hat das einen tieferen Hintergrund oder ist das einfach "ein Wert nah bei 0"? Falls letzteres, könnte man auch versuchen, diesen Wert zu variieren - etwas näher nach 0 hin oder von 0 weg.
Das ist einfach ein Wert nahe 0 da [0; 0; 0] eine triviale Lösung bietet (eine Ebene). Ein erhöhen des Startwertes führt irgendwann zu einer Lösung. Dazu muss ich den Wert aber so weit erhöhen, dass die Lösung nicht mehr dem eigentlichen Problem entspticht.
Jan S hat Folgendes geschrieben:
Der leider übliche brutale Clear-Header "clear all, clc, close all" ist kein Fehler, aber hilfreich ist er im Allgemeinen auch nicht. Das Löschen aller Funktionen aus dem Speicher raubt nur Zeit, da das Nachladen von der Platte langsam ist.
Einige Zeilen später dann nochmal "clear y" anzuwenden, bringt dann gar nichts, da ja bereits alles gecleart wurde.
Das mit dem Header war mir nicht bewusst. Danke für den Tipp. Das
ist noch aus dem kürzen auf das Beispiel übrig geblieben, da ich vorhatte, das Programm mittels for Schleife über mehrere Kontaktwinkel auszuführen. Über
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.