MATLAB算法程序-偏微分方程的数值解法.pdf

所需积分/C币:11 2019-10-16 09:11:05 1.25MB PDF
收藏 收藏
举报

MATLAB算法程序-偏微分方程的数值解法MATLAB算法程序-偏微分方程的数值解法
酒置A百L修语言常用算法程序集 function u- pefllip5(nx minx, maxx, ny, miny, maxy 8x方向的节点数:nx 告求解区间ⅹ的左端:minx 求解区问x的右端:maxx 各y方向的节点数:ny 告求解区间y的左端:miny 求解区间y的右端:max 3求解区间上的数值解:u format long i hx =(maxx -minx)/(nx-1); (maxy-niny)/(ny-1 u0 zeros(nx, ny )i for j=i: ny 0(, 1)= EllIni2Uxl(minx, mi. ny+(j-1)*hy u0(j, nx)= EllIni2Uxr(maxx, miny+(]-1)*hy )i for i=l: Iix u0(1,3)=E1iIri2Uy.(mi nx+(j-1)*hx, miny) u0(ny,)=E11Ini2Uyx(minx+(j-1)*hx,maxy);名边界条件的离散 4+eyc{(nx-2)*(ny-2),(nx-2)*(ny-2) b zeros((nx 2)*(ny-2),1 for f mod (i nx-2)==1 3注意离边界点最近节点的离散方式 fi=-1 A(1,2 1,nx-1)=1 0(1,2) esS∈ 2)+1 A(i;i+1)=1 2)=1 b(i) u0(my-1,1) 0(ny 2) 2 (i;+rx-2 b(i) u0(f1oor(i/(nx-2))+21); and end C⊥se i f mca(i, nx-2) 告注意离边界点最近节点的离散方式 i王 =D-2 A(1;i-1) b (i) u0(1 else x-2) 2)=1 474p 第章偏微分方程的数值解法 uo(ny: 1, nx) C(ny, nx 1 1se 1)=1 A(l, l+nx-2 b(i) uo(floor(i/(nx-2))+1, nx) enc end else =1; A(ii+nx-2)=1; (1) 0(1,1+1) lse iti>(ny-3)*(nx-2)k&i<(ny-2)*(nx-2 1 A(ii-nx b(1 uo(ny, moa(ir(nx-2))+1) 名其余节点的离散方式 1 A(1,i+1) 1 1,]+门x-2)=1 A(i, i 2)=1 d end end format short 例161五点差分格式求解拉普拉斯方程边值问题应用实例。用五点差分格式求解 下面拉普拉斯方程的边值问题 00≤x≤2,0≤y≤2 0x20 l(O,y)=0 2,y)=y(2 u(x,O)=0 (x,2) 其中空间步长都取004。 解:先建立4个M文件,以建立边界条件 function uxy EI1Ini2Uxl(x t Lu ion uxy= EllIni2Uxr(x,y) W属了LAB语言常用算法程序集 format long; Ixy=y*(2-y) funct ion uxy EllIni2UY1(x,Y) format long function ux El1.Ini2Uyr(x, y) format long if x< 1 else en 然后在 MATLAB窗口输入下列命令 peE11ip5(51,0,2,51,0,2) 结果如图162所示 图162例16-1中方程在求解域卜的场函数值图 在图162中,不同的颜色代表不同的u值,如果网格更密的话,即采取更多的节点进 行计算的话,会得到更加光滑的曲面。 1612工字型差分格式 工字型差分格式的形式如下所示 十L 上式涉及的格点如图163所示 图16-3工字型差分格式的格点图 476Dp 第16章偏微分方程的数值解法 上图是将方程求解域用格点离散后取的相邻五个格点;这五个格点处的函数值满足差 分格式M+1,+1+u1,11+2-1,)+1++,-1=4;,; 工字型差分格式用来求下列边值问题 u(x1,y)=81(x),w(x2,y)=g2(x) (x,y)=f1(y),(x,yz)=f2(y) x≤x≤x,y≤y≤y2 其中g1(x)和g2(x)是关于x的函数,f(y)和f2(y)是关于y的函数。 用工字型差分格式求解拉普拉斯方程的算法过程介绍如下。 ④对求解区域进行分割:将xmn≤x≤xmx范围内的x轴等分为NX段,将 ymn≤y≤ymax范围内的y轴等分为Ny段 将边界条件离散到格点上 用工字型差分格式建立求解方程,求出各个格点的函数值。 泉要保证太向的网梯长相统动可使相主窗的公糖丽 在 MATLAB中编程实现的工字型差分格式的函数为:peEi5m 功能:用工字型差分格式解拉普拉斯方程 调用格式:u= peLlio5m(nx, Imnx,maxx,ny,niny,maxy) 其中,nx:x方向的节点数; minx:求解区间x的左端; maxx:求解区间x的右端; ny:y方向的节点数 minx:求解区间y的左端 maxx:求解区间y的右端 u:求解区间上的数值解。 工字型差分格式求解拉普拉斯方程边值问题的 MATLAB程序代码如下所示 function u peEllip5m(nx,minx, maxx, ny, mi. ny, maxy 号x方向的节点数:mx 号求解区间x的左端:minx 告求解区间ⅹ的右端:maxx 号y方向的节点数:ry 各求解区间y的左端:miny 名求解区间y的右端:maxy 各求解区间上的数值解:u format long hx s(maxx-minx)/(nx-1 Ⅳy)/(ny-1) 嗫√√477 LAB语言常用算法程序集 zer○s(nx,ny); u0(j, 1)= EllIni2Uxl(minx, mi.ny+(j-1)*hy u0(:1nx) EllIni2Uxr(maxx, miny+(3-1)*hy end for j=l: nx uC(1,j)=E11ni2Uy⊥(min×+(j-1}*x,miny); 0(ny,j)=E]1ni20yr(minx+(-1)*hx,maxy);影边界条件的离散 end A 大eye((nx-2)k(ny-2),(nx-2)*(my-2)); b= zeros((nx-2)*(ny fori=1:(nx-2)*(ny-2 i f mod(i,n×2)= 注意离边界点最近节点的离散方式 fi=-1 A(1,nx)=1 b(1 u0(1,1) 0(3,1) 0(1,3 e⊥se rYy-3)*( 入〈 x+1)=1 0(ny;1 (ny,3)-u0(my2,1) A(i A(i;立+nx-1 b(1) u0(f1oor(i/(nx-2))+1,1)…10(f1oor(i/(nx-2))+3:1) end else if mod(i, nx-2)==( 注意离边界点最近节点的离散方式 if A 0(1,nx-2 0(1,nx)-10{3,nx); )大(nx-2) A 1 b( i 110(ny, nx)-u0(ny, nx-2 nx) else (1 x+1 A(ii+nx-3) u0(floor(i/(nx-2)),nx u0(f1or(i/(nx-2))+2,nx); end 已 if i>1 &s i< nx A(1r1 0(1 ls if i>(ny i<(ny-2)*(nx-2) A(i,立-nx+3)=1 A(i,1-nx+1 478≯脚 第6章偏微分方程的数值解法 u0(ny, mod(i,(nx-2)))-u0(ny, mod 2)}+2) Ise A(i,i-1×+3)=1 其余节点的离散方式 A(ii+nx-1 1 2( on end 1 for主=1:〈ny-2) for j=l:(nx-2) u1((i-1 2)+j end format short 例162工字型差分格式求解拉普拉斯方程边值问题应用实例用工字型差分格式 求解下面拉普拉斯方程的边值问题 00≤x≤2,0≤y≤2 dx u(0.y)=0,(2,y)=y(2-y) u(x,O)=0 x<1 (x,2) 其中空间步长都取004。 解:先建立4个M文件,以建立边界条件 function uxy= EliIni2Uxl(x,y h format long; F1.1Ini2Uxr(x, y) format l y*{2-y) function uxy EllT.ni.2UYl(x,y) format long function uxy EllIni2Uy format long if 白1se uxy 嗡司√479 MATLAB语言常用算法程序集 然后在 MATLAB窗口输入下列命令 peE1lip5(51,0,2,51,0,2); 结果如图16-4所示 0.4 B 2 图164例16-2中方程在求解域上的场函数值图 用工字型差分格式算出的结果和五点差分格式得到的结果差不多,但是前者在角点上 算得不太好,这是格式自身的缺点。 162|双曲线偏微分方程 对流方程是最简单的双曲线偏微分方程,下面以一维、二维对流方程为例,讲述对流 方程的数值解法。 对流方程研究得都比较透彻,而且其差分格式是解决各种复杂双曲线偏微分方程的基 础。 1621—维对流方程 维对流方程的形式如下所示 +a=0,x∈(-,∞,t>0,a为常数 如果给定初始条件 0)=U(x),x∈(-∞,) 则一维对流方程的通解为 (x,t)=U(x-a),x∈(∞,o),t>0 维对流方程形式简单,其差分格式非常多,常见的有迎风格式、拉克斯-弗里德里希 斯格式、拉克斯温德洛夫格式、比姆-沃明格式、 Richtmyer多步格式、拉克斯-温德洛夫 多步格式和 MacCormack多步格式,下面分别进行讲述 480 第1章偏微分方程的数值解法 16.2.1.1迎风格式 迎风格式的形式如下所示 (u)-2-1)=0a>0 h +(+1-t)=0a<0 其中τ为时间步长,h为空间步长 以a>0为例,当用迎风格式求解对流方程时,在计算求解区间的左端点处的下一个时 刻的函数值时,要用到左端点的左边一个节点的值,因此必须向左延拓一个节点,才能计 算下一个时刻的左端点的函数值,如此得出,M个时间步的迎风格式,应向左延拓M 节点函数值,这点在程序中可以看出 在 MATLAB中编程实现的迎风格式的函数为: pehypbYF 功能:用迎风格式解对流方程 调用格式:u= peHypbYF(a,dt,n,minx,maxx, 其中,a:方程中的常数 dt:时间步长 n:空间节点个数 minx:求解区间的左端 maxx:求解区间的右端 M:时间步的个数 u:求解区间上的数值解 迎风格式的 MATLAB程序代码如下所示 function u= pellypbyh'(a 各方程中的常数:a 号时间步长:dt 空问节点个数 各求解区间的左端:minx 各求解区间的右端:maxx 各时间步的个数 各求解区问上的数值解:u 上 ormat maxx -miri f f 1:(n+M) u0(j)= Init(minx+(j-M-1)h);向左延拓M个节点的函数值 1 for j=1:(n+M) u0(j)=Init(mi 了-1)kh) 各向左延拓M个节点的函数值 嚼↓481

...展开详情
试读 46P MATLAB算法程序-偏微分方程的数值解法.pdf
立即下载 低至0.43元/次 身份认证VIP会员低至7折
    抢沙发
    一个资源只可评论一次,评论内容不能少于5个字
    img
    wasw123
    • 技术圈认证

      用户完成年度认证,即可获得

    关注 私信 TA的资源

    上传资源赚积分,得勋章
    最新推荐
    MATLAB算法程序-偏微分方程的数值解法.pdf 11积分/C币 立即下载
    1/46
    MATLAB算法程序-偏微分方程的数值解法.pdf第1页
    MATLAB算法程序-偏微分方程的数值解法.pdf第2页
    MATLAB算法程序-偏微分方程的数值解法.pdf第3页
    MATLAB算法程序-偏微分方程的数值解法.pdf第4页
    MATLAB算法程序-偏微分方程的数值解法.pdf第5页
    MATLAB算法程序-偏微分方程的数值解法.pdf第6页
    MATLAB算法程序-偏微分方程的数值解法.pdf第7页
    MATLAB算法程序-偏微分方程的数值解法.pdf第8页
    MATLAB算法程序-偏微分方程的数值解法.pdf第9页
    MATLAB算法程序-偏微分方程的数值解法.pdf第10页
    MATLAB算法程序-偏微分方程的数值解法.pdf第11页
    MATLAB算法程序-偏微分方程的数值解法.pdf第12页
    MATLAB算法程序-偏微分方程的数值解法.pdf第13页
    MATLAB算法程序-偏微分方程的数值解法.pdf第14页

    试读已结束,剩余32页未读...

    11积分/C币 立即下载 >