Verfasst am: 23.08.2012, 09:04
Titel: hilfsgrößen aus odeX plotten
Hallo,
ich habe ein System aus 4 ODEs und lass die lösen... möchte nun aber Hilfsgrößen (s.u.) aus der odefun plotten. Es wäre toll wenn jemand eine Idee hat wie ich die Daten aus der odefun bekomme.
%berechnung der hilfgroessen !!!um diese Größen geht es!!!
wN = (n.wN0*n.rhoX0+n.rhoN0-rhoN)/rhoX;
wN = max(wN, n.wNmin); %wN nicht kleiner wNmin
I = (n.I0/(n.a*n.z*rhoX*wChl))*(1-exp(-1*n.a*n.z*rhoX*wChl));
pm = (n.p0*(rhoX*wN)^2)/((rhoX*wN)^2+((n.wNmin^2)*(rhoX+rhoL)^2));
p = pm*wChl*(1-exp((-1*n.a*n.phi*I)/pm));
Verfasst am: 23.08.2012, 12:07
Titel: Re: hilfsgrößen aus odeX plotten
Hallo Lilith,
Eine Antwort wäre einfacher, wenn Du nur den relevanten Teil des Programms postest. So ist das Suchen, was genau die "Hilfsgrößen" und was die "odefun" ist umständlicher als nötig.
Der Integrator gibt Dir die Werte für X und T zurück. Mit diesen kannst Du dann Mod() nochmal aufrufen. Die geünschten Werte werden dann als 2. Output von Mod() zurückgegeben: Während dies vom Integrator ignoriert wird, benutzt Du es von ausserhalb.
Noch eine Anmerkung: Die Benutzung von MAX und MIN führt zu Unstetigkeiten im der zu integrierenden Funktion. Die Integratoren von Matlab sind (wie fast alle anderen Integratoren auch) aber darauf angewiesen, dass die Funktion glatt ist. Andernfalls versagt die Schrittweitensteuerung und die Ergebnisse können massiv ungenau werden. Aus wissenschaftlicher Sicht ist das grober Unfug.
Bedauerlicherweise ist das Ignorieren der numerischen Spezifikationen der Integratoren weit verbreitet und ich habe schon (zu) viele Papers, Diplom- und sogar Doktorarbeiten gesehen, in denen so etwas zur "Berechnung von Ergebnissen" benutzt wird. Natürlich spuckt der Integrator auch eine Zahl aus und die kann sogar in der Nähe der "korrekten" Lösung liegen. Man kann dies allerdings nicht kontrollieren, so dass das Resultat vorsichtshalber als "zufällig" betrachtet werden muss.
Unstetigkeiten lassen sich nur per Event-Funktion korrekt behandeln, wobei bei Matlab's ODE-Lösern leider umständlich die Integration gestoppt und neu gestartet werden muss. Eine Verbesserung wäre hier sehr hilfreich und nicht schwierig.
Gruß, Jan
Lilith
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 23.08.2012, 21:31
Titel:
Danke schonmal.
Auch Danke für die Sache mit den Unstetigkeiten, in diesem Fall können nicht wirklich viele Dummheiten passieren, aber es ist gut zu wissen wie man es richtig macht. Das war mein erstes ernsthaftes Matlab file und ich hatte den Quelltext komplett gepostet, falls jemand an dem file "rumbasteln" wollte.
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.