I want to solve the following PDE and plot the U versus r for following equation du/dt=-div(u^0.8 du/dr). was wondering if anyone can help me out? 0=<r<=5, 0=<t<=30 Thanks

 採用された回答

Youssef  Khmou
Youssef Khmou 2013 年 5 月 8 日
編集済み: Youssef Khmou 2013 年 5 月 8 日

0 投票

hi,
try :
doc pdepe
Generally the PDEs in matlab follow the general formuale :
c(x,t,u,du/dx).du/dt=(x^-m).d/dx[(x^-m)f(x,t,u,du/dx)]+s(x,t,u,du/dx)
Where the s is the source term and f is the flux term.
given a PDE , you have to make an analogy between your equation and the general form above, so for example in your case we have : s=0; m=0;c=1; and f=u^0.8*Diveregence(u) .
You have missing conditions in your problem : Initial conditions and Boundary conditions , i tried to write for you the sample with default conditions in Math(c) documentation , adapt it based on you I.C:
% function ( M-file)
function SOL=PDEX1()
r=linspace(0,5,100);
t=linspace(0,30,100);
m=0;
SOL= pdepe(m,@pdex1pde,@pdex1ic,@pdex1bc,r,t);
function [c,f,s] = pdex1pde(r,t,u,M)
% du/dt=div(u^(0.8)du/dr)
c =1;
D=gradient(u);
M =(u.^(0.8)).*D;
f= M;
s =0;
function u0 = pdex1ic(r)
u0 = sin(pi*r);
function [pl,ql,pr,qr] = pdex1bc(xl,ul,xr,ur,t)
pl = ul;
ql = 0;
pr = pi * exp(-t);
qr = 1;
change now the initial/ boundary conditions.
Your equation seems like it has a Nusselt number no? anyway we r waiting for the result interpretation,
% In the workspace try :
>>S=PDEX1();
>>surf(S);
I hope this helps.

3 件のコメント

Davoud
Davoud 2013 年 5 月 9 日
Hi Youssef, Thanks for your help I think you made a mistake, because the left hand side of the equation I asked is divergence not gradient also the initial condition is at t=0 u=1 and at r=5 u=0.512 and at r=0 du/dr=0
Youssef  Khmou
Youssef Khmou 2013 年 5 月 9 日
hi, I choosed gradient because i still dont know if U is 2D or 3D, but basically its 2D ( function of radius and time ) and i tried with with diff/diff(r) and gradient, they give ~ the same , but using diff(u)./diff(r) gives an error.
about the initial conditions, make these changes :
function u0 = pdex1ic(r)
u0 = 1;
function [pl,ql,pr,qr] = pdex1bc(xl,ul,xr,ur,t)
pl = 1;
ql = 1;
pr = -0.512;
qr = 1;
MANOJ KUMAR C
MANOJ KUMAR C 2022 年 2 月 1 日
what is mean by pl = 1;
ql = 1;
pr = -0.512;
qr = 1; this variables and how we can solve non linear problems

サインインしてコメントする。

その他の回答 (0 件)

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by