24小时热门版块排行榜    

查看: 561  |  回复: 1
当前主题已经存档。

zju-hjm

金虫 (初入文坛)

[交流] 用matlab解含第二类边界条件的偏微分方程

一个简单的抛物线型偏微分方程,求u(x,t)
u_t 表示对t的一阶导数,u_x为对x的一阶导数,u_xx表示对x的二阶导数

方程 u_t =u_xx         (1)

边界条件
x=0,t>0,u_x=0;  (2)
x=1,t>0,  u(1,t)=0;  
  (3)
初始条件
t=0, u(x,0)=1;            (4)
我用有限差分法,主要是第二类边界条件(2)式怎么在matlab里面利用
我大致解了一下,但觉得结果有问题,而且我认为问题是出在(2)式上。真心求教这个问题怎么解,谢谢虫友!

附:我写的程序--------------------------------------------------------------------------------------
function [u,x,t]=model2(xf,T)
% solve  u_xx=u_t for 0<=x<=xf,0<=t<=T
% Initial condition:u(x,0)=1
% boundary conditon:u(1,t)=0;u_x(0,t)=0

dx=xf/50;x=[0:50]'*dx;
dt=T/10000;t=[0:10000]*dt;
for i=1:51,u(i,1)=1;end % Initial condition:u(x,0)=1
for n=1:10001,u(51,n)=0;end % boundary conditon:u(1,t)=0
r=dt/dx/dx;r1=1-2*r;
for k=1:10000
    u(1,k+1)=2*r*u(2,k)+r1*u(1,k);end % boundary conditon:u_x(0,t)=0 ?
for k=1:10000
    for i=2:50
        u(i,k+1)=r1*u(i,k)+r*(u(i-1,k)+u(i+1,k));% solve  u_xx=u_t for 0<=x<=xf,0<=t<=T
    end
end

--------------------------------------------------------------------------------------
命令窗口输入:

xf=1;
T=1;
[u,x,t]=model2(xf,T);
figure(1),clf,mesh(t,x,u);
==============================================
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nono2009

超级版主 (文学泰斗)

No gains, no pains.

优秀区长优秀区长优秀区长优秀区长优秀版主

★ ★ ★
小木虫(金币+0.5):恭喜抢沙发,给个红包
zju-hjm(金币+2,VIP+0):能大致写一下matlab的程序么 12-18 13:47
建议只做空间离散后,用matlab自带的ODE solver求解。
2楼2009-12-18 11:29:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zju-hjm 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见