首页/文章/ 详情

二维热导方程Matlab数值解案例

3年前浏览3172

image.png

 过冷水诚挚邀请你加入Matlab仿真秀官方交流群进行Matlab学习、问题咨询、 Matlab相关资料下载,群号:927550334 

QQ图片20210424105303.png

    过冷水之前有和大家分享一维热传导方程的有限差分法求解的具体实现过程。本次就和大家一起来看看如何根据一维热传导有限差分法的思想求解二维热传导方程进行求解。形式如下的二维热传导方程:

图片

边界条件是:

图片

初值为:

图片

差微分方法思路:

图片

变形为迭代式如下:

图片

根据该迭代过程就可求出任意时刻的温度T随空间的分布情况。现在回到我们之前和大家分享的二维微分方程的具体案例中看一下怎么解:

图片

图片


clear all
a=0.5;
u_xy0=inline('0','x','y');
u_xyt=inline('x^2*cos(pi*y)-y^2*cos(pi*x)','x','y','t');
f=inline('0','x','y','t');
D=[0,2*pi,0,2*pi];
T=500;
Mx=100;
My=100;
N=100;
ox=(D(2)-D(1))/Mx;
x=D(1) [0:Mx]*ox;
oy=(D(4)-D(3))/My;
y=D(3) [0:My]*oy;
ot=T/N;
t=[0:N]*ot;
%初始化 u
for j=1:Mx 1;
    for i=1:My 1;
        u(i,j)=u_xy0(x(j),y(i));
    end
end
rx=a*ot/(ox*ox);
ry=a*ot/(oy*oy);
rx1=1 2*rx;
rx2=1-2*rx;
ry1=1 2*ry;
ry2=1-2*ry;
for j=1:Mx-1;
    A(j,j)=ry1;
    if j>1
        A(j-1,j)=-ry;
        A(j,j-1)=-ry;
    end
end
%A为y方向隐式时的系数矩阵
for i=1:My-1;
    B(i,i)=rx1;
    if i>1;
        B(i-1,i)=-rx;
        B(i,i-1)=-rx;
    end
end
%B为x方向隐式时的系数矩阵
for k=1:N
    t=k*ot;u_1=u;
    %for m=1:Mx 1;
        %for n=1:My 1;
            %v(n,m)=feval(f,x(m),y(n),t);
        %end
    %end
    u_1=u;
    for i=1:My 1
        u(i,1)=feval(u_xyt,x(1),y(i),t);
        u(i,Mx 1)=feval(u_xyt,x(Mx 1),y(i),t);
    end
    for j=1:My 1;
        u(1,j)=feval(u_xyt,x(j),y(1),t);
        u(My 1,j)=feval(u_xyt,x(j),y(My 1),t);
    end
    if mod(k,2)==0;
        for i=2:My;
            jj=2:Mx;
            bx=[ry*u(i,1),zeros(1,Mx-3),ry*u(i,My 1)] rx*(u_1(i-1,jj) u_1(i 1,jj)) rx2*u_1(i,jj) ot*u_1(i,jj);
            opts.UT = true; opts.TRANSA = true;
            u(i,jj)=linsolve(A,bx',opts)';
        end
    else
        for j=2:Mx
            ii=2:My;
            by=[rx*u(1,j);zeros(My-3,1);rx*u(Mx 1,j)] ry*(u_1(ii,j-1) u_1(ii,j-1)) ry2*u_1(ii,j) ot*u_1(ii,j);
            opts.UT = true; opts.TRANSA = true;
            u(ii,j)=linsolve(B,by,opts);
        end
    end
end
mesh(x,y,u);
xlabel('x');
zlabel('温度T')

    过冷水本期要和大家分享的二维热传导的问题就是这些了,热传导属于比较复杂的问题,物理模型不容易理解,解决了物理模型其实就是偏微分方程的求解问题,

图片

        过冷水发表于 仿真秀 平台原创文章,未经授权禁止私自转载,如需转载请需要和作者沟通表明授权声明,未授权文章皆视为侵权行为,必将追责。如果您希望加入Matlab仿真秀官方交流群进行Matlab学习、问题咨询、 Matlab相关资料下载均可加群:927550334。

精品回顾

 matlab绘制农夫过河动态图

分子动力学的原子空间运动轨迹演示编程

过冷水带你用matlab制作演示动画

python批量移动文件&重命名代码分享

过冷水和你分享 matlab读取存储各种文件的方法 文末有独家金曲分享

image.png

科普理论代码&命令MATLAB
著作权归作者所有,欢迎分享,未经许可,不得转载
首次发布时间:2021-05-13
最近编辑:3年前
过冷水
博士 | 讲师 讨论号:927550334
获赞 361粉丝 184文章 107课程 11
点赞
收藏
作者推荐

¥5 5.0
未登录
1条评论
Manchi
踏实认真
3年前
很棒
回复
课程
培训
服务
行家
VIP会员 学习 福利任务 兑换礼品
下载APP
联系我们
帮助与反馈