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

ODE23

 

Grolas
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 23.04.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.04.2012, 18:43     Titel: ODE23
  Antworten mit Zitat      
Gruesst Euch;
ich hab ein kleines Problem mit einer Aufgabe.
Es geht um ein Gleichungsystem das wie folgt aussieht:

d(rho)/ dt + d(rho*u)/dx=0
d(rho*u)/dt+d(rho*u^2+p)/dx=0
d(rho*E)/dt + d((rho*E+p)*u)/dx=0

Dieses soll mit ODE23 bzw ODE45 geloest zerden.
folgende Infos stehen zur Verfuegung:
E=(cvT+0.5*u^2)
p=rho*R*T
R=8.31
T=293
cv=12.5

nun sind die 3 Variablen sowohl von der Zeit t als auch von der Variablen x abhaengig.
Das Problem soll im Intervall x=[0,1] geloest werden.

die Anfangsbedingungen zum Zeitpunkt t=0 sind wie folgt:
(rho,u,p)=(1,0,1) fuer x<=0.5
und (0.125,0,0.1) fuer x=0.6 bis 1

Der Vektor den ich fuer die Berechnung benutze und dessen Variablen berechnet werden sollen ist
w=(rho,rho*u,rho*E)

Nun sieht mein Programm wie folgt aus:

Code:


for i=1:10
    x(i)=i*0.1

    if x(i) < 0.5
        rho = 1;
        u = 0;
        p = 1;
        else rho = 0.125;
             u = 0;
            p = 0.1;
    end

    Cv = 12.5;
    T = 293;
    E = (Cv*T+0.5*u^2);

    t0 = 0;
    tfinal = 0.02;
    w0 = [rho rho*u rho*E]';

   
    tfinal = tfinal*(1+eps);
    [t,w] = ode23('systeuler',[t0 tfinal],w0)
   
end


und
Code:

function wp = systeuler(t,w)
 


wp = [-w(2);-(w(2)*w(2)/w(1)+w(1)*8.31*293);-(w(3)+w(1)*8.31*293)*(w(2)/w(1))];
 


ich bekomme zwar Ergebnisse, diese sind aber nicht unbedingt korrekt und vor allem bekomme ich nur Loesungen fuer den Punkt x=1.

Nun zu meinem Problem:

1. Ich weiss nicht, wie ich Ergebnisse fuer jeden Punkt von 0 bis 1 bekommen kann.
2. Ich bekomme Ergebnisse, die physikalisch unlogisch sind.



Kann mir vielleicht jemand helfen?!?
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.502
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 23.04.2012, 21:06     Titel:
  Antworten mit Zitat      
Hallo,

das sieht mir nach einer partiellen Differentialgleichung aus. Ich würde da die dafür gedachten Löser verwenden, nicht ode23.

Zudem: du hast das System doch sicher aufgelöst, bevor du ode23 darauf losgelassen hast? Sschreib doch das System in aufgelöster Form hin...

ode23 geht ja davon aus, dass das System in der Form y' = f(t, y)
gegeben ist.

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 - 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.