(偏)微分方程一類边值问题的数值求解(附matlab程序).doc

(偏)微分方程一類边值问题的数值求解(附matlab程序).doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
(偏)微分方程一類边值问题的数值求解(附matlab程序)

(偏)微分方程一类边值问题的数值求解 本文介绍了椭圆型(偏)微分方程一类边值问题的数值求解程序(笔者自编)及其使用方法。程序基于差分原理,将连续的(偏)微分方程在节点上离散化,最终化为线性代数方程组。对于原理方面的问题很多微分方程数值解的参考书中都有详尽的描述,但一般缺少具体的实现程序。笔者认为,对这类数值方法是否理解并能运用的关键之一还是在于是否能写出用于解决问题的程序。理论基础固然必不可少,程序确往往是我们解决问题的敲门砖。 一维椭圆型方程可表示如下: 其中L表示微分算子,很明显这是一个线性算子。这里要求p,q大于零是为了保证最终得到的线性方程组有唯一的非零解,但事实上不满足这个条件可能也是有解的,这涉及到微分方程解的存在性也确定性问题,读者若有兴趣可参考相关书籍。更具体的,我们可以举出一个一维椭圆型方程的例子来: 例(1): 即: 利用文中提及的程序,可以将以上问题表述为: syms x %定义符号变量x p=@(x) 1; r=@(x) x.^2; q=@(x) exp(x); f=@(x) 10*cos(x); Odbvp(p,r,q,f,1,3,1,3); 哈哈,一条非常漂亮的曲线。 若不满足p,q0,我们也举一例: 例(2) syms x p=@(x) 10*cos(x); r=@(x) x.^2; q=@(x) 10*sin(x); f=@(x) 10*cos(x); Odbvp(p,r,q,f,1,3,1,3) 可以发现,程序仍能求解,但结果的光滑性不好。这可能与方程本身的刚性有关,也可能和程序所适用的范围有关。事实上,在求解线性方程组时用到了matlab中的反除原理(A\b),这个方法本质上是基于最小二乘原理的拟合方法,因此也可以用来求解线性方程组(即便方程是矛盾的,奇异的)。因此,若用上笔者所给的程序计算,总是能算出一个结果,但结果的正确性与合理性要依靠使用者对问题的判断,在满足p,q0的前提下,解是没有问题的。 更进一步的,对于二维椭圆型方程可表示如下: 二维边值的一类边界条件又可根据边界的形状化分为多个类型,为简单起见此处介绍矩形边界一类边值问题的求解。如边界固定的混凝土板受均布荷载作用时的微分方程为: 例(3) clc ; clear; syms x y p=@(x,y) 1; q=@(x,y) 0; f=@(x,y) -0.3; BF=@(x,y) 0; Pdbvp(p,q,f,-3,3,-3,3,BF,40,40) ; 计算所得板各点挠度如下图: 再看一个复杂点的问题,二维问题的求解相对较难,但结果往往非常有趣。我们可以得到一些非常有意思的图像。在看到一个方程时,它只是一段数学表达式,它一般有明确的物理意义,但对于我们来说它始终如黑匣子一般,大多时候我们是不知其庐山真面目的。笔者常常有一种渴望,渴望看看它们的真实样子,,这也正是促使笔者做这个工作的原因之一,如: 例(4) clc ; clear; syms x y p=@(x,y) abs(sin(x)+exp(y)*0.002); q=@(x,y) y.^2-x.^2; f=@(x,y) -sin(x)+cos(x); BF=@(x,y) 0; Pdbvp(p,q,f,-3,3,-3,3,BF,40,40) ; 又一张非常漂亮的曲面! 上述计算程序的专用性非常强,使问题的解决更加简洁,往往只需要几行程序就能解决这类边值问题,使用起来直观易懂,非常适于初学者使用。当然,专用性强就必然导致通用性差,上述椭圆型方程只是众多微分方程中的一个非常小的部分,而所使用的差分方法也是精度较低的一种,对上述范围以外的问题是无能为力的。 由于笔者偷懒,对程序中产生的稀疏矩阵未加处理,这对于求解是不利的。在节点划分增加时,如若不处理稀疏矩阵求解可能根本进行不下去。对于大规模的线性方程组,反除法也是不适用的,迭代法、共轭梯度法往往更加高效。 笔者写这个也是突然兴起,对这类问题进行了一个小的尝试,问题不少当然趣味也不少,只希望对大家有一定的帮助~ 附程序 一维: function [u,xx]=Odbvp(p,r,q,f,a,b,alpha,beta,n) %% Directory %Ordinary differential problem based on the first boundray condition(can be used one or second order odbvp problem). %p(x),r(x),q(x),f(x) are functions based on the practical problems. %[a,b]is the interval which need t

文档评论(0)

fv45ffsjjI + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档