Verfasst am: 16.09.2014, 16:46
Titel: Lösen von Differentialgleichungen
Hallo,
ich möchte mit MATLAB eine Differentialgleichung lösen.
Es handelt sich dabei um die Kontinuitätsgleichung, wobei ich annehme, dass die Ableitung von der Dichte (rho) nach der Zeit t = 0 ist.
Die Gleichung soll auf einem Gebiet gelöst werden, z.B. 100x100x10, für x,y,z.
Ich lege mir als Bedingung ein Feld u und ein Feld v vor, habe also auch die Ableitung von u und v nach x und y Gegeben.
Die Dichte berechne ich in Abhängigkeit der Höhen über die Barometrische Höhenformel.
Als Randbedingung setze ich w am Boden w(0,0,0)=0;
Nun bleibt mir noch eien DGL, etwa in der Form:
w' + A(z)*w = B
wobei A(z)=(d rho(z)/d z)/rho(z)
und B=-(d u(x,y,z)/d x + d v(x,y,z)/ d y)
Ich versuche die DGL mit dsolve zu lösen, aber verstehe das ganze nicht so richtig. Hier mein Ansatz:
Code:
%Erklärung: d: Ableitung
%Variable: d-Name-Wert nach dem abgelitten wird
%Variablen für DGL solver
syms w(x,y,z) rho(x,y,z) drhoz
%Dichte
%Allgemeine physikalische / atmosphärische Größen
R=8.314;
T=273.15+20.0;
M=0.02896;
g=9.807;
rho0=1011.2;
hs=(R*T/(M*g));
%Berechnung
rho=rho0.*exp(-zpoint./hs); %Barometrische Höhenformel
drhoz=-rho0*1/hs*exp(-zpoint./hs); %Dichte nach der Höhe
drhot=0; %Ableitung der Dichte nach der Zeit
%Ableitungen dex u,v,w Feldes in x,y,z
%Vorgegeben: U
u0=10;
dux=1/1000; %Ableitung von u nach x
duy=0.5/1000; %Ableitung von u nach y
duz=0; %Ableitung von u nach z
u=xpoint.*dux+ypoint.*duy+zpoint.*duz+u0;
%Vorgegeben: V
v0=0;
dvx=1/1000; %Ableitung von v nach x
dvy=0.5/1000; %Ableitung von v nach y
dvz=0; %Ableitung von v nach z
v=xpoint.*dvx+ypoint.*dvy+zpoint.*dvz+v0;
%Vorgegeben: W
%Lösen der DGL für w
w = dsolve(diff(w) + w.*drhoz./rho == -(dux+dvy), w(0) == 0);
setze, dann ist w auch von x abhängig.
Im Prinzip möchte ich ein w, das beliebig von x y und z abhängig sein kann. Wenn ich aber versuche w als w(x,y,z) als symbolische Funktion zu deklarieren, dann bekomme ich beim Ausführen der Zeile
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.