有限差分法求解偏微分方程MATLAB
matlab求解多元偏微分方程
matlab求解多元偏微分方程【导言】多元偏微分方程是数学中一类重要的方程,可以描述许多自然现象和物理过程。
而MATLAB作为一种计算机软件,它在求解多元偏微分方程方面具有强大的功能和广泛的应用。
本文将深入探讨MATLAB如何求解多元偏微分方程,并在此基础上展现其在实际问题中的应用价值。
【1. 多元偏微分方程简介】多元偏微分方程是指包含了多个自变量和多个未知函数的偏微分方程。
通常用来描述自然界和物理过程中多元系统的演化规律。
热传导、扩散、波动等现象都可以通过多元偏微分方程来描述。
而求解多元偏微分方程则是研究和应用中的关键问题。
【2. MATLAB在多元偏微分方程求解中的优势】MATLAB作为一种功能强大的数学软件,其在求解多元偏微分方程方面具有许多优势。
MATLAB提供了丰富的数值计算工具箱,如Partial Differential Equation Toolbox,可以帮助用户快速构建和求解多元偏微分方程。
MATLAB的编程语言具有简单易用的特点,用户可以使用MATLAB的脚本语言进行快速算法开发和实现。
MATLAB还提供了高效的并行计算能力,可以加速多元偏微分方程的求解过程。
【3. MATLAB求解多元偏微分方程的基本方法】MATLAB求解多元偏微分方程的基本方法包括有限差分法、有限元法、边界元法等。
下面将详细介绍有限差分法这一常用的方法。
有限差分法是基于差商近似的方法,将连续的偏微分方程转化为离散的差分方程。
该方法将求解区域离散成网格,通过迭代计算网格上的差分方程来逼近偏微分方程的解。
在MATLAB中,可以通过定义网格和差分方程来实现多元偏微分方程的求解。
具体步骤包括初始化网格、设定边界条件、构造差分方程和迭代求解。
MATLAB提供了方便的函数和工具来简化这一过程。
【4. MATLAB在实际问题中的应用】MATLAB在实际问题中的应用非常广泛,并且在多元偏微分方程的求解中具有重要的作用。
matlab有限差分法求解非齐次偏微分方程
matlab有限差分法求解非齐次偏微分方程【导语】本文将介绍matlab有限差分法在求解非齐次偏微分方程中的应用。
非齐次偏微分方程是数学和物理学中的常见问题之一,它们描述了许多实际系统的行为。
通过有限差分法,可以将偏微分方程转化为差分方程,从而利用计算机来求解。
本文将从原理、步骤和实例三个方面来分析非齐次偏微分方程的有限差分法求解过程。
【正文】一、原理有限差分法是将连续函数在一系列有限的点上进行逼近的方法。
它的基本思想是用差分代替微分,将偏导数转化为差分算子。
通过对空间和时间离散化,将非齐次偏微分方程转化为差分方程组,再利用数值计算的方法求解这个差分方程组,从而得到非齐次偏微分方程的近似解。
具体而言,有限差分法将求解区域划分为网格,并在网格上近似表示偏微分方程中的函数。
利用中心差分公式或向前、向后差分公式来近似计算偏导数。
通过将偏微分方程中的微分算子替换为差分近似,可以将方程转化为一个代数方程组,进而求解得到非齐次偏微分方程的近似解。
二、步骤1. 确定求解的区域和方程:首先要确定求解的区域,然后确定非齐次偏微分方程的形式。
在matlab中,可以通过定义一个矩阵来表示求解区域,并将方程转化为差分算子形式。
2. 离散化:将求解区域划分为网格,确定每个网格点的位置,建立网格点之间的连接关系。
通常,使用均匀网格来离散化求解区域,并定义网格点的坐标。
3. 建立差分方程组:根据偏微分方程的形式和离散化的结果,建立差分方程组。
根据中心差分公式,用网格点上的函数值和近邻点的函数值来近似计算偏导数。
将差分算子应用于非齐次偏微分方程的各个项,得到差分方程组。
4. 求解差分方程组:利用线性代数求解差分方程组。
将方程组转化为矩阵形式,利用matlab中的线性方程组求解功能,得到差分方程组的近似解。
通过调整求解区域划分的精细程度和差分算子的选取,可以提高求解的精度。
5. 回代和结果分析:将求解的结果回代到原非齐次偏微分方程中,分析其物理意义和数值稳定性。
差分法求解偏微分方程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有限差分法一、前言Matlab是一种广泛应用于科学计算和工程领域的计算机软件,它具有简单易学、功能强大、易于编程等优点。
有限差分法(Finite Difference Method)是一种常用的数值解法,它将微分方程转化为差分方程,通过对差分方程进行离散化求解,得到微分方程的数值解。
本文将介绍如何使用Matlab实现有限差分法。
二、有限差分法基础1. 有限差分法原理有限差分法是一种通过将微分方程转化为离散形式来求解微分方程的数值方法。
其基本思想是将求解区域进行网格划分,然后在每个网格点上进行逼近。
假设要求解一个二阶常微分方程:$$y''(x)=f(x,y(x),y'(x))$$则可以将其转化为离散形式:$$\frac{y_{i+1}-2y_i+y_{i-1}}{h^2}=f(x_i,y_i,y'_i)$$其中$h$为网格步长,$y_i$表示在$x_i$处的函数值。
2. 一维情况下的有限差分法对于一维情况下的常微分方程:$$\frac{d^2 y}{dx^2}=f(x,y,y')$$可以使用中心差分法进行离散化:$$\frac{y_{i+1}-2y_i+y_{i-1}}{h^2}=f(x_i,y_i,y'_i)$$这个方程可以写成矩阵形式:$$A\vec{y}=\vec{b}$$其中$A$为系数矩阵,$\vec{y}$为函数值向量,$\vec{b}$为右端项向量。
三、Matlab实现有限差分法1. 一维情况下的有限差分法假设要求解的方程为:$$\frac{d^2 y}{dx^2}=-\sin(x)$$首先需要确定求解区域和网格步长。
在本例中,我们将求解区域设为$[0,2\pi]$,网格步长$h=0.01$。
则可以通过以下代码生成网格:```matlabx = 0:0.01:2*pi;```接下来需要构造系数矩阵和右端项向量。
根据上面的公式,系数矩阵应该是一个三对角矩阵,可以通过以下代码生成:```matlabn = length(x)-2;A = spdiags([-ones(n,1), 2*ones(n,1), -ones(n,1)], [-1 0 1], n, n); ```其中`spdiags`函数用于生成一个稀疏矩阵。
(完整版)偏微分方程的MATLAB解法
引言偏微分方程定解问题有着广泛的应用背景。
人们用偏微分方程来描述、解释或者预见各种自然现象,并用于科学和工程技术的各个领域fll。
然而,对于广大应用工作者来说,从偏微分方程模型出发,使用有限元法或有限差分法求解都要耗费很大的工作量,才能得到数值解。
现在,MATLAB PDEToolbox已实现对于空间二维问题高速、准确的求解过程。
偏微分方程如果一个微分方程中出现的未知函数只含一个自变量,这个方程叫做常微分方程,也简称微分方程;如果一个微分方程中出现多元函数的偏导数,或者说如果未知函数和几个变量有关,而且方程中出现未知函数对几个变量的导数,那么这种微分方程就是偏微分方程。
常用的方法有变分法和有限差分法。
变分法是把定解问题转化成变分问题,再求变分问题的近似解;有限差分法是把定解问题转化成代数方程,然后用计算机进行计算;还有一种更有意义的模拟法,它用另一个物理的问题实验研究来代替所研究某个物理问题的定解。
虽然物理现象本质不同,但是抽象地表示在数学上是同一个定解问题,如研究某个不规则形状的物体里的稳定温度分布问题,由于求解比较困难,可作相应的静电场或稳恒电流场实验研究,测定场中各处的电势,从而也解决了所研究的稳定温度场中的温度分布问题。
随着物理科学所研究的现象在广度和深度两方面的扩展,偏微分方程的应用范围更广泛。
从数学自身的角度看,偏微分方程的求解促使数学在函数论、变分法、级数展开、常微分方程、代数、微分几何等各方面进行发展。
从这个角度说,偏微分方程变成了数学的中心。
一、MATLAB方法简介及应用1.1 MATLAB简介MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
1.2 Matlab主要功能数值分析数值和符号计算工程与科学绘图控制系统的设计与仿真数字图像处理数字信号处理通讯系统设计与仿真财务与金融工程1.3 优势特点1) 高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;2) 具有完备的图形处理功能,实现计算结果和编程的可视化;3) 友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;4) 功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。
有限差分法matlab程序
有限差分法matlab程序
有限差分法是一种常见的数值分析方法,它可以用来求解微分方程的解,称为数值解。
有限差分法的实现可以使用MATLAB,MATLAB 的强大的编程能力可以帮助我们更方便的实现有限差分法。
首先,我们需要了解什么是有限差分法。
有限差分法是一种数值计算的方法,它用一组等间距的数组来拟合一个函数,然后利用这些数组求出函数的值。
有限差分法可以用来解决复杂的微分方程,这是由于它能够将一个复杂的微分方程分解成一系列简单的微分方程,每个方程都可以用有限差分法来解决。
其次,使用MATLAB来实现有限差分法需要了解MATLAB中有限差分法的必要组件。
MATLAB中有限差分法的组件主要有:矩阵操作、函数计算、微分方程求解等。
首先,我们使用矩阵操作来实现函数的拟合,然后使用函数计算得到函数的值。
最后,我们使用微分方程求解器来解决复杂的微分方程。
最后,实现有限差分法在MATLAB中需要编写MATLAB程序。
MATLAB 程序首先需要编写矩阵操作程序,使用矩阵操作程序拟合函数;然后编写函数计算程序,计算函数的值;最后,编写微分方程求解程序,利用微分方程求解器来解决复杂的微分方程。
有限差分法是一种重要的数值分析方法,在很多科学中都有着广泛的应用,MATLAB可以让我们更方便的实现有限差分法,在微分方程的求解中发挥其独特的作用。
本文简要介绍了如何使用MATLAB来实现有限差分法,希望能为大家提供一些帮助。
(完整版)偏微分方程的MATLAB解法
引言偏微分方程定解问题有着广泛的应用背景。
人们用偏微分方程来描述、解释或者预见各种自然现象,并用于科学和工程技术的各个领域fll。
然而,对于广大应用工作者来说,从偏微分方程模型出发,使用有限元法或有限差分法求解都要耗费很大的工作量,才能得到数值解。
现在,MATLAB PDEToolbox已实现对于空间二维问题高速、准确的求解过程。
偏微分方程如果一个微分方程中出现的未知函数只含一个自变量,这个方程叫做常微分方程,也简称微分方程;如果一个微分方程中出现多元函数的偏导数,或者说如果未知函数和几个变量有关,而且方程中出现未知函数对几个变量的导数,那么这种微分方程就是偏微分方程。
常用的方法有变分法和有限差分法。
变分法是把定解问题转化成变分问题,再求变分问题的近似解;有限差分法是把定解问题转化成代数方程,然后用计算机进行计算;还有一种更有意义的模拟法,它用另一个物理的问题实验研究来代替所研究某个物理问题的定解。
虽然物理现象本质不同,但是抽象地表示在数学上是同一个定解问题,如研究某个不规则形状的物体里的稳定温度分布问题,由于求解比较困难,可作相应的静电场或稳恒电流场实验研究,测定场中各处的电势,从而也解决了所研究的稳定温度场中的温度分布问题。
随着物理科学所研究的现象在广度和深度两方面的扩展,偏微分方程的应用范围更广泛。
从数学自身的角度看,偏微分方程的求解促使数学在函数论、变分法、级数展开、常微分方程、代数、微分几何等各方面进行发展。
从这个角度说,偏微分方程变成了数学的中心。
一、MATLAB方法简介及应用1.1 MATLAB简介MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
1.2 Matlab主要功能数值分析数值和符号计算工程与科学绘图控制系统的设计与仿真数字图像处理数字信号处理通讯系统设计与仿真财务与金融工程1.3 优势特点1) 高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;2) 具有完备的图形处理功能,实现计算结果和编程的可视化;3) 友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;4) 功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。
偏微分方程的matlab解法
第三步:选取边界
首先选择Boundary菜单中Boundary Mode 命令,进入边界模式.然后单击Boundary菜单 中Remove All Subdomain Borders选项。从而 去掉子域边界,如图22 2.单击Boundary菜单 中Specify Boundary Conditions选项,打开 Boundary Conditions对话框,输入边界件.本 例取默认条件,即将全部边界设为齐次Dirichlet 条件,边界显示为红色. 如果想将几何与边界信息存储,可选Boundary 菜单中的Export Decomposed Geometrv.Boundary Cond's命令,将它们分 别存储在g、b变量中,并通过MATLAB形成M文 件.
已知求解域是方形区域,空间坐标的个数由具体问题确定.
例如,对于细杆导热,虽然是一维问题, 可以将宽度y虚拟出来,对应于y的边界 条件和初始条件按照题意制定
Boundary Mode
PDE Mode
PDE Specification,确定偏 微分方程类型共有四种:
椭圆形Elliptic
抛物型Parabolic
双曲型Hyperbolic
Mesh Mode
网格划分,细化
Solve,Plot
如果有初始条件(与t有关),则在 Solve的Parameters里有其设定,如果 没有初始条件(与t无关),则不必设 定Plot只是确定画图的参数,包括是否 动画,是否3D,是否画出等温线,是否 有箭头。。。
Save As
保存成M-file,自动生成
PDEToolbox注意事项
只能解决二维模型,一维的扩成二维,三 维的缩成二维,时间维不计算在内 公式类型,只能解决部分偏微分方程,由 公式类型决定 边界条件两种,Dirichlet和Neumann 初始条件
matlab有限差分法求解非齐次偏微分方程
《使用 MATLAB 有限差分法求解非齐次偏微分方程》在科学和工程领域,偏微分方程是描述自然现象和过程中关键的数学工具。
非齐次偏微分方程作为其中的一个重要分支,在描述真实世界中的复杂现象方面具有广泛的应用。
而 MATLAB 作为一个强大的数学建模和计算工具,其有限差分法求解非齐次偏微分方程的能力受到了广泛关注。
在本文中,我们将以 MATLAB 为工具,探讨有限差分法如何用于求解非齐次偏微分方程,以及其中涉及的深度和广度。
1. 偏微分方程及有限差分法简介当我们研究自然界中的变化和现象时,经常会遇到连续变量之间的相关性和变化规律。
偏微分方程便是用来描述这些连续变量之间关系的数学工具。
而有限差分法则是一种数值计算方法,通过将连续的变量离散化,将偏微分方程转化为代数方程组,从而求解偏微分方程的数值解。
2. 非齐次偏微分方程的求解非齐次偏微分方程与常见的齐次偏微分方程相比,具有更复杂的边界和初始条件,因此其求解方法也更为复杂。
通过有限差分法,我们可以将非齐次偏微分方程转化为离散的代数方程组,进而求解出数值解。
3. MATLAB 中有限差分法的实现MATLAB 提供了丰富的数学建模和计算工具,包括用于求解偏微分方程的函数和工具箱。
通过调用这些函数和工具箱,我们可以方便地实现有限差分法对非齐次偏微分方程的求解。
4. 示例应用与个人观点我们将以一个实际的例子,展示 MATLAB 中有限差分法求解非齐次偏微分方程的过程,并共享对这一过程的个人观点和理解。
通过该示例,我们能更深刻地理解有限差分法在求解非齐次偏微分方程中的应用,以及其中涉及的数学原理和算法流程。
总结与回顾在本文中,我们以 MATLAB 为工具,探讨了有限差分法求解非齐次偏微分方程的深度和广度。
通过对有限差分法的基本原理和实际应用进行全面评估,我们详细介绍了有限差分法在求解非齐次偏微分方程中的具体步骤和流程。
我们也共享了在示例应用中对这一过程的个人理解和观点,以期帮助读者更全面、深刻和灵活地理解该主题。
有限差分法求解偏微分方程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 τ+。
偏微分方程解的几道算例(差分、有限元)-含matlab程序(
《偏微分方程数值解》上机报告实验内容 1:分别用向前差分格式、向后差分格式及六点对称格式, 求解下列问题:222, 01, 0, (0, (1, 0, 1, (, 0 sin( (1.u u x t t x u t u t t u x x x x π⎧∂∂=+<<>⎪∂∂⎪⎨==>⎪⎪=+−⎩x 方向 0.1h =, t 方向0.01τ=.在 0.25t =时观察数值解与精确解 2sin( (1 u e x x x ππ−=+−的误差. (一算法描述:(二实验结果:1.误差的数值解结果数值对比(A“向前差分格式”程序:>>forward(0.1,0.01, 0.25Current plot heldans =0.00000.00270.00510.00700.00820.00870.00820.00700.00510.00270.0000(B“向后差分格式”程序:>>back(0.1,0.01, 0.25Current plot heldans =0.0000-0.0037-0.0071-0.0097-0.0114-0.0120-0.0114-0.0097-0.0071 -0.00370.0000(C“六点差分格式”程序:>>six(0.1,0.01, 0.25Current plot heldans =0.0000-0.0005-0.0009-0.0013-0.0015-0.0016-0.0015-0.0013-0.0009-0.00050.0000注:这里的"误差"=精确解-数值解.2.精确解与数值解结果图像对比“向前差分格式”:注:曲线表示精确解,"o"表示数值解(t=0.25时. “向后差分格式”:注:曲线表示精确解,"o"表示数值解(t=0.25时. “六点差分格式” :注:曲线表示精确解,"O"表示数值解(t=0.25时.(三结果分析通过(一 , (二 ,我们检验了三种方法都能很好的求解此一维热传导方程,其中明显能发现“六点对称格式”的误差更小。
matlab 求解偏微分方程组
一、介绍Matlab是一种强大的数学计算工具,用于解决各种数学问题,包括求解偏微分方程组。
偏微分方程组是描述自然界中许多物理现象的数学模型,其求解对于科学研究和工程应用具有重要意义。
在Matlab中,可以通过多种方法来求解偏微分方程组,包括有限差分方法、有限元方法、谱方法等。
本文将对Matlab中求解偏微分方程组的方法进行介绍和讨论。
二、有限差分方法有限差分方法是一种常用的求解偏微分方程组的数值方法。
其基本思想是将连续的变量离散化为有限个点,并利用差分逼近来近似偏微分方程的导数。
在Matlab中,可以通过编写相应的差分方程组来求解偏微分方程组。
对于二维热传导方程,可以将偏导数用中心差分逼近,并构建相应的差分方程来求解温度分布。
通过循环迭代的方式,可以逐步逼近偏微分方程的解,并得到数值解。
三、有限元方法有限元方法是另一种常用的求解偏微分方程组的数值方法。
其基本思想是将求解区域离散化为有限个单元,并在每个单元内建立近似函数来逼近原始方程。
在Matlab中,可以利用有限元建模工具箱来构建离散化的网格,并编写相应的有限元方程来求解偏微分方程组。
对于弹性力学方程,可以利用有限元方法来求解结构的位移和应力分布。
通过求解线性方程组,可以得到离散化网格上的数值解。
四、谱方法谱方法是一种利用特定基函数展开偏微分方程解的方法。
其基本思想是选取适当的基函数,并通过展开系数来得到偏微分方程的数值解。
在Matlab中,可以通过谱方法工具箱来实现对偏微分方程组的求解。
对于波动方程,可以利用正交多项式展开来逼近波函数,通过选取适当的基函数和展开系数,可以得到偏微分方程的数值解。
五、总结在Matlab中,有多种方法可以用来求解偏微分方程组,包括有限差分方法、有限元方法、谱方法等。
这些方法各有特点,适用于不同类型的偏微分方程和求解问题。
通过合理地选择方法和编写相应的数值算法,可以在Matlab中高效地求解偏微分方程组,为科学研究和工程应用提供重要支持。
MATLAB中的偏微分方程数值解法
MATLAB中的偏微分方程数值解法偏微分方程(Partial Differential Equations,PDEs)是数学中的重要概念,广泛应用于物理学、工程学、经济学等领域。
解决偏微分方程的精确解往往非常困难,因此数值方法成为求解这类问题的有效途径。
而在MATLAB中,有丰富的数值解法可供选择。
本文将介绍MATLAB中几种常见的偏微分方程数值解法,并通过具体案例加深对其应用的理解。
一、有限差分法(Finite Difference Method)有限差分法是最为经典和常用的偏微分方程数值解法之一。
它将偏微分方程的导数转化为差分方程,通过离散化空间和时间上的变量,将连续问题转化为离散问题。
在MATLAB中,使用有限差分法可以比较容易地实现对偏微分方程的数值求解。
例如,考虑一维热传导方程(Heat Equation):∂u/∂t = k * ∂²u/∂x²其中,u为温度分布随时间和空间的变化,k为热传导系数。
假设初始条件为一段长度为L的棒子上的温度分布,边界条件可以是固定温度、热交换等。
有限差分法可以将空间离散化为N个节点,时间离散化为M个时刻。
我们可以使用中心差分近似来计算二阶空间导数,从而得到以下差分方程:u(i,j+1) = u(i,j) + Δt * (k * (u(i+1,j) - 2 * u(i,j) + u(i-1,j))/Δx²)其中,i表示空间节点,j表示时间步。
Δt和Δx分别为时间和空间步长。
通过逐步迭代更新节点的温度值,我们可以得到整个时间范围内的温度分布。
而MATLAB提供的矩阵计算功能,可以大大简化有限差分法的实现过程。
二、有限元法(Finite Element Method)有限元法是另一种常用的偏微分方程数值解法,特点是适用于复杂的几何形状和边界条件。
它将求解区域离散化为多个小单元,通过构建并求解代数方程组来逼近连续问题。
在MATLAB中,我们可以使用Partial Differential Equation Toolbox提供的函数进行有限元法求解。
matlab有限差分法求解椭圆型偏微分方程
matlab有限差分法求解椭圆型偏微分方程
有限差分法是一种求解偏微分方程的经典数值方法,它将连续的
偏微分方程转化为离散的代数方程,从而能够使用计算机进行计算。
在 MATLAB 中,我们可以使用有限差分法来求解椭圆型偏微分方程。
椭圆型偏微分方程通常用来描述有稳态的空间分布的物理现象,
如稳态的温度分布。
其通用的数学形式为:
∇·(a(x,y)∇u(x,y)) + f(x,y) = 0
其中,u(x,y) 是要求解的函数,a(x,y) 是定义在区域Ω上的
函数,它代表了该区域内各点的材料特性,f(x,y) 是特定的源项函数。
有限差分法将区域Ω划分为离散的点集,然后通过对这些点之
间的差分运算进行逐点计算,得到离散式。
例如,可以使用中心差分
法对 u(x,y) 在某个点(x0,y0) 的二阶偏导数进行离散化,得到:(u(x0+Δx,y0) - 2u(x0,y0) + u(x0-Δx,y0)) / Δx^2
同样,对于 a(x,y)在点(x0,y0)的取值,我们也可以使用中心差
分法进行离散化:
(a(x0+Δx,y0) + a(x0,y0)) / 2
经过离散化后,我们可以将偏微分方程变为一个线性代数方程组,使用 MATLAB 的矩阵运算功能进行求解。
需要注意的是,在实际计算中,由于矩阵求逆时存在数值不稳定的问题,因此需要对矩阵进行一
定的处理,如使用迭代法或预处理技术等。
总之,有限差分法是一种常用的求解偏微分方程的数值方法,在MATLAB 中也有相应的实现。
通过离散化连续的偏微分方程,我们能够
在计算机上高效地求解椭圆型偏微分方程,提高计算效率,解决实际
问题。
有限差分 matlab
有限差分matlab有限差分方法是一种常用的数值计算技术,用于求解偏微分方程。
在本文中,我们将介绍有限差分方法在Matlab中的实现步骤。
有限差分方法的基本思想是将求解区域离散化为有限个网格点,并使用差分近似代替微分运算,从而将原问题转化为代数方程组的求解。
在Matlab 中,我们可以通过以下步骤来实现有限差分方法。
第一步:初始化求解区域和边界条件首先,我们需要确定求解区域的大小和边界条件。
在Matlab中,我们可以使用矩阵来表示求解区域,其中每个元素代表一个网格点。
例如,如果求解区域的大小为NxM,我们可以创建一个大小为NxM的矩阵来表示求解区域。
同时,我们还需要确定边界条件。
边界条件可以分为三类:Dirichlet边界条件,Neumann边界条件和混合边界条件。
对于Dirichlet边界条件,我们可以将边界网格点的值直接设置为给定的边界值。
对于Neumann边界条件,我们可以使用差分近似来计算边界网格点的值。
对于混合边界条件,我们需要根据具体情况来确定如何处理。
第二步:离散化方程接下来,我们需要将求解的偏微分方程离散化。
具体来说,我们需要使用差分近似来替代微分运算。
有限差分方法主要有两种形式:前向差分和中心差分。
在前向差分中,我们使用当前时刻的值来代替时间导数的近似值。
在中心差分中,我们使用当前时刻和上一个时刻的值来代替时间导数的近似值。
在Matlab中,我们可以使用矩阵运算来同时对整个求解区域进行离散化。
具体来说,我们可以使用矩阵乘法和矩阵加法来表示离散化的方程。
例如,对于一个二维的偏微分方程,我们可以使用矩阵乘法来表示空间导数近似的部分,然后使用矩阵加法来表示时间导数近似的部分。
第三步:构建代数方程组离散化后的偏微分方程可以被表示为一个代数方程组。
通常,我们可以使用线性代数的方法来求解这个方程组。
在Matlab中,我们可以使用矩阵和向量的运算来表示代数方程组。
具体来说,我们可以使用矩阵乘法和向量的加法来表示代数方程组的求解过程。
matlab中求解偏微分方程
文章标题:深入探讨 Matlab 中求解偏微分方程的方法和应用一、引言在现代科学和工程中,偏微分方程是一种重要的数学工具,用于描述各种自然现象和物理过程,如热传导、流体力学、电磁场等。
Matlab 是一个用于科学计算和工程应用的强大工具,提供了丰富的数值计算和数据可视化功能,其中包括求解偏微分方程的工具箱,本文将深入探讨在Matlab中求解偏微分方程的方法和应用。
二、基本概念偏微分方程(Partial Differential Equation, PDE)是关于多个变量的函数及其偏导数的方程。
在物理学和工程学中,PDE广泛应用于描述空间变量和时间变量之间的关系。
在Matlab中,求解PDE通常涉及到确定PDE类型、边界条件、初始条件和求解方法等步骤。
三、求解方法1. 有限差分法(Finite Difference Method)有限差分法是求解PDE的常用数值方法之一,它将PDE转化为差分方程组,并通过迭代求解得到数值解。
在Matlab中,可以使用pdepe 函数来求解具有一维、二维或三维空间变量的PDE,该函数可以直接处理边界条件和初始条件。
2. 有限元法(Finite Element Method)有限元法是另一种常用的数值方法,它将求解区域离散化为有限数量的单元,并通过单元之间的插值来逼近PDE的解。
Matlab提供了pdenonlin函数来求解非线性PDE,该函数支持各种复杂的几何形状和非线性材料参数。
3. 特征线法(Method of Characteristics)特征线法适用于一维双曲型PDE的求解,该方法基于特征线方程的性质来构造数值解。
在Matlab中,可以使用pdegplot函数来展示特征线,并通过构造特征线网格来求解PDE。
四、实际应用1. 热传导方程的求解假设我们需要求解一个长条形的材料中的热传导方程,可以通过在Matlab中定义边界条件和初始条件,然后使用pdepe函数来求解得到温度分布和热流线。
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. 差分法的优势和局限性差分法作为一种数值方法,具有许多优势和应用范围,但也存在一些局限性。
优势:- 简单易懂:差分法的思想直观明了,易于理解和实现。
- 适应性广泛:差分法可以用于求解各种类型的偏微分方程,包括常微分方程和偏微分方程。
- 准确度可控:通过调整网格步长,可以控制数值解的精度和稳定性。
局限性:- 离散误差:当空间或时间步长过大时,差分法的数值解可能会出现较大的离散误差。
- 边界条件:合适的边界条件对于差分法的求解结果至关重要,不合理的边界条件可能导致数值解的不准确。
- 计算效率:对于复杂的偏微分方程,差分法的计算成本可能较高,需要耗费大量的计算资源和时间。
matlab在有限差分法数值计算中的应用
matlab在有限差分法数值计算中的应用1.前言有限差分法是一种常用的数值计算方法,常用于求解偏微分方程。
Matlab是一种非常强大的数值计算软件,也被广泛应用于各种科学计算中。
本文将围绕有限差分法在Matlab中的应用进行讨论。
2.有限差分法有限差分法是一种数值计算方法,通常用于求解偏微分方程。
其基本思想是将偏微分方程中的导数用差分的形式进行近似。
这样就可以把偏微分方程转化为差分方程,进而用数值方法求解。
在有限差分法中,将求解区域离散化为网格,并在网格上通过差分近似来求解偏微分方程。
有限差分法的基本思想是将导数转化为差分形式。
由于导数的定义是极限形式的,因此我们可以通过极限的概念来推导差分近似。
例如,对于函数$f(x)$,它在$x=a$处的导数为$f'(a)$,则可以表示为:$$f'(a)=\lim_{h\to0}\frac{f(a+h)-f(a)}{h}$$如果我们取一个无穷小的$h$,则可以得到:$$f'(a)\approx\frac{f(a+h)-f(a)}{h}$$这就是一个一阶中心差分近似。
同样,我们还可以用其他的差分形式来表示导数。
有限差分法的核心就是建立差分方程。
在建立差分方程时,我们需要先将求解区域离散化为网格,然后在每个网格点上建立差分方程。
通常情况下,差分方程和原始的偏微分方程形式相同,只是将偏导数用差分近似来替代。
例如,对于泊松方程:$$\frac{\partial^2\phi}{\partialx^2}+\frac{\partial^2\phi}{\partial y^2}=f(x,y)$$我们可以将其离散化为网格上的差分方程:$$\frac{\phi_{i-1,j}-2\phi_{i,j}+\phi_{i+1,j}}{\Deltax^2}+\frac{\phi_{i,j-1}-2\phi_{i,j}+\phi_{i,j+1}}{\Deltay^2}=f_{i,j}$$其中,$\Delta x$和$\Delta y$表示网格的大小,$\phi_{i,j}$表示在网格点$(x_i,y_j)$处的解,$f_{i,j}$表示在网格点$(x_i,y_j)$处的源项。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
南京理工大学课程考核论文课程名称:高等数值分析论文题目:有限差分法求解偏微分方程姓名:罗晨学号:成绩:有限差分法求解偏微分方程一、主要内容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 k t t x x hτ++-=⎧⎨-=⎩ (2-2) 古典显格式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 ki i i i i i u u u u u f h ατ++-⎡⎤--+-=⎢⎥⎣⎦(2-11) ()11122k k kk 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 τ+。
2.1.2 古典显格式稳定性分析古典显格式(2-13)写成矩阵形式为()112k k k h h hu ra I raC u f τ+=-++⎡⎤⎣⎦ (2-14)12212,(,,......,,)k k k k kh N N r u u u u u h τ--==其中。
(1)(1)01010100101010N N C -⨯-⎡⎤⎢⎥⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦ 上面的C 矩阵的特征值是:2cos()1,2,......,1C j h j N λπ==-()12H ra I raC =-+()()()212=122cos()121cos()14sin 1,2,......,12H j C ra ra ra ra j h ra j h j h ra j N λλπππ=-+-+=--=-=-(2-15)使()1H ρ≤,即2114sin 12j hra π-≤-≤ 102ra ≤≤结论:当102ra ≤≤时,所以古典显格式是稳定的。
古典隐格式2.2.1 古典隐格式的推导 将1k t t -=代入式 (2-3)得21,11(,)(,)()()(())j k j k j k k k k k uu x t u x t t t o t t t---∂=+-+-∂ (2-16) 21,(,)(,)()()j k j k j k uu x t u x t o tττ-∂=-⋅+∂ (2-17)得到对时间的一阶偏导数1,(,)(,)()=()j k j k j k u x t u x t u o t ττ--∂+∂ (2-18) 将式(2-9)、(2-18)原方程得到11122(,)(,)(,)2(,)(,)(,)()j k j k j k j k j k j k u x t u x t u x t u x t u x t f x t o h h αττ-+---+⎡⎤-=++⎢⎥⎣⎦(2-19)为了方便把(2-19)写成11122k k k k kj jj j j kj u u u u u f h ατ-+-⎡⎤--+-=⎢⎥⎢⎥⎣⎦(2-20) ()11122k k kk k kj jj j j j u u uu u f h τατ-+----+= (2-21)最后得到古典隐格式的差分格式为()111(12)k k k k k j j j jj ra u r u u u f ατ-+-+-+=+ (2-22)2r hτ=其中,古典隐格式的差分格式的截断误差是2()o h τ+。
2.2.2 古典隐格式稳定性分析将古典隐格式(2-22)写成矩阵形式如下()1212()k k kh h hra I raC u u f r h ττ++-=+=⎡⎤⎣⎦(2-23) 误差传播方程()112k k h h ra I raC v v ++-=⎡⎤⎣⎦(2-24) ()12,A ra I raC B I=+-=所以误差方程的系数矩阵为()1112H A ra I raC --==+-⎡⎤⎣⎦()11,2,......,1122cos H j j N ra ra j hλπ==-+-使()1H ρ≤,显然()21122cos()112(1cos())114sin 2H j ra ra j h ra j h j h ra λπππ=+-=+-=+1H j λ≤恒成立。
结论:对于0r ∀>,即任意网格比下,古典隐格式是绝对稳定的。
Richardson 格式2.3.1 Richardson 格式的推导 将11k k t t t t +-==和,代入式(2-3)得21,1121,11(,)(,)()()(())(,)(,)()()(())i k i k i k k k k k i k i k i k k k k ku u x t u x t t t o t t t u u x t u x t t t o t t t +++---∂⎧=+-+-⎪⎪∂⎨∂⎪=+-+-⎪∂⎩(2-25) 即21,21,(,)(,)()()(,)(,)()()i k i k i k i k i k i ku u x t u x t o t u u x t u x t o t ττττ+-∂⎧=+⋅+⎪⎪∂⎨∂⎪=-⋅+⎪∂⎩(2-26) 由此得到可得 211,(,)(,)()()2i k i k i k u x t u x t uo t ττ++-∂=+∂ (2-27)将式(2-9) 、(2-27)代入原方程得到下式2211112(,)(,)(,)2(,)(,)(,)()2i 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-28)为了方便可以把式(2-28)写成1111222k k k k k k i i i i i i u u u u u f h ατ+-+-⎡⎤--+-=⎢⎥⎣⎦(2-29) 即()111122k k kk k k i i i i i i u u uu u f h τατ+-+----+= (2-30)最后得到Richardson 显格式的差分格式为()1111222k k k k k k i i i i i i u r u u u u f ατ+-+-=-+++(2-31)2r h τ=其中,古典显格式的差分格式的截断误差是22()o h τ+。
2.3.2 Richardson 稳定性分析将Richardson 显格式(2-31)写成如下矩阵形式()11222k k k k h h h h u r C I u u f ατ+-=-++ (2-32)误差传播方程矩阵形式()1122k k k h h hkkh hv r C I v v v v α+-⎧=-+⎪⎨=⎪⎩ (2-33) 再将上面的方程组写成矩阵形式112(2)0k k k hk ra C I I v ww I v ++-⎛⎫⎡⎤== ⎪⎢⎥⎣⎦⎝⎭ (2-34) 系数矩阵的特征值是4cos()4110j ra j h ra π-⎡⎤∧=⎢⎥⎣⎦228sin 102j hra πλλ+-= (2-35) 解得特征值为1,2λ=(2-36){}212,=4sin 12j h Max ra πλλ> (恒成立)(2-37)结论:上式对任意的网比都恒成立,即Richardson 格式是绝对不稳定的。