有限差分法的一维扩散MATLAB,一维扩散方程的有限差分法matlab.doc

该博客详细介绍了使用有限差分法求解一维扩散方程的过程,采用隐式六点差分格式(Crank-Nicolson)进行数值模拟。通过编程实现,对比了计算结果与解析解,并利用追赶法求解三对角矩阵方程。此外,还展示了计算得到的解与解析解的三维表面图。
摘要由CSDN通过智能技术生成

文档介绍:

一维扩散方程の有限差分法——计算物理实验作业七陈万物理学2013级题目:编程求解一维扩散方程の解取。输出t=1,2,...,10时刻のx和u(x),并与解析解u=exp(x+0.1t)作比较。主程序:%一维扩散方程の有限差分法clear,clc;%定义初始常量a1=1;b1=1;c1=0;a2=1;b2=-1;c2=0;a0=1.0;t_max=10;D=0.1;h=0.1;tao=0.1;%调用扩散方程子函数求解u=diffuse_equation(a0,t_max,h,tao,D,a1,b1,c1,a2,b2,c2);子程序1:functionoutput=diffuse_equation(a0,t_max,h,tao,D,a1,b1,c1,a2,b2,c2)%一维扩散方程の有限差分法,采用隐式六点差分格式(Crank-Nicolson)%a0:xの最大值%t:_max:tの最大值%h:空间步长%tao:时间步长%D:扩散系数%a1,b1,c1是(x=0)边界条件の系数;a2,b2,c2是(x=a0)边界条件の系数x=0:h:a0;n=length(x);t=0:tao:t_max;k=length(t);P=tao*D/h^2;P1=1/P+1;P2=1/P-1;u=zeros(k,n);%初始条件u(1,:)=exp(x);%求A矩阵の对角元素dd=zeros(1,n);d(1,1)=b1*P1+h*a1;d(2:(n-1),1)=2*P1;d(n,1)=b2*P1+h*a2;%求A矩阵の对角元素下面一行元素ee=-ones(1,n-1);e(1,n-1)=-b2;%求A矩阵の对角元素上面一行元素ff=-ones(1,n-1);f(1,1)=-b1;R=zeros(k,n);%求R%追赶法求解fori=2:kR(i,1)=(b1*P2-h*a1)*u(i-1,1)+b1*u(i-1,2)+2*h*c1;forj=2:n-1R(i,j)=u(i-1,j-1)+2*P2*u(i-1,j)+u(i-1,j+1);endR(i,n)=b2*u(i-1,n-1)+(b2*P2-h*a2)*u(i-1,n)+2*h*c2;M=chase(e,d,f,R(i,:));u(i,:)=M';plot(x,u(i,:));axis([0a00t_max]);pause(0.1)endoutput=u;%绘图比较解析解和有限差分解[X,T]=meshgrid(x,t);Z=exp(X+0.1*T);surf(X,T,Z),xlabel('x'),ylabel('t'),zlabel('u'),title('解析解');figuresurf(X,T,u),xlabel('x'),ylabel('t'),zlabel('u'),title('有限差分解');子程序2:functionM=chase(a,b,c,f)%追赶法求解三对角矩阵方程,Ax=f%a是对角线下边一行の元素%b是对角线元素%c是对角线上边一行の元素%M是求得の结果,以列向量形式保存n=length(b);beta=ones(1,n-1);y=ones(1,n);M=

内容来自淘豆网www.taodocs.com转载请标明出处.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值