文档库 最新最全的文档下载
当前位置:文档库 › 二维热传导方程有限差分法的MATLAB实现

二维热传导方程有限差分法的MATLAB实现

二维热传导方程有限差分法的MATLAB实现
二维热传导方程有限差分法的MATLAB实现

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

求解下列热传导问题: ()()()()?????????====-=≤≤=??-??1, 10,,1,010,001222ααL t L T t T z z T L z t T z T 程序: function heat_conduction() %一维齐次热传导方程 options={'空间杆长L','空间点数N' ,'时间点数M','扩散系数alfa','稳定条件的值lambda(取值必须小于',}; topic='seting'; lines=1; ; def={'1','100','1000','1',''}; 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 的值必须小于 %*************************************************** ¥ 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;

(完整版)大连理工大学高等数值分析抛物型方程有限差分法

抛物型方程有限差分法 1. 简单差分法 考虑一维模型热传导方程 (1.1) )(22x f x u a t u +??=??,T t ≤<0 其中a 为常数。)(x f 是给定的连续函数。(1.1)的定解问题分两类: 第一,初值问题(Cauchy 问题):求足够光滑的函数()t x u ,,满足方程(1.1)和初始条件: (1.2) ()()x x u ?=0,, ∞<<∞-x 第二,初边值问题(也称混合问题):求足够光滑的函数()t x u ,,满足方程(1.1)和初始条件: ()13.1 ()()x x u ?=0,, l x l <<- 及边值条件 ()23.1 ()()0,,0==t l u t u , T t ≤≤0 假定()x f 和()x ?在相应的区域光滑,并且于()0,0,()0,l 两点满足相容条件,则上述问题有唯一的充分光滑的解。

现在考虑边值问题(1.1),(1.3)的差分逼近 取 N l h = 为空间步长,M T = τ为时间步长,其中N ,M 是 自然数, jh x x j ==, ()N j ,,1,0Λ=; τ k y y k ==, ()M k ,,1,0Λ= 将矩形域G {}T t l x ≤≤≤≤=0;0分割成矩形网格。其中 ()j i y x ,表 示网格节点; h G 表示网格内点(位于开矩形G 中的网格节点)的集合; h G 表示位于闭矩形G 中的网格节点的集合; h Γ表示h G -h G 网格边界点的集合。 k j u 表示定义在网点()k i t x ,处的待求近似解,N j ≤≤0,M k ≤≤0。 注意到在节点()k i t x ,处的微商和差商之间的下列关系 ((,)k j k j u u x t t t ????≡ ? ????): ()() ()ττ O t u t x u t x u k j k j k j +??? ????=-+,,1 ()() ()2112,,ττ O t u t x u t x u k j k j k j +??? ????=--+ ()()()h O x u h t x u t x u k j k j k j +??? ????=-+,,1 ()() ()h O x u h t x u t x u k j k j k j +??? ????=--,,1 ()() ()2112,,h O x u h t x u t x u k j k j k j +??? ????=--+ ()()() ()2 222 11,,2,h O x u h t x u t x u t x u k j k j k j k j +???? ????=+--+ 可得到以下几种最简差分格式

一维热传导MATLAB模拟

昆明学院2015届毕业设计(论文) 设计(论文)题目 一维热传导问题的数值解法及其MATLAB模拟子课题题目无 姓名伍有超 学号 5 所属系物理科学与技术系 专业年级2011级物理学2班 指导教师王荣丽 2015 年 5 月

摘要 本文介绍了利用分离变量法和有限差分法来求解一维传导问题的基本解,并对其物理意义进行了讨论。从基本解可以看出,在温度平衡过程中,杠上各点均受初始状态的影响,而且基本解也满足归一化条件,表示在热传导过程中杆的总热量保持不变。通过对一维杆热传导的分析,利用分离变量法和有限差分法对一维热传导进行求解,并用MATLAB 数学软件来对两种方法下的热传导过程进行模拟,通过对模拟所得三维图像进行取值分析,得出由分离变量法和有限差分法绘制的三维图基本相同,且均符合热传导过程中温度随时间、空间的变化规律,所以两种方法均可用来解决一维热传导过程中的温度变化问题。 关键词:一维热传导;分离变量法;有限差分法;数值计算;MATLAB 模拟

Abstract In this paper, the method of variable separation and finite difference method are introduced to solve the problem of one-dimensional heat conduction problems, and the physical significance of numerical methods for heat conduction problems are discussed. From the basic solution, we can see the temperature on the bar are affected by the initial state during the process of temperature balance, and basic solution also satisfy the normalization condition which implied the invariance of the total heat in the bar during the heat conduction process. Through the analysis of the one-dimensional heat conduction, by taking use of variable separation method and finite difference method, we simulated the one-dimensional heat conduction problem by MATLAB. The three-dimensional images of the simulation results obtained by the method of separation of variables and finite difference method are similar to each other, and the temperature curve is in accordance with the law of temperature variation during heat conduction. Thus, we can go to the conclusion that both methods can be used to deal with the one-dimensional heat conduction problems. Keywords: One-dimensional heat conduction; method of variable separation; finite difference method; numerical method; MATLAB simulation

【毕业设计(论文)】二维热传导方程有限差分法的MATLAB实现

第1章前言 1.1问题背景 在史策教授的《一维热传导方程有限差分法的MATLAB实现》和曹刚教授的《一维偏微分方程的基本解》中,对偏微分方程的解得MATLAB实现问题进行过研究,但只停留在一维中,而实际中二维和三维的应用更加广泛。诸如粒子扩散或神经细胞的动作电位。也可以作为某些金融现象的模型,诸如布莱克-斯科尔斯模型与Ornstein-uhlenbeck过程。热方程及其非线性的推广形式也被应用与影响分析。 在科学和技术发展过程中,科学的理论和科学的实验一直是两种重要的科学方法和手段。虽然这两种科学方法都有十分重要的作用,但是一些研究对象往往由于他们的特性(例如太大或太小,太快或太慢)不能精确的用理论描述或用实验手段来实现。自从计算机出现和发展以来,模拟那些不容易观察到的现象,得到实际应用所需要的数值结果,解释各种现象的规律和基本性质。 科学计算在各门自然科学和技术科学与工程科学中其越来越大的作用,在很多重要领域中成为不可缺少的重要工具。而科学与工程计算中最重要的内容就是求解科学研究和工程技术中出现的各种各样的偏微分方程或方程组。 解偏微分方程已经成为科学与工程计算的核心内容,包括一些大型的计算和很多已经成为常规的计算。为什么它在当代能发挥这样大的作用呢?第一是计算机本身有了很大的发展;第二是数值求解方程的计算法有了很大的发展,这两者对人们计算能力的发展都是十分重要的。 1.2问题现状 近三十年来,解偏微分方程的理论和方法有了很大的发展,而且在各个学科技术的领域中应用也愈来愈广泛,在我国,偏微分方程数值解法作为一门课程,不但在计算数学专业,而且也在其他理工科专业的研究生的大学生中开设。同时,求解热传导方程的数值算法也取得巨大进展,特别是有限差分法方面,此算法的特点是在内边界处设计不同于整体的格式,将全局的隐式计算化为局部的分段隐式计算。而且精度上更好。 目前,在欧美各国MATLAB的使用十分普及。在大学的数学、工程和科学系科,MATLAB

【文献综述】热传导方程差分格式的收敛性和稳定性

文献综述 信息与计算科学 热传导方程差分格式的收敛性和稳定性在实际研究物理问题过程中, 往往能给出问题相应的数学表达式, 但是由于实际物理问题的复杂性, 它的解却一般不容易求出. 由此计算物理应运而生, 计算物理是以计算机为工具, 应用数学的方法解决物理问题的一门应用性学科, 是物理、数学和计算机三者结合的交叉性学科. 它产生于二战期间美国对核武器的研究, 伴随着计算机的发展而发展. 计算物理的目的不仅仅是计算, 而是要通过计算来解释和发现新的物理规律. 这一点它与传统的实验物理和理论物理并无差别, 所不同的只是使用的工具和方法. 计算物理早已与实验物理和理论物理形成三足鼎立之势, 甚至有人提出它将成为现代物理大厦的“栋梁”. 在一个物理问题中一个数值解往往比一个式子更直观, 更有价值. 在实际求解方程时, 除了一些特殊的情况下可以方便地求得其精确解外, 在一般情况下, 当方程或定解条件具有比较复杂的形式, 或求解区域具有比较复杂的形状时, 往往求不到, 或不易求到其精确解. 这就需要我们去寻找方程的近似解, 特别是数值近似解, 简称数值解. 这里主要研究的是热传导方程. 有限差分法是微分方程和积分微分方程数值解的方法. 其基本思想是把连续的定解区域用有限个离散点构成的网格来代替, 这些离散点称作网格的节点;把连续定解区域上的连续变量的函数用在网格上定义的离散变量函数来近似;把原方程和定解条件中的微商用差商来近似, 积分用积分和来近似, 于是原微分方程和定解条件就近似地代之以代数方程组, 即有限差分方程组, 解此方程组就可以得到原问题在离散点上的近似解. 然后再利用插值方法便可以从离散解得到定解问题在整个区域上的近似解. 热传导的差分法是求解热传导方程的重要方法之一. 对于差分格式的的求解, 我们首先要关注差分格式的收敛性和稳定性. 对于一个微分方程建立的各种差分格式, 为了有实用意义, 一个基本要求是它们能够任意逼近微分方程, 即相容性要求. 一个差分格式是否有用, 就要看差分方程的精确解能否任意逼近微分方程的解, 即收敛性的概念. 此外, 还有一个重要的概念必须考虑, 即差分格式的稳定性. 因为差分格式的计

导热方程求解matlab

使用差分方法求解下面的热传导方程 2 (,)4(,) 0100.2t xx T x t T x t x t =<<<< 初值条件:2(,0)44T x x x =- 边值条件:(0,)0(1,)0 T t T t == 使用差分公式 1,,1,2 2 2 (,)2(,)(,) 2(,)()i j i j i j i j i j i j xx i j T x h t T x t T x h t T T T T x t O h h h -+--++-+= +≈ ,1,(,)(,) (,)()i j i j i j i j t i j T x t k T x t T T T x t O k k k ++--= +≈ 上面两式带入原热传导方程 ,1,1,,1,2 2i j i j i j i j i j T T T T T k h +-+--+= 令2 24k r h =,化简上式的 ,1,1,1,(12)()i j i j i j i j T r T r T T +-+=-++ i x j t j

编程MA TLAB 程序,运行结果如下 1 x t T function mypdesolution c=1; xspan=[0 1]; tspan=[0 0.2]; ngrid=[100 10]; f=@(x)4*x-4*x.^2; g1=@(t)0; g2=@(t)0; [T,x,t]=rechuandao(c,f,g1,g2,xspan,tspan,ngrid); [x,t]=meshgrid(x,t); mesh(x,t,T); xlabel('x') ylabel('t') zlabel('T') function [U,x,t]=rechuandao(c,f,g1,g2,xspan,tspan,ngrid) % 热传导方程:

Matlab解热传导方程代码

Sample MATLAB codes 1. %Newton Cooling Law clear; close all; clc; h = 1; T(1) = 10; %T(0) error = 1; TOL = 1e-6; k = 0; dt = 1/10; while error > TOL, k = k+1; T(k+1) = h*(1-T(k))*dt+T(k); error = abs(T(k+1)-T(k)); end t = linspace(0,dt*(k+1),k+1); plot(t,T),hold on, plot(t,1,'r-.') xlabel('Time'),ylabel('Temperature'), title(['T_0 = ',num2str(T(1)), ', T_\infty = 1']), legend('Cooling Trend','Steady State') 2. %Boltzman Cooling Law clear; close all; clc; h = 1; T(1) = 10; %T(0) error = 1; TOL = 1e-6; k = 0; dt = 1/10000; while error > TOL, k = k+1; T(k+1) = h*(1-(T(k))^4)*dt+T(k); error = abs(T(k+1)-T(k)); end t = linspace(0,dt*(k+1),k+1); plot(t,T),hold on, plot(t,1,'r-.') xlabel('Time'),ylabel('Temperature'), title(['T_0 = ',num2str(T(1)), ', T_\infty = 1']), legend('Cooling Trend','Steady State') 3. %Fourier Heat conduction clear; close all; clc; h = 1; n = 11; T = ones(n,1); Told = T; T(1) = 1; %Left boundary T(n) = 10; %Right boundary x = linspace(0,1,n); dx = x(2)-x(1);

一维导热方程 有限差分法 matlab实现

第五次作业(前三题写在作业纸上) 一、用有限差分方法求解一维非定常热传导方程,初始条件和边界条件见说明.pdf 文件,热扩散系数α=const , 22T T t x α??=?? 1. 用Tylaor 展开法推导出FTCS 格式的差分方程 2. 讨论该方程的相容性和稳定性,并说明稳定性要求对求解差分方程的影响。 3. 说明该方程的类型和定解条件,如何在程序中实现这些定解条件。 4. 编写M 文件求解上述方程,并用适当的文字对程序做出说明。(部分由网络搜索得到,添加,修改后得到。) function rechuandaopde %以下所用数据,除了t 的范围我根据题目要求取到了20000,其余均从pdf 中得来 a=0.00001;%a 的取值 xspan=[0 1];%x 的取值范围 tspan=[0 20000];%t 的取值范围 ngrid=[100 10];%分割的份数,前面的是t 轴的,后面的是x 轴的 f=@(x)0;%初值 g1=@(t)100;%边界条件一 g2=@(t)100;%边界条件二 [T,x,t]=pdesolution(a,f,g1,g2,xspan,tspan,ngrid);%计算所调用的函数 [x,t]=meshgrid(x,t); mesh(x,t,T);%画图,并且把坐标轴名称改为x ,t ,T xlabel('x') ylabel('t') zlabel('T') T%输出温度矩阵 dt=tspan(2)/ngrid(1);%t 步长 h3000=3000/dt;

h9000=9000/dt; h15000=15000/dt;%3000,9000,15000下,温度分别在T矩阵的哪些行T3000=T(h3000,:) T9000=T(h9000,:) T15000=T(h15000,:)%输出三个时间下的温度分布 %不再对三个时间下的温度-长度曲线画图,其图像就是三维图的截面 %稳定性讨论,傅里叶级数法 dx=xspan(2)/ngrid(2);%x步长 sta=4*a*dt/(dx^2)*(sin(pi/2))^2; if sta>0,sta<2 fprintf('\n%s\n','有稳定性') else fprintf('\n%s\n','没有稳定性') error end %真实值计算 [xe,te,Te]=truesolution(a,f,g1,g2,xspan,tspan,ngrid); [xe,te]=meshgrid(xe,te); mesh(xe,te,Te);%画图,并且把坐标轴名称改为xe,te,Te xlabel('xe') ylabel('te') zlabel('Te') Te%输出温度矩阵 %误差计算 jmax=1/dx+1;%网格点数 [rms]=wuchajisuan(T,Te,jmax) rms%输出误差

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

求解下列热传导问题: 2T 1 T 门 c , 2 0 0 z L z t T乙0 1 z2 T 0,t 1, T L,t 0 L 1, 1 程序: fun ctio n heat_c on ductio n() % 一维齐次热传导方程 options={'空间杆长L','空间点数N','时间点数M','扩散系数alfa',' 件的值 稳定条lambda(取值必须小于0.5)',}; topic='set in g'; lin es=1; def={'1','100','1000','1','0.5'}; h=in putdlg(opti on s,topic, lin es,def); L=eval(h{1}); N=eval(h{2}); M=eval(h{3}); alfa=eval(h{4}); lambda=eval(h{5});%lambda 的值必须小于0.5 o%*************************************************** h=L/N;%空间步长 z=0:h:L; z=z'; tao=lambda*h A2/alfa;% 时间步长 tm=M*tao;%热传导的总时间tm t=0:tao:tm; t=t'; %计算初值和边值 T=zeros(N+1,M+1); Ti=i nit_fu n(z); To=border_fu no (t); Te=border_fu ne(t); T(:,1)=Ti;- T(1,:)=To; T(N+1,:)=Te; %用差分法求出温度T与杆长L、时间t的关系 for k=1:M m=2; while m<=N T(m,k+1)=lambda*(T(m+1,k)+T(m-1,k))+(-2*lambda+1)*T(m,k); m=m+1; end;

热传导方程的求解

应用物理软件训练 前言 MATLAB 是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。 MATLAB是矩阵实验室(Matrix Laboratory)的简称,和Mathematica、Maple 并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其

他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。本部分主要介绍如何根据所学热传导方程的理论知识进行MATLAB数值实现可视化。本部分主要介绍如何根据所学热传导方程的理论知识进行MATLAB数值实现可视化。本部分主要介绍如何根据所学热传导方程的理论知识进行MATLAB数值实现可视化。 本部分主要介绍如何根据所学热传导方程的理论知识进行MATLAB数值实现可视化。

题目:热传导方程的求解 目录 一、参数说明 (1) 二、基本原理 (1) 三、MATLAB程序流程图 (3) 四、源程序 (3) 五、程序调试情况 (6) 六、仿真中遇到的问题 (9) 七、结束语 (9) 八、参考文献 (10)

一、参数说明 U=zeros(21,101) 返回一个21*101的零矩阵 x=linspace(0,1,100);将变量设成列向量 meshz(u)绘制矩阵打的三维图 axis([0 21 0 1]);横坐标从0到21,纵坐标从0到1 eps是MATLAB默认的最小浮点数精度 [X,Y]=pol2cart(R,TH);效果和上一句相同 waterfall(RR,TT,wn)瀑布图 二、基本原理 1、一维热传导问题 (1)无限长细杆的热传导定解问题 利用傅里叶变换求得问题的解是: 取得初始温度分布如下 这是在区间0到1之间的高度为1的一个矩形脉冲,于是得 (2)有限长细杆的热传导定解问题

matlab求解热传导实例

matlab 求解热传导问题的几个例子 1.金属板导热问题 解: 2.Matlab 自带例子 :

3.热传导问题的动画程序: 若需要求解偏微分方程组,可用pdepe函数。

4.非均质板壁的一维不稳定导热过程: 可用parabolic 函数求解,该函数的说明如下 : 类比可得系数c=1,a=0,f=0,d=1.计算参考程序如下: [p,e,t]=initmesh('squareg'); [p,e,t]=refinemesh('squareg',p,e,t); u0=zeros(size(p,2),1); ix=find(sqrt(p(1,:).^2+p(2,:).^2)<0.8); u0(ix)=ones(size(ix)); tlist=linspace(0,0.1,20); u1=parabolic(u0,tlist,'squareb1',p,e,t,1,0,0,1); pdeplot(p,e,t,'xydata',u1(:,8),'mesh','off','colormap','hot'); x=linspace(-1,1,31);y=x; [unused,tn,a2,a3]=tri2grid(p,t,u0,x,y); %制作动画 newplot; umax=max(max(u1)); umin=min(min(u1)); for j=1:8 u=tri2grid(p,t,u1(:,j),tn,a2,a3); i=find(isnan(u)); u(i)=zeros(size(i)); surf(x,y,u);caxis([umin umax]);colormap(hot) axis([-1 1 -1 1 0 1]); m(j)= getframe; end movie(m); x t x x a x t x a t ??????τ??)()(22+=

一维热传导MATLAB模拟

一维热传导MATLAB模拟 昆明学院2015 届毕业设计设计题目一维热传导问题的数值解法及其MATLAB模拟子课题题目无姓名伍有超学号201117030225所属系物理科学与技术系专业年级2011级物理学2班指导教师王荣丽2015 年 5 月一维热传导问题的数值解法及MATLAB模拟摘要介绍了利用分离变量法和有限差分法来求解一维传导问题的基本解,并对其物理意义进行了讨论。从基本解可以看出,在温度平衡过程中,杠上各点均受初始状态的影响,而且基本解也满足归一化条件,表示在热传导过程中杆的总热量保持不变。通过对一维杆热传导的分析,利用分离变量法和有限差分法对一维热传导进行求解,并用

MATLAB 数学软件来对两种方法下的热传导过程进行模拟,通过对模拟所得三维图像进行取值分析,得出分离变量法和有限差分法绘制的三维图基本相同,且均符合热传导过程中温度随时间、空间的变化规律,所以两种方法均可用来解决一维热传导过程中的温度变化问题。关键词:一维热传导;分离变量法;有限差分法;数值计算;MATLAB 模拟 1 一维热传导问题的数值解法及MATLAB 模拟Abstract In this paper, the method of variable separation and finite difference method are introduced to solve the problem of one-dimensional heat conduction problems, and the physical significance of numerical methods for heat conduction problems are discussed. From the basic solution, we can see the temperature on the bar are affected by the initial state during the process of temperature balance, and basic solution

利用matlab程序解决热传导问题

哈佛大学能源与环境学院 课程作业报告 作业名称:传热学大作业——利用matlab程序解决热传导问题 院系:能源与环境学院 专业:建筑环境与设备工程 学号: 姓名:盖茨比 2015年6月8日

一、题目及要求 1.原始题目及要求 2.各节点的离散化的代数方程 3.源程序 4.不同初值时的收敛快慢 5.上下边界的热流量(λ=1W/(m℃)) 6.计算结果的等温线图 7.计算小结 题目:已知条件如下图所示: 二、各节点的离散化的代数方程 各温度节点的代数方程 ta=(300+b+e)/4 ; tb=(200+a+c+f)/4; tc=(200+b+d+g)/4; td=(2*c+200+h)/4 te=(100+a+f+i)/4; tf=(b+e+g+j)/4; tg=(c+f+h+k)/4 ; th=(2*g+d+l)/4 ti=(100+e+m+j)/4; tj=(f+i+k+n)/4; tk=(g+j+l+o)/4; tl=(2*k+h+q)/4

tm=(2*i+300+n)/24; tn=(2*j+m+p+200)/24; to=(2*k+p+n+200)/24; tp=(l+o+100)/12 三、源程序 【G-S迭代程序】 【方法一】 函数文件为: function [y,n]=gauseidel(A,b,x0,eps) D=diag(diag(A)); L=-tril(A,-1); U=-triu(A,1); G=(D-L)\U; f=(D-L)\b; y=G*x0+f; n=1; while norm(y-x0)>=eps x0=y; y=G*x0+f; n=n+1; end 命令文件为: A=[4,-1,0,0,-1,0,0,0,0,0,0,0,0,0,0,0; -1,4,-1,0,0,-1,0,0,0,0,0,0,0,0,0,0; 0,-1,4,-1,0,0,-1,0,0,0,0,0,0,0,0,0;

有限差分法解偏微分方程

有限差分法解偏微分方程综述 绪论 有限元方法最早应用于结构力学,后来随着计算机的发展慢慢用于流体力学的数值模拟。在有限元方法中,把计算域离散剖分为有限个互不重叠且相互连接的单元,在每个单元内选择基函数,用单元基函数的线形组合来逼近单元中的真解,整个计算域上总体的基函数可以看为由每个单元基函数组成的,则整个计算域内的解可以看作是由所有单元上的近似解构成。 有限差分方法(FDM)是计算机数值模拟最早采用的方法,至今仍被广泛运用。该方法将求解域划分为差分网格,用有限个网格节点代替连续的求解域。有限差分法以Taylor 级数展开等方法,把控制方程中的导数用网格节点上的函数值的差商代替进行离散,从而建立以网格节点上的值为未知数的代数方程组。该方法是一种直接将微分问题变为代数问题的近似数值解法,数学概念直观,表达简单,是发展较早且比较成熟的数值方法。 对于有限差分格式,从格式的精度来划分,有一阶格式、二阶格式和高阶格式。 从差分的空间形式来考虑,可分为中心格式和逆风格式。 考虑时间因子的影响,差分格式还可以分为显格式、隐格式、显隐交替格式等。 目前常见的差分格式,主要是上述几种形式的组合,不同的组合构成不同的差分格式。差分方法主要适用于有结构网格,网格的步长一般根据实际地形的情况和柯朗稳定条件来决定。构造差分的方法有多种形式, 目前主要采用的是泰勒级数展开方法。其基本的差分表达式主要有三种形式:一阶向前差分、一阶向后差分、一阶中心差分和二阶中心差分等,其中前两种格式为一阶计算精度,后两种格式为二阶计算精度。通过对时间和空间这几种不同差分格式的组合,可以组合成不同的差分计算格式。 有限元方法的基础是变分原理和加权余量法,其基本求解思想是把计算域划分为有限个互不重叠的单元,在每个单元内,选择一些合适的节点作为求解函数的插值点,将微分方程中的变量改写成由各变量或其导数的节点值与所选用的插值函数组成的线性表达式,借助于变分原理或加权余量法,将微分方程离散求解。采用不同的权函数和插值函数形式,便构成不同的有限元方法。 有限差分法求解偏微分方程 在采用数值计算方法求解偏微分方程时,若将每一处导数由有限差分近似公式替代,从而把求解偏微分方程的问题转换成求解代数方程的问题,即所谓的有限差分法。有限差分法求解偏微分方程的步骤如下: 1、区域离散化,即把所给偏微分方程的求解区域细分成由有限个格点组成的网格; 2、近似替代,即采用有限差分公式替代每一个格点的导数; 3、逼近求解。换而言之,这一过程可以看作是用一个插值多项式及其微分来代替偏微分方程的解的过程 有限差分法的应用 抛物型方程的差分方法 1. 简单差分法

matlab求解热传导实例(可编辑修改word版)

matlab 求解热传导问题的几个例子1.金属板导热问题 解: 2.M atlab 自带例子: [p,e,t]=initmesh('squareg'); [p,e,t]=refinemesh('squareg',p,e,t); u0=zeros(size(p,2),1); ix=find(sqrt(p(1,:).^2+p(2,:).^2)<0.4); u0(ix)=ones(size(ix)); tlist=linspace(0,0.1,20); u1=parabolic(u0,tlist,'squareb1',p,e,t,1,0,1,1); pdeplot(p,e,t,'xydata',u1(:,20),'mesh','off','colormap','hot'); [p,e,t]=initmesh('crackg'); u=parabolic(0,0:0.5:5,'crackb',p,e,t,1,0,0,1); pdeplot(p,e,t,'xydata',u(:,11),'mesh','off','colormap','hot');

3.热传导问题的动画程序: clc,close all,clear all; %求解在正方形区域上非连续初始条件的、具有热源的典型热传导方程%du/dt-div(grad(u))=1 %定义问题 g='squareg';%描述正方形的文件名squareg 赋予符号变量g b='squareb1';%squareb1 是正方形边界为1 的边界条件文件名 c=1;a=0;f=1;d=1; %初始化网格 [p,e,t]=initmesh(g); %初始条件:半径为0.4 的圆内部取1,外部取0 u0=zeros(size(p,2),1); ix=find(sqrt(p(1,:).^2+p(2,:).^2)<0.4); u0(ix)=ones(size(ix)); %在时间段0:0.1 内取20 个点求解 nframes=20; tlist=linspace(0,0.1,nframes); %解抛物型方程 u1=parabolic(u0,tlist,b,p,e,t,c,a,f,d); %为提高绘图速度,内插值成矩形网格 x=linspace(-1,1,31);y=x; [unused,tn,a2,a3]=tri2grid(p,t,u0,x,y); % 制作动画 newplot; umax=max(max(u1)); umin=min(min(u1)); for j=1:nframes u=tri2grid(p,t,u1(:,j),tn,a2,a3); i=find(isnan(u)); u(i)=zeros(size(i)); surf(x,y,u);caxis([umin umax]);colormap(cool) axis([-1 1 -1 1 0 1]); m(j)= getframe; end movie(m); movie2avi(m,'热传导','quality',100,'fps',4); echo off 若需要求解偏微分方程组,可用pdepe 函数。

抛物型方程有限差分法

抛物型方程有限差分法 1. 简单差分法 考虑一维模型热传导方程 (1.1) )(22x f x u a t u +??=??,T t ≤<0 其中a 为常数。)(x f 是给定的连续函数。(1.1)的定解问题分两类: 第一,初值问题(Cauchy 问题):求足够光滑的函数()t x u ,,满足方程(1.1)和初始条件: (1.2) ()()x x u ?=0,, ∞<<∞-x 第二,初边值问题(也称混合问题):求足够光滑的函数()t x u ,,满足方程(1.1)和初始条件: ()13.1 ()()x x u ?=0,, l x l <<- 及边值条件 ()23.1 ()()0,,0==t l u t u , T t ≤≤0 假定()x f 和()x ?在相应的区域光滑,并且于()0,0,()0,l 两点满足相容条件,则上述问题有唯一的充分光滑的解。 现在考虑边值问题(1.1),(1.3)的差分逼近 取 N l h = 为空间步长,M T =τ为时间步长,其中N ,M 是自然数, jh x x j ==, ()N j ,,1,0 =; τk y y k ==, ()M k ,,1,0 = 将矩形域G {}T t l x ≤≤≤≤=0;0分割成矩形网格。其中 ()j i y x ,表示网格节点; h G 表示网格内点(位于开矩形G 中的网格节点)的集合; h G 表示位于闭矩形G 中的网格节点的集合; h Γ表示h G -h G 网格边界点的集合。 k j u 表示定义在网点()k i t x ,处的待求近似解,N j ≤≤0,M k ≤≤0。

注意到在节点()k i t x ,处的微商和差商之间的下列关系((,)k j k j u u x t t t ???? ≡ ?????) : 可得到以下几种最简差分格式 (一) 向前差分格式 ()24.1 ()j j j x u ??==0, k u 0=k N u =0 其中1,,1,0-=N j ,1,,1,0-=M k 。取2h a r τ = 为网比,则进一步有 ()14.1' 1+k j u =k j ru 1++()r 21-k j u +k j ru 1-+j f τ 此差分格式是按层计算:首先,令0=k ,得到 1j u =01+j ru +()r 21-0j u +0 1-j ru +j f τ 于是,利用初值() j j j x u ??==0和边值k u 0=k N u =0,可算出第一层的1 j u , 1,,1,0-=N j 。再由()14.1'取1=k ,可利用1j u 和k u 0=k N u =0算出2j u , 1,,1,0-=N j 。如此下去,即可逐层算出所有k j u (1,,1,0-=N j , 1,,1,0-=M k ) 。 由于第()1+k 层值可以通过第()k 层值直接得到,如此的格式称为显格式。并 视k j u 为()k j t x u ,的近似值。 若记 () T k N k k k u u u 1 21,,,-= u ,()()()()T N x x x 121,,,-=???? ,()()()()T N x f x f x f 121,,,-=τττ f 则显格式()14.1' 可写成向量形式 其中 若记 那末截断误差 (1.5) ()=u R k j () ()[]k j k j h Lu t x u L -,1=()ττO t x t u r k j +??? ? ??????? ??--)~,~(2112122=()2 h O +τ。 其中(,)j k x t 是矩形11+-<

(完整word版)matlab求解热传导实例

matlab求解热传导问题的几个例子1.金属板导热问题 解: 2.Matlab自带例子: [p,e,t]=initmesh('crackg'); u=parabolic(0,0:0.5:5,'crackb',p,e,t,1,0,0,1); pdeplot(p,e,t,'xydata',u(:,11),'mesh','off','colormap','hot'); [p,e,t]=initmesh('squareg'); [p,e,t]=refinemesh('squareg',p,e,t); u0=zeros(size(p,2),1); ix=find(sqrt(p(1,:).^2+p(2,:).^2)<0.4); u0(ix)=ones(size(ix)); tlist=linspace(0,0.1,20); u1=parabolic(u0,tlist,'squareb1',p,e,t,1,0,1,1); pdeplot(p,e,t,'xydata',u1(:,20),'mesh','off','colormap','hot');

3.热传导问题的动画程序: 若需要求解偏微分方程组,可用pdepe函数。

4.非均质板壁的一维不稳定导热过程:可用parabolic函数求解,该函数的说明如下: 类比可得系数c=1,a=0,f=0,d=1.计算参考程序如下: [p,e,t]=initmesh('squareg'); [p,e,t]=refinemesh('squareg',p,e,t); u0=zeros(size(p,2),1); ix=find(sqrt(p(1,:).^2+p(2,:).^2)<0.8); u0(ix)=ones(size(ix)); tlist=linspace(0,0.1,20); u1=parabolic(u0,tlist,'squareb1',p,e,t,1,0,0,1); pdeplot(p,e,t,'xydata',u1(:,8),'mesh','off','colormap','hot'); x=linspace(-1,1,31);y=x; [unused,tn,a2,a3]=tri2grid(p,t,u0,x,y); %制作动画 newplot; umax=max(max(u1)); umin=min(min(u1)); for j=1:8 u=tri2grid(p,t,u1(:,j),tn,a2,a3); i=find(isnan(u)); u(i)=zeros(size(i)); surf(x,y,u);caxis([umin umax]);colormap(hot) axis([-1 1 -1 1 0 1]); m(j)= getframe; end movie(m); x t x x a x t x a t ? ? ? ? ? ? τ ? ?) ( ) ( 2 2 + =

相关文档
相关文档 最新文档