MATLAB编辑一维热传导方程的模拟程序

求解下列热传导问题:

2T1T0zL02tz2 Tz,01z

T0,t1,TL,t01L1,

程序:

function heat_conduction() %一维齐次热传导方程

options={'空间杆长L','空间点数N' ,'时间点数M','扩散系数alfa','稳定条件的值lambda(取值必须小于0.5)',};

topic='seting';

lines=1;

def={'1','100','1000','1','0.5'};

h=inputdlg(options,topic,lines,def);

L=eval(h{1});

N=eval(h{2});

M=eval(h{3});

alfa=eval(h{4});

lambda=eval(h{5});%lambda的值必须小于0.5

%***************************************************

h=L/N;%空间步长

z=0:h:L;

z=z';

tao=lambda*h^2/alfa;%时间步长

tm=M*tao;%热传导的总时间tm

t=0:tao:tm;

t=t';

%计算初值和边值

T=zeros(N+1,M+1);

Ti=init_fun(z);

To=border_funo(t);

Te=border_fune(t);

T(:,1)=Ti;

T(1,:)=To;

T(N+1,:)=Te;

%用差分法求出温度T与杆长L、时间t的关系

for k=1:M

m=2;

while m

T(m,k+1)=lambda*(T(m+1,k)+T(m-1,k))+(-2*lambda+1)*T(m,k); m=m+1;

end;

end;

%设置立体网格

for i=1:M+1

X(:,i)=z;

end;

for j=1:N+1

Y(j,:)=t;

end

mesh(X,Y,T);

view([1 -1 1]);

xlabel('Z');

ylabel('t');

zlabel('T');

function y=init_fun(z)%初值条件

y=1-z.^2;

return

function y=border_funo(t)%z=0的边界条件

y=1+t.*0;

return

function y=border_fune(t)%z=L的边界条件

y=t*.0;

return

运行情况:

按“run”运行时,弹出窗口

将图中相关数据更改为:

点击图框中的“OK”,在“command window”中输出结果为:

求解下列热传导问题:

2T1T0zL02tz2 Tz,01z

T0,t1,TL,t01L1,

程序:

function heat_conduction() %一维齐次热传导方程

options={'空间杆长L','空间点数N' ,'时间点数M','扩散系数alfa','稳定条件的值lambda(取值必须小于0.5)',};

topic='seting';

lines=1;

def={'1','100','1000','1','0.5'};

h=inputdlg(options,topic,lines,def);

L=eval(h{1});

N=eval(h{2});

M=eval(h{3});

alfa=eval(h{4});

lambda=eval(h{5});%lambda的值必须小于0.5

%***************************************************

h=L/N;%空间步长

z=0:h:L;

z=z';

tao=lambda*h^2/alfa;%时间步长

tm=M*tao;%热传导的总时间tm

t=0:tao:tm;

t=t';

%计算初值和边值

T=zeros(N+1,M+1);

Ti=init_fun(z);

To=border_funo(t);

Te=border_fune(t);

T(:,1)=Ti;

T(1,:)=To;

T(N+1,:)=Te;

%用差分法求出温度T与杆长L、时间t的关系

for k=1:M

m=2;

while m

T(m,k+1)=lambda*(T(m+1,k)+T(m-1,k))+(-2*lambda+1)*T(m,k); m=m+1;

end;

end;

%设置立体网格

for i=1:M+1

X(:,i)=z;

end;

for j=1:N+1

Y(j,:)=t;

end

mesh(X,Y,T);

view([1 -1 1]);

xlabel('Z');

ylabel('t');

zlabel('T');

function y=init_fun(z)%初值条件

y=1-z.^2;

return

function y=border_funo(t)%z=0的边界条件

y=1+t.*0;

return

function y=border_fune(t)%z=L的边界条件

y=t*.0;

return

运行情况:

按“run”运行时,弹出窗口

将图中相关数据更改为:

点击图框中的“OK”,在“command window”中输出结果为:


    相关文章

    MATLAB在有限差分法中的应用

    第!"卷第!期 !(("年)月 桂林工学院学报 *+,-'./+01,2/2'2'3424,45+04567'+/+18#$%&!"'$&!.9:&!((" !!!!!!!!! ...

    热传导方程的求解

    应用物理软件训练 前 言 MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发.数据可视化.数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分. MATLAB是矩阵实验室 ...

    基于Matlab环境的弦振动方程的图像与音效模拟

    基于Matlab环境的弦振动方程的图像与音效模拟 口李韵郭怡文 (武汉大学电子信息学院 吕郁文 湖北・武汉430000) 摘要:本文将从波动方程入手,引申出声学弦振动的物理意义,在有界边界条件下,讨论一维情况下的驻没,给出弦振动方程的一般解 ...

    [成本会计实训]教案

    <数学实验>教案 实验一:Matlab 基本操作 一.实验基本情况 [实验学时]2学时 [实验形式]实验室小课 [实验重点]Matlab 软件的一些基本操作和常用命令 [实验难点]Matlab 软件的一些基本操作和常用命令 [参 ...

    [偏微分方程概述及运用matlab求解偏微分方程常见问题]

    北京航空航天大学 偏微分方程概述及运用matlab求解微分方 程求解常见问题 姓名 学号 班级 2011年6月 偏微分方程概述及运用matlab求解偏微分 方程常见问题 徐敏 摘要 偏微分方程简介,matlab偏微分方程工具箱应用简介,用这 ...

    最优投资组合实验

    <证券投资分析>上机实验 上机实验要求: 第6,8,10,12周星期三1,2节实验课,共分为四项上机实验项目,上机完成实验内容: 具体内容与步骤: (一)数据收集:3-5项股票的价格,上证指数(至少1年时间跨度),K线图,上市公 ...

    激光深熔焊接下临界功率密度的确定

    华南理工大学学报(自然科学版) 第37卷第8期2009年8月 JournalofSouthChinaUniversityofTechnology (NaturalScienceEdition) V01.37August No.82009 文 ...

    matlab常用命令汇总111111

    一.常用对象操作:除了一般windows窗口的常用功能键外. 1.!dir 可以查看当前工作目录的文件. !dir& 可以在dos状态下查看. 2.who 可以查看当前工作空间变量名, whos 可以查看变量名细节. 3.功能键: ...

    教学改革研究工作总结

    计算物理与MATLAB相结合的教学改革总结 李晓莉(物理科学与技术学院) 计算物理学是运用许多基础数学理论(如偏微分方程理论.线性代数.非线性规划等)和先进的计算技术(如性能优良的计算机和优秀的数值计算软件)对物理学研究前沿的挑战性问题进行 ...