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

Differentialgleichung numerisch lösen-Randbedingungproblem?

 

Fabse
Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 17.07.15
Wohnort: ---
Version: 2015a
     Beitrag Verfasst am: 18.08.2015, 02:30     Titel: Differentialgleichung numerisch lösen-Randbedingungproblem?
  Antworten mit Zitat      
Hallo Leute,
ich schaffe es nicht die eigentlich ganz einfache DGL zu lösen:
\frac{\partial u}{\partial t}=\nu \frac{\partial^2 u}{\partial y^2}
Mit Startbedingung:
u(y,t=0)=0
und den Randbedingungen:
u(y=0,t)=0
u(y=D,t)=t

Zum Lösen benutze ich pdepe und habe das so in Matlab formuliert:

Code:

t=0:1e-6:10e-5;
ygrid=0:1e-7:200e-6;
sol=pdepe(0,@eq,@eq_IC,@eq_BC,ygrid,t);

function [c,f,s] = eq(y,t,u,dudy)
nu=1e-6;
c=1/nu;
f=dudy;
s=0;

function u0=eq_IC(y)
u0=0;

function [pl,ql,pr,qr] = eq_BC(yl,ul,yr,ur,t)
pl=ul;ql=0;pr=t;qr=0; %So würd ichs denken!!! Geht aber nicht!
 


Dabei gibt Matlab die Fehlermeldung:
"Spatial discretization has failed. Discretization supports only
parabolic and elliptic equations, with flux term involving
spatial derivative."

Nun würde ich (wenn ich die Fehlermeldung richtig verstehe) dann auch gerne eine Neumann Bedingung wenn möglich erfüllen und zwar:
\frac{\partial u(y=D)}{\partial y}=0

darum setze ich dann bei den Randbedingungen:
Code:

function [pl,ql,pr,qr] = eq_BC(yl,ul,yr,ur,t)
pl=ul;ql=0;pr=t;qr=1;%So gehts - ergibt aber nicht das was ich will...


Dann löst Matlab die DGL, aber leider überhaupt wie erwartet - die Steigung an der Stelle y=D ist sehr steil (statt Null) und u(y=D)~=t....

Wie geht das richtig?
Private Nachricht senden Benutzer-Profile anzeigen


Fabse
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 13
Anmeldedatum: 17.07.15
Wohnort: ---
Version: 2015a
     Beitrag Verfasst am: 18.08.2015, 11:11     Titel:
  Antworten mit Zitat      
Nachtrag:
Die Fehlermeldung in Matlab 2013b lautet:
"This DAE appears to be of index greater than 1. Error in ode15s"

Die Fehlermeldung in Matlab 2015 lautet (wie gesagt):
"Spatial discretization has failed. Discretization supports only
parabolic and elliptic equations, with flux term involving
spatial derivative."
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.