偏微分中心差分格式实验报告(含matlab程序)
差分法求解偏微分方程MAAB
南京理工大学课程考核论文课程名称:高等数值分析论文题目:有限差分法求解偏微分方程姓名:罗晨学号:成绩:有限差分法求解偏微分方程一、主要内容1.有限差分法求解偏微分方程,偏微分方程如一般形式的一维抛物线型方程:具体求解的偏微分方程如下:2.推导五种差分格式、截断误差并分析其稳定性;3.编写MATLAB程序实现五种差分格式对偏微分方程的求解及误差分析;4.结论及完成本次实验报告的感想。
二、推导几种差分格式的过程:有限差分法(finite-differencemethods )是一种数值方法通过有限个微分方程近似求导从而寻求微分方程的近似解。
有限差分法的基本思想是把连续的定解区域用有限个离散点构成的网格来代替;把连续定解区域上的连续变量的函数用在网格上定义的离散变量函数来近似;把原方程和定解条件中的微商用差商来近似,积分用积分和来近似,于是原微分方程和定解条件就近似地代之以代数方程组,即有限差分方程组,解此方程组就可以得到原问题在离散点上的近似解。
推导差分方程的过程中需要用到的泰勒展开公式如下:()2100000000()()()()()()()......()(())1!2!!n n n f x f x f x f x f x x x x x x x o x x n +'''=+-+-++-+-(2-1)求解区域的网格划分步长参数如下:11k k k kt t x x h τ++-=⎧⎨-=⎩(2-2) 2.1古典显格式2.1.1古典显格式的推导由泰勒展开公式将(,)u x t 对时间展开得2,(,)(,)()()(())i i k i k k k uu x t u x t t t o t t t∂=+-+-∂(2-3) 当1k t t +=时有21,112,(,)(,)()()(())(,)()()i k i k i k k k k k i k i k uu x t u x t t t o t t tuu x t o tττ+++∂=+-+-∂∂=+⋅+∂(2-4)得到对时间的一阶偏导数1,(,)(,)()=()i k i k i k u x t u x t uo t ττ+-∂+∂(2-5) 由泰勒展开公式将(,)u x t 对位置展开得223,,21(,)(,)()()()()(())2!k i k i k i i k i i u uu x t u x t x x x x o x x x x∂∂=+-+-+-∂∂(2-6)当11i i x x x x +-==和时,代入式(2-6)得2231,1,1122231,1,1121(,)(,)()()()()(())2!1(,)(,)()()()()(())2!i k i k i k i i i k i i i i i k i k i k i i i k i i i iu u u x t u x t x x x x o x x x xu u u x t u x t x x x x o x x x x ++++----⎧∂∂=+-+-+-⎪⎪∂∂⎨∂∂⎪=+-+-+-⎪∂∂⎩(2-7) 因为1k k x x h +-=,代入上式得2231,,22231,,21(,)(,)()()()2!1(,)(,)()()()2!i k i k i k i k i k i k i k i ku u u x t u x t h h o h x xu u u x t u x t h h o h x x +-⎧∂∂=+⋅+⋅+⎪⎪∂∂⎨∂∂⎪=-⋅+⋅+⎪∂∂⎩(2-8) 得到对位置的二阶偏导数2211,22(,)2(,)(,)()()i k i k i k i k u x t u x t u x t uo h x h+--+∂=+∂(2-9) 将式(2-5)、(2-9)代入一般形式的抛物线型偏微分方程得(2-10)为了方便我们可以将式(2-10)写成11122k kk k k k i i i i i i u u u u u f h ατ++-⎡⎤--+-=⎢⎥⎣⎦(2-11) ()11122k k k k k k i i i i i i u u uu u f hτατ++----+=(2-12)最后得到古典显格式的差分格式为()111(12)k k k k k i i i i i u ra u r u u f ατ++-=-+++(2-13)2r hτ=其中,古典显格式的差分格式的截断误差是2()o h τ+。
实验二微分方程与差分方程模型Matlab求解
实验二: 微分方程与差分方程模型Matlab 求解一、实验目的[1] 掌握解析、数值解法,并学会用图形观察解的形态和进展解的定性分析;[2] 熟悉MATLAB 软件关于微分方程求解的各种命令; [3] 通过范例学习建立微分方程方面的数学模型以及求解全过程;[4] 熟悉离散 Logistic 模型的求解与混沌的产生过程。
二、实验原理1. 微分方程模型与MATLAB 求解 解析解用MATLAB 命令dsolve(‘eqn1’,’eqn2’, ...) 求常微分方程〔组〕的解析解。
其中‘eqni'表示第i 个微分方程,Dny 表示y 的n 阶导数,默认的自变量为t 。
〔1〕 微分方程例1 求解一阶微分方程 21y dxdy+= (1) 求通解 输入:dsolve('Dy=1+y^2') 输出: ans =tan(t+C1) 〔2〕求特解 输入:dsolve('Dy=1+y^2','y(0)=1','x') 指定初值为1,自变量为x输出: ans =tan(x+1/4*pi)例2 求解二阶微分方程 221()04(/2)2(/2)2/x y xy x y y y πππ'''++-=='=-原方程两边都除以2x ,得211(1)04y y y x x '''++-= 输入:dsolve('D2y+(1/x)*Dy+(1-1/4/x^2)*y=0','y(pi/2)=2,Dy(pi/2)=-2/pi','x') ans =- (exp(x*i)*(pi/2)^(1/2)*i)/x^(1/2) +(exp(x*i)*exp(-x*2*i)*(pi/2)^(3/2)*2*i)/(pi*x^(1/2))试试能不用用simplify 函数化简 输入: simplify(ans)ans =2^(1/2)*pi^(1/2)/x^(1/2)*sin(x) 〔2〕微分方程组例3 求解 d f /d x =3f +4g ; d g /d x =-4f +3g 。
(完整版)偏微分方程的MATLAB解法
引言偏微分方程定解问题有着广泛的应用背景。
人们用偏微分方程来描述、解释或者预见各种自然现象,并用于科学和工程技术的各个领域fll。
然而,对于广大应用工作者来说,从偏微分方程模型出发,使用有限元法或有限差分法求解都要耗费很大的工作量,才能得到数值解。
现在,MATLAB PDEToolbox已实现对于空间二维问题高速、准确的求解过程。
偏微分方程如果一个微分方程中出现的未知函数只含一个自变量,这个方程叫做常微分方程,也简称微分方程;如果一个微分方程中出现多元函数的偏导数,或者说如果未知函数和几个变量有关,而且方程中出现未知函数对几个变量的导数,那么这种微分方程就是偏微分方程。
常用的方法有变分法和有限差分法。
变分法是把定解问题转化成变分问题,再求变分问题的近似解;有限差分法是把定解问题转化成代数方程,然后用计算机进行计算;还有一种更有意义的模拟法,它用另一个物理的问题实验研究来代替所研究某个物理问题的定解。
虽然物理现象本质不同,但是抽象地表示在数学上是同一个定解问题,如研究某个不规则形状的物体里的稳定温度分布问题,由于求解比较困难,可作相应的静电场或稳恒电流场实验研究,测定场中各处的电势,从而也解决了所研究的稳定温度场中的温度分布问题。
随着物理科学所研究的现象在广度和深度两方面的扩展,偏微分方程的应用范围更广泛。
从数学自身的角度看,偏微分方程的求解促使数学在函数论、变分法、级数展开、常微分方程、代数、微分几何等各方面进行发展。
从这个角度说,偏微分方程变成了数学的中心。
一、MATLAB方法简介及应用1.1 MATLAB简介MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
1.2 Matlab主要功能数值分析数值和符号计算工程与科学绘图控制系统的设计与仿真数字图像处理数字信号处理通讯系统设计与仿真财务与金融工程1.3 优势特点1) 高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;2) 具有完备的图形处理功能,实现计算结果和编程的可视化;3) 友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;4) 功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。
有限差分法求解偏微分方程MATLAB
南京理工大学课程考核论文课程名称:高等数值分析论文题目:有限差分法求解偏微分方程*名:**学号: 1成绩:有限差分法求解偏微分方程一、主要内容1.有限差分法求解偏微分方程,偏微分方程如一般形式的一维抛物线型方程:22(,)()u uf x t t xαα∂∂-=∂∂其中为常数具体求解的偏微分方程如下:22001(,0)sin()(0,)(1,)00u u x t x u x x u t u t t π⎧∂∂-=≤≤⎪∂∂⎪⎪⎪=⎨⎪⎪==≥⎪⎪⎩2.推导五种差分格式、截断误差并分析其稳定性;3.编写MATLAB 程序实现五种差分格式对偏微分方程的求解及误差分析;4.结论及完成本次实验报告的感想。
二、推导几种差分格式的过程:有限差分法(finite-difference methods )是一种数值方法通过有限个微分方程近似求导从而寻求微分方程的近似解。
有限差分法的基本思想是把连续的定解区域用有限个离散点构成的网格来代替;把连续定解区域上的连续变量的函数用在网格上定义的离散变量函数来近似;把原方程和定解条件中的微商用差商来近似,积分用积分和来近似,于是原微分方程和定解条件就近似地代之以代数方程组,即有限差分方程组,解此方程组就可以得到原问题在离散点上的近似解。
推导差分方程的过程中需要用到的泰勒展开公式如下:()2100000000()()()()()()()......()(())1!2!!n n n f x f x f x f x f x x x x x x x o x x n +'''=+-+-++-+- (2-1)求解区域的网格划分步长参数如下:11k k k kt t x x h τ++-=⎧⎨-=⎩ (2-2) 2.1 古典显格式2.1.1 古典显格式的推导由泰勒展开公式将(,)u x t 对时间展开得 2,(,)(,)()()(())i i k i k k k uu x t u x t t t o t t t∂=+-+-∂ (2-3) 当1k t t +=时有21,112,(,)(,)()()(())(,)()()i k i k i k k k k k i k i k uu x t u x t t t o t t tuu x t o tττ+++∂=+-+-∂∂=+⋅+∂ (2-4)得到对时间的一阶偏导数1,(,)(,)()=()i k i k i k u x t u x t uo t ττ+-∂+∂ (2-5) 由泰勒展开公式将(,)u x t 对位置展开得223,,21(,)(,)()()()()(())2!k i k i k i i k i i u uu x t u x t x x x x o x x x x∂∂=+-+-+-∂∂ (2-6)当11i i x x x x +-==和时,代入式(2-6)得2231,1,1122231,1,1121(,)(,)()()()()(())2!1(,)(,)()()()()(())2!i k i k i k i i i k i i i i i k i k i k i i i k i i i iu uu x t u x t x x x x o x x x x u u u x t u x t x x x x o x x x x ++++----⎧∂∂=+-+-+-⎪⎪∂∂⎨∂∂⎪=+-+-+-⎪∂∂⎩(2-7) 因为1k k x x h +-=,代入上式得2231,,22231,,21(,)(,)()()()2!1(,)(,)()()()2!i k i k i k i k i k i k i k i ku uu x t u x t h h o h x xu u u x t u x t h h o h x x +-⎧∂∂=+⋅+⋅+⎪⎪∂∂⎨∂∂⎪=-⋅+⋅+⎪∂∂⎩ (2-8) 得到对位置的二阶偏导数2211,22(,)2(,)(,)()()i k i k i k i k u x t u x t u x t u o h x h+--+∂=+∂ (2-9) 将式(2-5)、(2-9)代入一般形式的抛物线型偏微分方程得21112(,)(,)(,)2(,)(,)(,)()i k i k i k i k i k i k u x t u x t u x t u x t u x t f x t o h h αττ++---+⎡⎤-=++⎢⎥⎣⎦(2-10)为了方便我们可以将式(2-10)写成11122k kk k k k i i i i i i u u u u u f h ατ++-⎡⎤--+-=⎢⎥⎣⎦(2-11) ()11122k k k k k k i i i i i i u u uu u f h τατ++----+= (2-12)最后得到古典显格式的差分格式为()111(12)k k k k k i i i i i u ra u r u u f ατ++-=-+++ (2-13)2r h τ=其中,古典显格式的差分格式的截断误差是2()o h τ+。
[精品文档]差分格式稳定性及数值效应比较实验
差分格式稳定性及数值效应比较实验一实验目的:1.以一阶线性双曲线方程为例,使用Matlab工具分析4种差分格式的误差。
2.了解4种差分格式的稳定性。
二实验问题:对于一阶线性双曲型方程:取a=1,2,4, h=0.1, τ=0.08, 对不同的差分格式(迎风格式,Lax-Friedrichs格式,Lax-Wendroff格式,修正迎风格式)及不同的a值进行迭代计算。
通过将计算结果与精确解来进行比较,来讨论分析差分格式的稳定性。
三实验原理:1.迎风格式:这种格式的基本思想是简单的,就是在双曲型方程中关于空间偏导数用在特征线方向一侧的单边差商来代替,格式如下:运算格式:x-Friedrichs格式:运算格式:x-Wendroff格式:这种格式构造是采用Taylor 级数展开和微分方程本身得到运算格式:4.修正迎风格式(目标点范围跟踪格式):其中是取整数部分,=。
根据之后的理论分析可以得到这是一个无条件稳定结构。
四四种格式理论分析:通过求差分格式的增长因子G(τ, k),来判定差分格式是否稳定。
1.迎风格式:记,则,得,即。
所以。
则在,满足von Neumann条件,格式稳定。
以下格式用相同方法求解稳定性条件。
x-Friedrichs格式:,在时稳定。
x-Wendroff格式:,在时稳定。
4.修正迎风格式(目标点范围跟踪格式):,其中,的成立条件为。
而恒成立,故格式无条件稳定。
五实验结果:a=1()迎风格式Lax-Friedrichs格式Lax-Wendroff格式修正迎风格式a=2()迎风格式Lax-Friedrichs格式Lax-Wendroff格式修正迎风格式a=4()迎风格式Lax-Friedrichs格式Lax-Wendroff格式修正迎风格式六总结:本次实验,通过4种差分格式求解T=4时的解并与解析解画图比较,可以看出:(1)a=1(aλ=0.8<1)时,迎风格式,Lax-Friedrichs格式,修正迎风格式的计算结果与解析解近似情况较好,而Lax-Wendroff格式则在间断点处出现了波前波,形成双波现象,这符合Lax-Wendroff格式为二阶迭代格式的性质。
偏微分数值解实验报告_Matlab实现
Part 1
1. Consider the problem
u 2u t x 2 u 0, t u 1, t 0 u x, 0 u0 ( x)
Where
0 x 1, t 0 t 0 0 x 1
0.0012 (ii) ∆t = 0.0013. Plot the numerical solution and the analyticalsolution at t = 0, ∆t, 25∆t, 50∆t (To plot the analytical solution, you can stop the summation at a large numberN, when you cannot see difference in the solution curve if N is increased).
解:如图:
dx=0.05;dt=0.0012;t=0*dt 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 解析解 数值解 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0
u
dx=0.05;dt=0.0012;t=1*dt 解析解 数值解
t u ( x, t ) u ( x, t t ) u ( x, t )
(2) 1 1 1 ut (t ) utt (t )2 uttt (t )3 utttt (t )4 +… 2 6 24 对关于 x 的向前差分作泰勒级数展开
xu ( x, t ) u ( x x, t ) u ( x, t )
显然,该数值格式在时间和空间上都是二阶精度的。
偏微分方程数值解上机实验报告(matlab做的)
偏微分方程数值解法上机报告(一)一、实验题目:用Ritz-Galerkin 方法求解边值问题2u '',01(0)0,(1)1u x x u u ⎧-+=<<⎨==⎩的第n 次近似()n u x ,基函数()sin(),1,2,...,i x i x i n ϕπ==.二、实验目的:通过本次上机实验,理解求解初值问题的变分问题的最重要的近似解法——Ritz-Galerkin 方法,以便为学习有限元法打好基础。
此外,要熟悉用Matlab 解决数学问题的基本编程方法,提高运用计算机解决问题的能力。
三、实验代码:n=5;syms x;for i=1:np(i)=sin(i*pi*x);q(i)=-i^2*pi^2*sin(i*pi*x);endfor i=1:nb(i)=2*int(p(i),0,1);for j=1:nA(i,j)=int((-q(j)+p(j))*p(i),0,1);endendt=inv(A)*b'四、运行结果:t=2251799813685248/3059521645650671/pi281474976710656/9481460623939047/pi281474976710656/43582901062631895/pi五、总结:通过本次上机,我了解了Ritz-Galerkin 方程 n j j p f cj p i p a n i i ,...,2,1)),(,())(),((1==∑=,明白了用Ritz-Galerkin 方法解决边值问题的变分问题的基本原理,并接近一步提高自己的编程动手能力,受益匪浅。
偏微分方程数值解法上机报告(二)一、 实验题目:用线性元求下列边值问题的数值解2''2sin ,0142(0)0,'(1)0y y x x y y ππ⎧-+=<<⎪⎨⎪==⎩二、 实验目的:通过本次上机,熟悉和掌握用Galerkin 法观点出发导出的求解处置问题数值解的线性有限元法。
基于MATLAB的偏微分方程差分解法
基于MATLAB的偏微分方程差分解法学院:核工程与地球物理学院专业:勘查技术与工程班级:1120203学号:姓名:2014/6/11在科学技术各领域中,有很多问题都可以归结为偏微分方程问题。
在物理专业的力学、热学、电学、光学、近代物理课程中都可遇见偏微分方程。
偏微分方程,再加上边界条件、初始条件构成的数学模型,只有在很特殊情况下才可求得解析解。
随着计算机技术的发展,采用数值计算方法,可以得到其数值解。
近些年来,求解偏微分方程的数值方法取得进展,特别是有限差分区域分解算法,此类算法的特点是在内边界处设计不同于整体的格式, 将全局的隐式计算化为局部的分段隐式计算。
使人从感觉上认为这样得到的解会比全局隐式得到的解的精度差,但大量的数值实验表明事实正好相反,用区域分解算法求得的解的精度更好。
差分方法又称为有限差分方法或网格法,是求偏微分方程定解问题的数值解中应用最广泛的方法之一。
它的基本思想是:先对求解区域作网格剖分,将自变量的连续变化区域用有限离散点(网格点)集代替;将问题中出现的连续变量的函数用定义在网格点上离散变量的函数代替;通过用网格点上函数的差商代替导数,将含连续变量的偏微分方程定解问题化成只含有限个未知数的代数方程组(称为差分格式)。
如果差分格式有解,且当网格无限变小时其解收敛于原微分方程定解问题的解,则差分格式的解就作为原问题的近似解(数值解)。
因此,用差分方法求偏微分方程定解问题一般需要解决以下问题:(i )选取网格;(ii )对微分方程及定解条件选择差分近似,列出差分格式; (iii )求解差分格式;(iv )讨论差分格式解对于微分方程解的收敛性及误差估计。
下面对偏微分方程具体例题的差分解法作一简要的介绍。
§1 双曲型方程中波动方程的有限差分解法。
1.1 双曲型的差分方程通过建立网格并求解中心差分方程结果为:22,1,1,1,,1(22)(),2,3,1i j i j i j i j i j u r u r u u u i n ++--=-++-=-。
结构动力学使用中心差分法计算单自由度体系动力反应的MATLAB程序
中心差分法计算单自由度体系动力反映的报告前言基于叠加原理的时域积分法与频域积分法一样,都假设结构在在全部反应过程中都是线性的。
而时域逐步积分法只是假设结构本构关系在一个微小的时间步距内是线性的,相当于分段直线来逼近实际的曲线。
时域逐步积分法是结构动力问题中研究并应用广泛的课题。
中心差分法是一种目前发展的一系列结构动力反应分析的时域逐步积分法的一种,时域逐步积分法还包括分段解析法、平均常加速度法、线性加速度法、Newmarket−β和Wilson−θ法等。
中心差分法(central difference method)原理中心差分法的基本思路将运动方程中的速度向量和加速度向量用位移的某种组合来表示,将微分方程组的求解问题转化为代数方程组的求解问题,并在时间区间内求得每个微小时间区间的递推公式,进而求得整个时程的反应。
中心差分法是一种显示的积分法,它基于用有限差分代替位移对时间的求导(即速度和加速度)。
如果采用等时间步长,∆t i=∆t(∆t为常数),则速度与加速度的中心差分近似为u i=u i+1+u i−12∆t(1)üi=u i+1−2u i+u i−1∆t2(2)用u表示位移,离散时间点的运动为:u i=u(t i),u i=u̇(t i),u i=ü(t i)(i=0,1,2…)体系的运动方程为mü(t)+cu̇(t)+ku(t)=P(t)(3)将速度和加速度的差分近似公式(1)和(2)代入(3)中得出在t i时刻的运动方程,将方程整理得到u i+1由u i 和u i−1表示的两步法的运动方程(4):(m ∆t2+c2∆t)u i+1=P i−(k−2m∆t2)u i−(m∆t2−c2∆t)u i−1(4)这样就可以根据t i及以前的时刻的运动求得t i+1时刻的运动。
中心差分法属于两步法,用两步法计算时存在起步问题,必须要给出相邻的两个时刻的位移值,才能逐步计算。
对于地震作用下结构的反应问题和一般的零初始条件下的动力问题,可以用(4)直接计算,因为总可以假设初始的两个时间点(一般取i=0,−1)的位移等于零。
偏微分中心差分格式实验报告
偏微分中心差分格式实验报告实验目的:1.掌握偏微分的中心差分格式;2.理解中心差分格式的精度和稳定性。
实验原理:中心差分是一种常用的数值求解偏微分方程的格式,其基本思想是用函数在两个点的导数的平均值来近似函数在这两个点中间的导数值。
具体来说,对于一维的偏微分方程,中心差分格式可以表述为:f'(x)=(f(x+h)-f(x-h))/(2h)其中f'(x)表示x点处的导数,h表示步长。
实验步骤:1.编写一个计算函数在任意给定点x处的导数值的中心差分程序;2.给定一个函数f(x),例如f(x)=x^2,计算在一定范围内的该函数在每个点处的导数值;3.比较计算的导数值与理论值的差异,并分析中心差分格式的精度;4.对给定步长h,逐渐减小h,计算导数值,并观察数值的变化,分析中心差分格式的稳定性。
实验结果与分析:以函数f(x)=x^2为例,给定步长h=0.1,计算在范围[-1,1]内的函数f(x)在每个点处的导数值。
实验结果如下表所示:x,f'(x),理论值,误差-1.0,-1.999,-2,0.001 -0.9,-1.899,-1.8,0.099 -0.8,-1.698,-1.6,0.098 -0.7,-1.397,-1.4,0.003 -0.6,-0.996,-1,0.004 -0.5,-0.495,-0.5,0.005 -0.4,0.204,0,0.204-0.3,0.615,0.6,0.015 -0.2,1.216,1.2,0.016 -0.1,1.797,1.8,0.003 0.0,1.996,2,0.0040.1,2.193,2.2,0.007 0.2,2.792,2.8,0.008 0.3,3.293,3.3,0.007 0.4,3.594,3.6,0.006 0.5,3.896,3.9,0.004 0.6,4.437,4.4,0.037 0.7,4.998,5,0.0020.9,6.795,6.8,0.0051.0,7.993,8,0.007从实验结果可以看出,随着x的增大,计算的导数值与理论值之间的误差也在增大,但整体上相对较小。
中心差分法 matlab代码
中心差分法(matlab代码)中心差分法是一种常用的数值求导方法,它利用函数在一点的两侧点进行逼近求导。
在matlab中,可以通过编写简单的代码来实现中心差分法的数值求导。
下面我将介绍如何使用matlab编写中心差分法的求导代码。
1. 准备工作在编写中心差分法的代码前,首先需要准备工作。
确保已经安装了matlab软件,并且已经打开了matlab编辑器。
需要确定要求导的函数,以及求导点的位置。
2. 编写函数在matlab中,可以使用函数来表示要求导的函数。
假设要求导的函数为f(x),则可以使用如下代码来定义这个函数:```matlabfunction y = f(x)y = x^2; 示例:定义要求导的函数为x^2end```在这个示例中,我们定义了一个简单的函数f(x) = x^2作为要求导的函数。
3. 编写中心差分法代码编写中心差分法的代码需要考虑到求导点的选择。
中心差分法的原理是利用函数在求导点两侧的函数值来逼近求导值。
假设求导点为x0,假设步长为h,则中心差分法的求导公式为:```latexf'(x0) ≈ (f(x0+h) - f(x0-h)) / (2*h)```可以使用如下matlab代码来实现中心差分法的数值求导:```matlabfunction y = central_difference(x0, h)y = (f(x0 + h) - f(x0 - h)) / (2 * h);end```在这个示例中,我们定义了一个名为central_difference的函数,它接受两个参数x0和h,分别表示求导点的位置和步长。
在函数内部,我们使用了中心差分法的公式来计算数值导数的近似值。
4. 调用函数编写完中心差分法的代码后,可以通过调用这个函数来得到数值导数的近似值。
假设我们要在x=2的位置求函数f(x)=x^2的导数近似值,可以使用如下代码来进行计算:```matlabx0 = 2; 求导点的位置h = 0.01; 步长result = central_difference(x0, h); 调用central_difference函数进行计算disp(['数值导数的近似值为:', num2str(result)]); 显示计算结果```在这个示例中,我们通过调用central_difference函数来计算在x=2的位置的函数f(x)=x^2的导数近似值,并使用disp函数来显示计算结果。
偏微分中心差分格式实验报告(含matlab程序)
二阶常微分方程的中心差分求解学校:中国石油大学(华东)理学院 姓名:张道德一、 实验目的1、 构造二阶常微分边值问题:22,(),(),d uLu qu f a x bdx u a u b αβ⎧=-+=<<⎪⎨⎪==⎩其中,q f 为[,]a b 上的连续函数,0;,q αβ≥为给定常数的中心差分格式;2、 根据中心差分格式求解出特定例题的数值解,并与该例题的精确解进行比较。
二、 中心差分格式的构造将区间[,]a b 分成N 等分,分点为: 0,1,2,,i x a ih i N =+=()/h b a N =-。
于是我们得到区间的一个网络剖分。
称为网格的节点称为步长。
得中心差分格式为:11202,1,2,,1,,.i i i h i i i i N u u u L u q u f i N h u u αβ+--+⎧=-+==-⎪⎨⎪==⎩其中式中(),()i i i i q q x f f x ==。
三、 差分格式求解根据中心差分格式可以构造出:1112222222233322212211210012101201001200N N N u f q h h u f q h h h u f q h hh q u f h h ---⎡⎤⎡⎤⎡⎤+-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-+-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥=-+⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-+⎢⎥⎢⎥⎢⎥⎣⎦⎣⎦⎣⎦可以看出系数矩阵为三对角矩阵,而对于系数矩阵为三对角矩阵的方程组可以用“追赶法”求解,则可以得出二阶常微分方程问题的数值解。
四、 举例求解我们选取的二阶常微分方程边值问题为:222242,01(0)1,(1),x d u Lu x u e x dx u u e ⎧=-+=-<<⎪⎨⎪==⎩其精确解为:2x u e=。
则我们具体求解出的解如下:1、 当10N =时,数值解与精确解为: (1) 表1、10N =时,数值解与精确解统计表x 的值 0.10.20.30.40.5 u 的数值解 1.011069 1.042744 1.096904 1.176896 1.28789 u 的精确解 1.01005 1.040811 1.094174 1.173511 1.284025 两者之差 0.001019 0.001934 0.002729 0.003385 0.003864 x 的值 0.60.70.80.9u 的数值解 1.437443 1.636363 1.900001 2.250209 u 的精确解 1.433329 1.632316 1.896481 2.247908 两者之差0.0041140.0040460.003520.002301将两者绘于同一图中如下:(2)结论:可以看出数值解与精确解之间的误差很小, 在 210-这样一个数量级上。
偏微分方程实验报告
Columns 9 through 11
0.4663 0.2451 0.0000
u =
Columns 1 through 8
0 0.2800 0.5325 0.7330 0.8617 0.9060 0.8617 0.7330
end
un=[0 un 0]
e=abs(u-Un)
Un=un;
end
5、实验数据记录与分析
e =
0 0 0 0 0 0 0 0 0 0 0
u =
Columns 1 through 8
0 0.2941 0.5595 0.7701 0.9053 0.9518 0.9053 0.7701
Columns 9 through 11
n=length(t)
Un=sin(pi*x0)
fori=1:n
un=[];
u=[];
forr=1:11
u1=exp(-pi^2*t(i))*sin(pi*x0(r));
u=[u u1];
end
u
forj=2:10
Un1=Un(j)+0.5*(Un(j+1)-2*Un(j)+Un(j-1));
un=[un Un1];
偏微分方程实验报告偏微分方程偏微分方程数值解matlab解偏微分方程偏微分方程pdf椭圆型偏微分方程matlab偏微分方程matlab解偏微分方程组二阶偏微分方程二阶线性偏微分方程
实验名称
抛物型方程的差分格式
实验时间
2014年5月15日
2014年5月29日
2014年6月12日
偏微分实验报告八-张伟-20122058
重庆大学学生实验报告实验课程名称偏微分方程数值解开课实验室数统学院学院数统年级2012 专业班信计1班学生姓名张伟学号20122058 开课时间2014 至2015 学年第 2 学期数学与统计学院制开课学院、实验室: 数统学院 实验时间 : 2015年 6月17日1,2k i j u u +-+考虑边界条件()(),,0,,u x y t x y =∈∂Ω,差分格式为:,利用二阶差商近似:时刻的点为内点,则满足差分格式(2),代入上式得到:()(),0,sin sin ,,0,1,N N ih jh i j ππ=0,1,,10j =图1 t=0.1、0.5时刻的数值解、精确解 图2 t=1.0、1.4时刻的数值解、精确解 注:上两图为四个时刻的数值解与精确解,()10.12r p p hpτ==<=代表维数,本文,三层显格式达二阶收敛,不难看出,收敛效果很好,符合理论。
下图是四个时刻的绝对误差图像,从图中看出,绝对误差较小,且经过计算得到,收敛阶近似于2,正好符合理论值。
图3 四个时刻的绝对误差3、四个时刻(t=0.1、0.5、1.0、1.4)的绝对误差表t=0.1时刻的绝对误差0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.00000.0000 0.0001 0.0001 0.0002 0.0002 0.0002 0.0002 0.0002 0.0001 0.0001 0.00000.0000 0.0001 0.0003 0.0004 0.0004 0.0005 0.0004 0.0004 0.0003 0.0001 0.00000.0000 0.0002 0.0004 0.0005 0.0006 0.0006 0.0006 0.0005 0.0004 0.0002 0.00000.0000 0.0002 0.0004 0.0006 0.0007 0.0007 0.0007 0.0006 0.0004 0.0002 0.00000.0000 0.0002 0.0005 0.0006 0.0007 0.0008 0.0007 0.0006 0.0005 0.0002 0.00000.0000 0.0002 0.0004 0.0006 0.0007 0.0007 0.0007 0.0006 0.0004 0.0002 0.0000。
图像处理偏微分方法实验报告
图像处理偏微分方法实验报告偏微分方程在图像处理领域的研究开始于六、七十年代,从最初的去噪角度和图像恢复的角度出发,相应地引入了偏微分方程。
但直到九十年代才比较系统地将偏微分方程引入图像处理领域,结合其他一些数学工具如数学形态学和仿射几何等,形成了比较完整的理论体系。
由s.Osher等提出的水平集方法具有良好的几何插值性,将灰度插值转化为曲线插值,在图像处理中有很大的影响,在图像修复与去噪、边缘检测、图像匹配、图像识别等方面都取得了相对较好的结果。
一、偏微分方程在图像处理中的应用偏微分方程在图像处理领域的研究开始于六、七十年代,Gabor,Rudin,Osher 等人分别从去噪的角度出发,把偏微分方程引入了图像处理领域。
同时,Osher 还从图像恢复的角度出发,使用最小化全局变差(Total Vadation)方法和变分法,也使用了相应的偏微分方程。
但直到上世纪九十年代,Alvarez,Lions,Morel等才首次系统地将偏微分方程引入了图像处理领域,在理论上有比较大的突破,并结合其他数学工具,如数学形态学、变分法、逼近论、仿射几何等,形成了比较完整的理论体系。
由于理论体系本身的优点,从二维图像(静止图像,如照片)到三维图像(运动图像,如电影)应用的拓展相对容易一些。
这也是偏微分方程在图像处理研究领域中的一个优势。
当然,时间这一维数有它本身的特点,与图像平面有本质的区别,在应用中需要加以注意。
概括地说,偏微分方程的图像处理技术具有以下的特点:(1)基于PDE的方法具有良好的数学基础,可以提供深刻的理论结果,并且算法具备良好的稳定性;(2)一些经典的方法如高斯滤波、中值滤波、膨胀和腐蚀在PDE的统一框架下得到全新的解释;(3)这种视角产生了新的方法,它们比经典的方法包容更多的不变性,如保持结构的滤波、线形增强等;(4)PDE是连续的模型,与具体的离散网格无关,并且具有旋转不变性。
偏微分方程在图像处理中的研究主要集中在图像处理的两个基础部分:图像滤波和图像边缘提取。
九点差分格式五点差分格式matlab
九点差分格式五点差分格式matlab九点差分格式概述九点差分格式是一种数值计算方法,用于求解偏微分方程。
它是有限差分法的一种,通常用于求解二维泊松方程或热传导方程。
原理九点差分格式是通过在目标点周围的八个邻居点上进行数值计算来估计目标点的值。
其基本形式为:f(x,y) = (1/6h^2) * [4f(x+h,y)+4f(x-h,y)+4f(x,y+h)+4f(x,y-h)-20f(x,y)] + (1/3h^2) * [f(x+h,y+h)+f(x-h,y-h)+f(x+h,y-h)+f(x-h,y+h)]其中,h为网格尺寸。
优缺点九点差分格式的优点是精度较高,适用于求解高精度问题。
但由于需要使用八个邻居点进行计算,因此其计算量较大。
应用九点差分格式通常应用于求解二维泊松方程或热传导方程等偏微分方程问题。
五点差分格式概述五点差分格式是一种数值计算方法,也是有限差分法的一种。
它通常用于求解二维泊松方程或热传导方程等偏微分方程问题。
原理五点差分格式是通过在目标点周围的四个邻居点上进行数值计算来估计目标点的值。
其基本形式为:f(x,y) = (1/h^2) * [4f(x+h,y)+4f(x-h,y)+4f(x,y+h)+4f(x,y-h)-20f(x,y)]其中,h为网格尺寸。
优缺点五点差分格式的优点是计算量较小,适用于求解大规模问题。
但由于只使用了四个邻居点进行计算,因此其精度较低。
应用五点差分格式通常应用于求解二维泊松方程或热传导方程等偏微分方程问题。
由于其计算量较小,因此也适用于求解大规模问题。
Matlab中的实现Matlab是一种常用的数值计算软件,可以很方便地实现九点差分格式和五点差分格式。
以下是两种方法的Matlab代码:九点差分格式:function [u] = nine_point(f, h)[m, n] = size(f);u = zeros(m, n);for i = 2:m-1for j = 2:n-1u(i,j) = (1/6*h^2)*(4*f(i+1,j)+4*f(i-1,j)+4*f(i,j+1)+4*f(i,j-1)-20*f(i,j)) + (1/3*h^2)*(f(i+1,j+1)+f(i-1,j-1)+f(i+1,j-1)+f(i-1,j+1));endendend五点差分格式:function [u] = five_point(f, h)[m, n] = size(f);u = zeros(m, n);for i = 2:m-1for j = 2:n-1u(i,j) = (1/h^2)*(4*f(i+1,j)+4*f(i-1,j)+4*f(i,j+1)+4*f(i,j-1)-20*f(i,j));endendend以上是九点差分格式和五点差分格式的基本原理、优缺点和应用,以及在Matlab中的实现方法。
matlab差分法解偏微分方程
Matlab 差分法解偏微分方程1.引言解偏微分方程是数学和工程领域中的一项重要课题,它在科学研究和工程实践中具有广泛的应用。
而 Matlab 差分法是一种常用的数值方法,用于求解偏微分方程。
本文将介绍 Matlab 差分法在解偏微分方程中的应用,包括原理、步骤和实例。
2. Matlab 差分法原理差分法是一种离散化求解微分方程的方法,通过近似替代微分项来求解微分方程的数值解。
在 Matlab 中,差分法可以通过有限差分法或者差分格式来实现。
有限差分法将微分方程中的导数用有限差分替代,而差分格式指的是使用不同的差分格式来近似微分方程中的各个项,通常包括前向差分、后向差分和中心差分等。
3. Matlab 差分法步骤使用 Matlab 差分法解偏微分方程一般包括以下步骤:(1)建立离散化的区域:将求解区域离散化为网格点或节点,并确定网格间距。
(2)建立离散化的时间步长:对于时间相关的偏微分方程,需要建立离散化的时间步长。
(3)建立离散化的微分方程:使用差分法将偏微分方程中的微分项转化为离散形式。
(4)建立迭代方程:根据离散化的微分方程建立迭代方程,求解数值解。
(5)编写 Matlab 代码:根据建立的迭代方程编写 Matlab 代码求解数值解。
(6)求解并分析结果:使用 Matlab 对建立的代码进行求解,并对结果进行分析和后处理。
4. Matlab 差分法解偏微分方程实例假设我们要使用 Matlab 差分法解决以下一维热传导方程:∂u/∂t = α * ∂^2u/∂x^2其中 u(x, t) 是热传导方程的温度分布,α 是热扩散系数。
4.1. 离散化区域和时间步长我们将求解区域离散化为网格点,分别为 x_i,i=1,2,...,N。
时间步长为Δt。
4.2. 离散化的微分方程使用中心差分格式将偏微分方程中的导数项离散化得到:∂u/∂t ≈ (u_i(t+Δt) - u_i(t))/Δt∂^2u/∂x^2 ≈ (u_i-1(t) - 2u_i(t) + u_i+1(t))/(Δx)^2代入原偏微分方程可得离散化的微分方程:(u_i(t+Δt) - u_i(t))/Δt = α * (u_i-1(t) - 2u_i(t) + u_i+1(t))/(Δx)^24.3. 建立迭代方程根据离散化的微分方程建立迭代方程:u_i(t+Δt) = u_i(t) + α * Δt * (u_i-1(t) - 2u_i(t) + u_i+1(t))/(Δx)^24.4. 编写 Matlab 代码使用以上建立的迭代方程编写 Matlab 代码求解热传导方程。
使用matlab差分法解偏微分方程
使用matlab差分法解偏微分方程1. 引言差分法是一种常用的数值方法,用于求解偏微分方程(Partial Differential Equations,简称PDE)的数值解。
在工程学和科学研究中,PDE广泛应用于描述各种物理现象和过程。
本文将介绍使用MATLAB差分法来解偏微分方程的方法和步骤,并探讨其优势和局限性。
2. 差分法简介差分法是一种基于离散点的数值求解方法,它将连续的空间或时间变量离散化为有限个点,通过对这些离散点上的方程进行逼近,得到PDE的数值解。
其中,MATLAB作为一种功能强大的数值计算工具,提供了快速而高效的差分法求解PDE的功能。
3. 二阶偏微分方程的差分方法在本节中,我们将以一个简单的二阶偏微分方程为例,说明如何使用差分法来解决。
考虑一个二维的泊松方程,即:∂²u/∂x² + ∂²u/∂y² = f(x, y)其中,u是未知函数,f(x, y)是已知函数。
为了使用差分法求解该方程,我们需要将空间离散化,假设网格步长为Δx和Δy。
我们可以使用中心差分法来逼近二阶导数,从而将偏微分方程转化为一个代数方程组。
在MATLAB中,我们可以通过设置好网格步长和边界条件,构建对应的代数方程组,并使用线性代数求解方法(如直接解法或迭代解法)获得数值解。
4. 差分法的优势和局限性差分法作为一种数值方法,具有许多优势和应用范围,但也存在一些局限性。
优势:- 简单易懂:差分法的思想直观明了,易于理解和实现。
- 适应性广泛:差分法可以用于求解各种类型的偏微分方程,包括常微分方程和偏微分方程。
- 准确度可控:通过调整网格步长,可以控制数值解的精度和稳定性。
局限性:- 离散误差:当空间或时间步长过大时,差分法的数值解可能会出现较大的离散误差。
- 边界条件:合适的边界条件对于差分法的求解结果至关重要,不合理的边界条件可能导致数值解的不准确。
- 计算效率:对于复杂的偏微分方程,差分法的计算成本可能较高,需要耗费大量的计算资源和时间。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二阶常微分方程的中心差分求解
学校:中国石油大学(华东)理学院 姓名:张道德
一、 实验目的
1、 构造二阶常微分边值问题:
22,(),(),d u
Lu qu f a x b
dx u a u b αβ⎧=-+=<<⎪⎨⎪==⎩
其中,q f 为[,]a b 上的连续函数,0;,q αβ≥为给定常数的中心差分格式;
2、 根据中心差分格式求解出特定例题的数值解,并与该
例题的精确解进行比较。
二、 中心差分格式的构造
将区间[,]a b 分成N 等分,分点为: 0,1,2,
,i x a ih i N =+=
()/h b a N =-。
于是我们得到区间的一个网络剖分。
称为网
格的节点称为步长。
得中心差分格式为:
112
02,1,2,,1,,.
i i i h i i i i N u u u L u q u f i N h u u αβ+--+⎧=-+==-⎪⎨⎪==⎩
其中式中(),()i i i i q q x f f x ==。
三、 差分格式求解
根据中心差分格式可以构造出:
11122222222
33322
212
21121001210
12
010012
00
N N N u f q h h u f q h h h u f q h h
h q u f h h ---⎡⎤⎡⎤⎡⎤+-⎢
⎥⎢⎥⎢⎥⎢
⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥-+-⎢
⎥⎢⎥⎢⎥⎢
⎥⎢⎥⎢⎥⎢⎥⎢⎥
⎢⎥=-+⎢
⎥⎢⎥⎢⎥⎢
⎥⎢⎥⎢⎥⎢
⎥⎢⎥⎢⎥-⎢⎥⎢⎥
⎢⎥⎢⎥⎢⎥⎢⎥-+⎢⎥⎢⎥⎢⎥⎣
⎦⎣⎦⎣⎦
可以看出系数矩阵为三对角矩阵,而对于系数矩阵为三对角矩阵的方程组可以用“追赶法”求解,则可以得出二阶常微分方程问题的数值解。
四、 举例求解
我们选取的二阶常微分方程边值问题为:
2
22242,01
(0)1,(1),x d u Lu x u e x dx u u e ⎧=-+=-<<⎪⎨⎪==⎩
其精确解为:2
x u e
=。
则我们具体求解出的解如下:
1、 当10N =时,数值解与精确解为: (1) 表1、10N =时,数值解与精确解统计表
x 的值 0.1
0.2
0.3
0.4
0.5 u 的数值解 1.011069 1.042744 1.096904 1.176896 1.28789 u 的精确解 1.01005 1.040811 1.094174 1.173511 1.284025 两者之差 0.001019 0.001934 0.002729 0.003385 0.003864 x 的值 0.6
0.7
0.8
0.9
u 的数值解 1.437443 1.636363 1.900001 2.250209 u 的精确解 1.433329 1.632316 1.896481 2.247908 两者之差
0.004114
0.004046
0.00352
0.002301
将两者绘于同一图中如下:
(2)结论:可以看出数值解与精确解之间的误差很小, 在 210-这样一个数量级上。
我们也可以求出的
|-|数值解精确解范数 来,如下:
Norm1(|-|数值解精确解)=0.0269; Norm2(|-|数值解精确解)=0.0095; Normoo(|-|数值解精确解)=0.0041;
所以,可以得出中心差分格式求解该方程效果挺好。
2、当20N =时,将数值解与精确解绘于同一图像中,如下:
0.1
0.20.30.4
0.50.60.70.80.9
x 的值
u 的数值解与精确解
图1、N=10时,数值解与精确解图像
(2)结论:可以看出数值解与精确解之间的误差很小,
在 4
10-这样一个数量级上。
我们也可以求出的
|-|数值解精确解范数 来,如下:
Norm1(|-|数值解精确解)=0.0027; Norm2(|-|数值解精确解)=4
3.018810-⨯; Normoo(|-|数值解精确解)=5
4.166910-⨯;
所以,可以得出中心差分格式求解该方程效果挺好。
五、 程序 程序1
11.21.41.61.822.22.4
2.62.8x 的值
u 的数值解与精确解
图2、当N=100时,u 的数值解与精确解
%**************************************************************
%f221.m
function [q,f]=f211(x)
%q函数,f函数
q=4*x^2;
f=-2*exp(x^2);
%***************************************************************
程序2
%******************************************************************** %追赶法
function [x]=zhuiganfa(a,b,c,d)
%对角线下方的元素,个数比A少一个
% %对角线元素
%对角线上方的元素,个数比A少一个
%d为方程常数项
%用追赶法解三对角矩阵方程
r=size(a);
m=r(2);
r=size(b);
n=r(2);
if size(a)~=size(c)|m~=n-1|size(b)~=size(d)
error('变量不匹配,检查变量输入情况!');
end
%%
%LU分解
u(1)=b(1);
for i=2:n
l(i-1)=a(i-1)/u(i-1);
u(i)=b(i)-l(i-1)*c(i-1);
v(i-1)=(b(i)-u(i))/l(i-1);
end
%追赶法实现
%%
%求解Ly=d,"追"的过程
y(1)=d(1);
for i=2:n
y(i)=d(i)-l(i-1)*y(i-1);
end
%%
%求解Ux=y,"赶"的过程
x(n)=y(n)/u(n);
for i=n-1:-1:1
x(i)=y(i)/u(i);
x(i)=(y(i)-c(i)*x(i+1))/u(i);
end
%********************************************************************
程序3
%******************************************************************** *
%ODE2.m
function [x]=ODE2(x0,xN,u0,uN,N)
%中心差分求解
%x0,xN初始条件
%u0,uN边值条件
%N等分数
%步长
h=1/N;
%%
a(1:N-2)=-1/h^2; %对角线下方的元素,个数比A少一个
for i=1:N-1
z(i)=x0+i*h;
[q,f]=f211(z(i));
b(i)=2/h^2+q; %对角线元素
d(i)=f;
end
%对对角线元素进行调整
d(1)=d(1)+u0/h^2;
d(N-1)=d(N-1)+uN/h^2;
%%
[x]=zhuiganfa(a,b,a,d);%数值解
%******************************************************************** **
程序4
%**************************************************************
%main_chapter.m
%x0,xN初始条件
%u0,uN边值条件
%N等分数
%h步长
x0=0;xN=1;u0=1;
uN=exp(1);N=10;h=1/N;
[x]=ODE2(x0,xN,u0,uN,N);%数值解
z=x0+h:h:xN-h;
y=exp(z.^2); %真解
nr1(x-y)
plot(z,x,'og',z,y,'.r')
%***************************************************************。