第5章 两点边值问题求解方法.
- 格式:ppt
- 大小:2.24 MB
- 文档页数:42
课程设计(论文)任务书数学与计算科学学院学院信息与计算科学专业班课程名称科学仿真实验五题目直接法求解两点边值问题(一)任务起止日期:2014 年 6 月23 日~2014年7月 6 日学生姓名学号指导教师教研室主任年月日审查课程设计(论文)任务注:1. 此任务书由指导教师填写。
如不够填写,可另加页。
2. 此任务书最迟必须在课程设计(论文)开始前下达给学生。
学生送交全部材料日期学生(签名)指导教师验收(签名)直接法求解两点边值问题(二)摘要线性方程组的数值解法可以分为直接法和迭代法两类。
所谓直接法,就是不考虑舍入误差,通过有限步骤四则运算即能求得线性方程组准确解的方法。
如克莱姆法则,但通过第一章的分析,我们知道用克莱姆法则来求解线性代数方程组并不实用,因而寻求线性方程组的快速而有效的解法是十分重要的。
本章讨论计算机上常用而有效的直接解法――高斯消去法和矩阵的三角分解等问题。
为方便计,设所讨论的线性方程组的系数行列式不等于零。
高斯消去法是解线性方程组最常用的方法之一,它的基本思想是通过逐步消元,把方程组化为系数矩阵为三角形矩阵的同解方程组,然后用回代法解此三角形方程组得原方程组的解。
关键词:线性方程组;直接解法;高斯消去法DIRECT METHOD SOLVING TWO-POINT BOUNDARY VALUE PROBLEMS(2)ABSTRACTNumerical algorithm of linear equations can be divided into two categories, direct method and iterative method. The so-called direct method, is not considered rounding error, through limited steps arithmetic which can obtain the accurate solution of linear equations method. Such as cramer's rule, but through the analysis of the first chapter, we know that cramer's rule is used to solve the linear algebraic equations is not practical, thus seeking quick and effective solutions of systems of linear equations solution is very important.This chapter discuss computer commonly used and effective direct solution - gaussian elimination and triangle decomposition of matrices. For the convenience of meter, discussed the coefficient determinant of linear equations is not equal to zero.Gauss elimination method is one of the most commonly used method of solving linear equations, the basic idea is to pass a gradual elimination, to coefficient matrix of the triangular matrix equations with solutions of the equations, then by back substitution method solving the triangle equations to the solution of the original equations.Key words:linear equations; Direct method; Gaussian elimination目录1问题的提出 (1)2 理论基础 (1)2.1 高斯消去法 (2)2.2 列主元消去法 (5)2.3 矩阵的三角分解法 (6)2.3.1 算法介绍 (6)2.3.2 定理结论 (7)2.3.3 计算公式 (9)2.4解三对角方程组的追赶法 (10)3 问题的求解 (12)3.1顺序消去法 (12)3.2 列主元消去法 (13)3.3Doolittle分解法 (14)3.4 追赶法 (15)4 计算结果 (16)参考文献 (20)附录 (21)1 问题的提出考虑两点边值问题:()()⎪⎩⎪⎨⎧==<<=+.11,00,10,22y y a a dx dy dx y d ε 容易知道它的精确解为:.1111ax e e a y x +⎪⎪⎭⎫ ⎝⎛---=--εε为了把微分方程离散,把[]1,0区间n 等分,令nh 1=,ih x i =,,1,,2,1-=n i 得到差分方程:,21211a h y y hy y y ii i i i =-++-++-ε简化为:()(),2211ah y y h y h i i i =++-+-+εεε从而离散后得到的线性方程组的系数矩阵为:()()()()⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡+-++-++-++-=h h h h h h h A εεεεεεεεεε2222对1=ε,21=a ,100=n ,分别用顺序消去法、列主元消去法、Doolittle 分解法和追赶法求解线性方程组,然后比较与精确解的误差,对结果进行分析。
两点边值问题方程两点边值问题是一种求解微分方程的方法,它涉及到两个边界条件。
假设我们有一个一阶常微分方程dy/dx = f(x,y),我们需要找到满足两个边界条件y(a) = alpha 和y(b) = beta 的解。
两点边值问题的解法通常包括以下步骤:1. 定义一个初始猜测值y0(x)。
2. 使用数值方法(如欧拉法、龙格-库塔法等)求解微分方程,得到新的解y1(x)。
3. 检查新的解是否满足边界条件。
如果满足,则找到了解;否则,返回步骤2,使用新的解作为初始猜测值继续求解。
下面是一个使用Python实现两点边值问题的示例代码:```pythonimport numpy as npfrom scipy.integrate import odeint# 定义微分方程dy/dx = f(x,y)def f(x, y):return x * y - 1# 定义两个边界条件y(a) = alpha 和y(b) = betaa, b, alpha, beta = 0, 1, 1, 0# 定义初始猜测值y0(x)y0 = np.array([0.5, 0.5])# 使用数值方法求解微分方程def solve_two_point_boundary_value_problem(f, a, b, alpha, beta, y0, tol=1e-6, max_iter=100): for i in range(max_iter):y = odeint(f, y0, [a, b])if np.allclose(y[:1], alpha) and np.allclose(y[-1], beta):return y[1:-1]y0 = y[1:-1]raise ValueError("Solution not found within the specified tolerance and maximum iterations.")# 求解两点边值问题solution = solve_two_point_boundary_value_problem(f, a, b, alpha, beta, y0)print("Solution:", solution)```在这个示例中,我们使用`odeint`函数求解微分方程,并使用`np.allclose`检查新的解是否满足边界条件。
文献综述信息与计算科学两点边值问题的有限元解法有限元方法已成为当前求解偏微分方程数值解的一个重要方法, 从数学上看, 这种方法起源于变分法, 是古典的变分法与分片多项式插值相结合的产物, 20世纪50年代初, 从事航空工程、土木结构、水利建设的工程师们开始应用和发展一种用离散模型代替连续模型的方法求解各种结构力学问题, 并且逐渐波及各个连续场领域, 1960年美国人Ray Clough教授首先给出了“有限元方法”]1[这一名称. Clough教授形象地将其描绘为:“有限元法=Rayleigh Ritz法+分片函数”, 即有限元法是Rayleigh Ritz法的一种局部化情况.不同于求解(往往是困难的)满足整个定义域边界条件的允许函数的Rayleigh Ritz法, 有限元方法将函数定义在简单几何形状(如二维问题中的三角形或任意四边形)的单元域上(分片函数), 且不考虑整个定义域的复杂边界条件, 这是有限元法优于其他近似方法的原因之一.对于不同物理性质和数学模型的问题, 有限元求解法的基本步骤是相同的, 只是具体公式推导和运算求解不同.有限元求解问题的基本步骤通常为:首先讨论问题的求解域, 根据实际问题近似确定求解域的物理性质和几何区域.并求解域离散化, 将求解域近似为具有不同有限大小和形状且彼此相连的有限个单元组成的离散域, 习惯上称为有限元网络划分; 然后确定状态变量及控制方法:一个具体的物理问题通常可以用一组包含问题状态变量边界条件的微分方程式表示, 为适合有限元求解, 通常将微分方程化为等价的泛函形式;接下来进行单元推导:对单元构造一个适合的近似解, 即推导有限单元的列式, 其中包括选择合理的单元坐标系, 建立单元试函数, 以某种方法给出单元各状态变量的离散关系, 从而形成单元矩阵.最后将单元总装形成离散域的总矩阵方程, 反映对近似求解域的离散域的要求, 即单元函数的连续性要满足一定的连续条件.并联立方程组求解, 有限元法最终导致联立方程常用的求解方法如直接法、选代法和随机法.求解结果是单元结点处状态变量的近似值.我国著名数学家冯康先生说过, 同一物理问题可以有许多不同的数学形式, 它们在数学上是等价的, 但在实践中并不等效, 从不同的数学形式可能导致不同的数值计算方法, 原问题的基本特征在离散后应尽可能得到保持. 而基于变分方法]2[的有限元方法正是利用这种思想, 把数学物理方程中存在大量存在的问题转化为与原问题等价的变分问题, 最后采用数值方法求解, 这是近现代求解微分方程的一种非常重要的方法, 有着重要的理论和实际意义.因此越来越多的数学家加入了发展有限元方法的行列, 使这种方法逐渐摆脱了工程问题的局限性, 成为一种具有严密数学基础的求解微分方程定解问题的有效方法.本文就是对两点边值问题的有限元解法进行了讨论研究, 其中运用了11篇文献. 文献[3]介绍了一些泛函分析的有关知识; 文献[4]和[5]是对有限元方法的一些基本理论作了一定的介绍,文献[6]讲解了一种解边值问题比较常用的方法--Galerkin 法; 文献[7,8,9]都介绍了偏微分方程数值解的两类主要方法, 即有限差分方法和有限元方法, 其中, 文献[9]还介绍了偏微分方程数值处理中的基本思想、有关理论、有效算法和数值例子等内容.在这些文献中, 文献[6,7,8,9]对本文的研究起到至关重要的作用,本文首先引入两点边值问题]6[⎪⎩⎪⎨⎧='=<<=+-=0)(,0)(),()(b u a u b x a x f qu dx du p dx d Lu 其中⎪⎩⎪⎨⎧≥∈>≥∈∈0)(),(0)(),()()(0min 1x q I C q p x p I C p I C x f然后参考文献[6][9], 利用变分原理以及泛函分析基本知识, 可将上述问题转化为等价的变分问题求)(1I H u E ∈, 使)(),,(),(1I H v v f v u a E ∈∀=, 其中⎪⎩⎪⎨⎧⋅=+⋅=⎰⎰b a b a vdx f v f dxquv dx dv dx du p v u a ),()(),( 参考文献[9], 将)(1I H E 的试探函数和检验函数子空间均取为h E V , 可得近似变分问题求h E h V x u ∈)(, 使h E h h h h V v v f v u a ∈∀=),,(),(再将上述问题等价的写成有限元方程的形式求∑==n j j jh x u x u 1)()(φ, 使n i f u a j j h ,,2,1),,(),(Λ==φφ其中{}n j x j ,,2,1),(Λ=φ为线性元空间h E V 的Lagrange 节点基函数. 于是,参考文献[7] 得到相应的矩阵表达形式b AU =其中⎥⎦⎤⎢⎣⎡=),(),(),(),(1111n n n n a a a a A φφφφφφφφΛΛ, ⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡=),(),(1n f f b φφM 这样, 我们就得到了两点边值问题的有限元求解方法,最后, 我们可以试着讨论具体的模型问题⎪⎩⎪⎨⎧='=<<=+''-=0)1(,0)0(10,2sin 242u u x x u u Lu ππ, 我们可以利用中矩形近似计算积分, 代入上述问题的有限元方程, 可以较为精确求出上述问题的数值解.结合文献[10]、[11]提供的丰富的理论知识, 我们可以试着探讨更广泛的一些问题的有限元方法求解.参考文献[1] R.A.Adams.Sobolev spaces, Academic Press,New York,1975.[2] 冯康. 基于变分原理的差分格式. 应用数学与计算数学, 1965, 2(4):237-261.[3] 王声望, 郑维行等编著. 实变函数与泛函分析概要 [M]. 北京: 北京大学出版社, 1987.[4] 王烈衡, 许学军编著. 有限元方法的数学基础 [M]. 北京: 科学出版社, 2004.[5] 李开泰, 黄庆怀编著. 有限元方法及其应用 [M]. 北京: 科学出版社, 2006[6] 李荣华. 偏微分方程数值解法[M] . 北京: 高等教育出版社, 2005[7] 舒适. 偏微分方程典型离散化方法的基本理论与算法分析. 内部讲义, 2007, 5-68[8] 李荣华. 边值问题的Galerkin 法[M] . 北京: 科学出版社, 2005[9] 陈传淼, 黄云清. 有限元高精度理论. 湖南科技出版社, 1995[10] A. Bowyer. Computing Dirichlet Tessellations. Computer Journal, 1981, 24(2):162-166[11] N.N.Yan, Superconvergence analysis and a posteriori error estimation in finite elementmethods, Science Press Publications, Beijing, 2008.。
一、两点边值问题的直接差分法和积分插值法ⅰ. 直接差分化②区域剖分: 首先取个1+N 节点:b x x x x a N i =<<<<<= 10,将区间],[b a I =分成N 个小区间:.,,2,1,:1N i x x x I i i i =≤≤-于是得到区间I 的一个网格剖分。
记1--=i i i x x h ,这里取网格均匀时,即),,2,1(N i h h i ==取相邻节点i i x x ,1-的中点),,2,1)((12121N i x x x i i i =+=--③离散格式:用差商代替微商,将方程(1.1)在内点i x 离散化。
对充分光滑的u ,由Taylor 展式有)(]d d [2]d d [)()(2221111h O xuh h x u h h x u x u i i i i i i i i +-+=+-++-+, (1.2)=++=-----)(]d d [24]d d [)()()(33321212121h O xu p h x u p h x u x u x p i i i i i i i)(]d d [24]d d [333221h O xu p h x up i i i ++- (1.3) )(]d d [24]d d [)()()(333211111h O xu p h x u p h x u x u x p i i i i i i i ++=-+++++,(1.4)由(1.4)减(1.3),并除以21ii h h ++,得 ⎥⎦⎤⎢⎣⎡---+--++++i i i i i i i i i i h x u x u x p h x u x u x p h h )()()()()()(2111111 )()d d 12d d d d 2233112121h O x u p h h x u p x u p h h iii i i i i +⎥⎦⎤⎢⎣⎡-+⎪⎪⎭⎫ ⎝⎛⎥⎦⎤⎢⎣⎡-⎥⎦⎤⎢⎣⎡+=+-++)()d d 12)d d (d d 4)d d (d d2331221h O x u p h h x u p x h h x u p x iii i ii i+⎥⎦⎤⎢⎣⎡-+⎥⎦⎤⎢⎣⎡-+⎥⎦⎤⎢⎣⎡=++. (1.5)令)(),(),(),(2121i i i i i i i i x f f x q q x r r x p p ====--,由(1.2),(1.5)知,边值问题的解)(x u 满足方程:+⎥⎦⎤⎢⎣⎡---+-≡--++++i i i i i i i i i i i h h x u x u p h x u x u p h h x u L )()()()(2)(111111 [])()()()(111u R f x u q x u x u h h r i i i i i i i i i+=+-+-++, (1.6)其中)(d d 21)d d 121)d d (d d 41)()(22233221h O x u r x u p x u p x h h u R i i i i i i +⎪⎪⎭⎫ ⎝⎛⎥⎦⎤⎢⎣⎡-⎥⎦⎤⎢⎣⎡+⎥⎦⎤⎢⎣⎡-=+(1.7)为差分算子h L 的截断误差。
盛年不重来,一日难再晨。
及时宜自勉,岁月不待人盛年不重来,一日难再晨。
及时宜自勉,岁月不待人盛年不重来,一日难再晨。
及时宜自勉,岁月不待人学生实验报告实验课程名称偏微分方程数值解 _________________开课实验室___________ 数统学院 ____________________学院数统年级2013专业班信计2班学生姓名_________ 学号________开课时间2015至2016学年第2 学期数学与统计学院制.实验内容考虑如下的初值问题:定常数。
部分。
0, b 1 , p 3,r 1,q 2 ,0 ,1,问题(1)的精确解 uxx 2e x 1 ,及p 1,r 2,q 3带入方程(1)可得f x 。
分别取并能通过计算机语言编程实现。
.实验目的通过该实验,要求学生掌握求解两点问题的有限差分法, 开课学院、实验室: 数统学院实验时间:2016年 月 日Lud du x —p x ------------ dx dxdu xdx qf x , x a, b (1)其中 p x C 1 a,b ,x ,q a,bP min 0 , q x 0 ,,是给将区间N 等分, 网点x1.在第三部分写出问题(1)和 (2)的差分格式,并给出该格式的局部截断2.根据你写出的差分格式, 编写一个有限差分法程序。
将所写程序放到第四3.给定参数a 其中将u xN 10,20,40,80,160 ,用所编写的程序计算问题 (1)和⑵。
将数值解记为5 ,i 1,...,N 1,网点处精确解记为i1,…,N 1。
然后计算相应的误差1 lN/I 2 Nilh u i U i 2及收敛阶n e: e 11,将计算结果填入 I iIn 2第五部分的表格,并对表格中的结果进行解释?4.将数值解和精确解画图显示,每种网格上的解画在一张图。
三•实验原理、方法(算法)、步骤1. 差分格式:L L .i=-1/h A 2O|](% 曲汀—):i.「)/2h+w =応=A,匕2. 局部阶段误差:n (u)=O(hA2)3. 程序clear all N=10; a=0;b=1;P=@(x) 1; r=@(x) 2; q=@(x) 3; aIpha=0;beta=1;f=@(x) (4*xA2-2)*exp(x-1);h=(b-a)/N;H=zeros(N-1,N-1);g=zeros(N-1,1);%for i=1H(i,i)=2*(p(a+(i+1/2)*h)+p(a+(i-1/2)*h))/h+2*h*q(a+i*h);max u i c 0 i Nii U iNeH(i,i+1)=-(2*p(a+(i+1/2)*h)/h-r(a+i*h));g(i)=2*h*f(a+i*h)+(2*p(a+(i-1/2)*h)/h+r(a+i*h))*alpha;endfor i=2:N-2H(i,i-1)=-(2*p(a+(i-1/2)*h)/h+r(a+i*h));H(i,i)=2*(p(a+(i+1/2)*h)+p(a+(i-1 /2)*h))/h+2*h*q(a+i*h);H(i,i+1)=-(2*p(a+(i+1/2)*h)/h-r(a+i*h));g(i)=2*h*f(a+i*h);endfor i=N-1H(i,i-1)=-(2*p(a+(i-1/2)*h)/h+r(a+i*h));H(i,i)=2*(p(a+(i+1/2)*h)+p(a+(i-1 /2)*h))/h+2*h*q(a+i*h); g(i)=2*h*f(a+i*h)+(2*p(a+(i+1 /2)*h)/h-r(a+i*h))*beta; endu=H\g;u=[alpha;u;beta];x=a:h:b;y=(x.A2).*exp(x-1);plot(x,u);hold onplot(x,y);y=y'z=y-u四•实验环境(所用软件、硬件等)及实验数据文件Matlab五•实验结果及实例分析N越大只会使绝对误差变小,方法没变,所以收敛阶一致。
常微分方程两点边值问题的差分方法说实话常微分方程两点边值问题的差分方法,我一开始也是瞎摸索。
我就知道这是个挺难搞的事儿,但我就想把它弄明白。
我最早尝试直接用我之前学过的常微分方程的一些解法,可发现对于两点边值问题完全行不通,这才意识到这个问题很特殊,需要专门的方法来对付。
那我就开始了解差分方法呗。
这个差分啊,简单来说就有点像我们数东西的时候不是一个一个数,而是隔几个数一个那样,在数学里就是把连续的函数离散化。
比如说我们有个常微分方程,在一个区间上的两点边值问题,我要做的第一步,不妨就把这个区间分成好多小份,这个小份的大小我开始还不确定选多少好呢,我就试了好几个不同的值。
我试着先在网格点上近似导数。
我最开始想当然地用了一种很简单的近似方法,就像我们估算速度的时候,直接用两个点的函数值之差除以距离嘛,但是发现这样得到的结果那叫一个惨不忍睹啊,误差大得很。
后来仔细研究才知道,要根据这个常微分方程的具体形式来更好地构造近似导数,才能减小误差。
还有在处理边界条件的时候,这个可千万不能马虎。
我一开始就没太重视边界条件,结果算出的结果也完全不对。
其实就像是盖房子必须要打好地基一样,这个边界条件对于两点边值问题就是根基,如果根基歪了,那整个房子肯定也立不住。
我后来发现了一个比较靠谱的步骤。
就是在差分的时候,对于方程中的每一项,根据泰勒公式来构建合理的差分格式。
这个就像搭积木,每个部分都要搭得准确才能让整体稳固。
我把方程中的项都按照精心设计的差分格式替换掉之后,就得到了一个代数方程组,解这个方程组就能够求出在离散点上的近似解了。
不过这里面还有个小窍门,在求解方程组的时候,我刚开始没注意方程组矩阵的性质,有时候得到的解是不准确的。
我后来发现有的矩阵如果是稀疏友好型的,那就要选择专门针对稀疏矩阵的算法来求解,这样速度又快结果又准确。
我不确定我现在的方法是不是最完美的,但就目前我做的一些练习题还有自己研究的小例子来说,这个方法已经相当好用了。
求解两点边值问题的有理插值galerkin法Galerkin法,也称作分子法,是一种用于求解两点边值问题的有理插值方法。
Galerkin法可以用来解决插值方法,拟合数据的关系,和求得自变量的取值(如拟合函数的极值)。
在本文中,将会介绍Galerkin 法如何在求解两点边值问题中发挥重要作用,并说明什么情况下Galerkin法更为有效。
一、什么是两点边值问题两点边值问题(Boundary Value Problem)是指一类特定的非线性问题,通常用来描述在一个定义域内满足现实条件下数学模型的求解/拟合过程。
大致可以分为初值问题和边值问题两类,前者是解决带有初始函数的初值问题的拟合(如求解ODE),而边值问题指的是描述定义域内间断函数满足边界条件的不等式系统(如求解PDE)。
二、Galerkin法的基本原理基于Galerkin法的变分原理,首先需要对两点边值问题的求解模型进行一定的定义和代数处理。
具体步骤如下:(1)首先根据问题及定义域内数学模型,确定一系列未知函数作为待求解变量;(2)构造一个能够捕获定义域及边界条件的函数类;(3)对函数空间进行 Galerkin正交展开,用有理函数作为基函数,通过矩阵运算把边值问题转换为矩阵有关的二次模型(要求基函数的数量大于待求解的未知函数的数量)。
(4)根据所构造出的二次模型,求解出未知函数及边界条件。
三、Galerkin法与常规插值法对比Galerkin法以有理函数作为基函数构建二次模型,从而更好地捕获定义域内的特征,更有效地描述二维数据的格式关系;而常规插值法,虽然也能够解决边值问题,但是很难实现高维数据的有效拟合,无论是精准度还是效率都很难达到Galerkin法的标准。
四、总结Galerkin法是用于求解两点边值问题的有理插值方法,它在变分原理的基础上,构造一个基于有理函数的函数空间,从而捕获边界条件及局部变化信息,更有效地拟合二维数据,并有助于求解未知函数及其边界条件。