24小时热门版块排行榜    

CyRhmU.jpeg
查看: 3513  |  回复: 1

zju-hjm

金虫 (初入文坛)

[交流] 【求助】用matlab解含第二类边界条件的偏微分方程已有1人参与

一个简单的抛物线型偏微分方程,求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);
==============================================

[ Last edited by zju-hjm on 2009-12-17 at 16:28 ]
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

keventu

金虫 (初入文坛)

我帮你找一个老师吧,私下M你
2楼2010-05-05 16:34:41
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zju-hjm 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见