差分法求解偏微分方程MAAB

合集下载

matlab有限差分法求解非齐次偏微分方程

matlab有限差分法求解非齐次偏微分方程

《使用 MATLAB 有限差分法求解非齐次偏微分方程》在科学和工程领域,偏微分方程是描述自然现象和过程中关键的数学工具。

非齐次偏微分方程作为其中的一个重要分支,在描述真实世界中的复杂现象方面具有广泛的应用。

而 MATLAB 作为一个强大的数学建模和计算工具,其有限差分法求解非齐次偏微分方程的能力受到了广泛关注。

在本文中,我们将以 MATLAB 为工具,探讨有限差分法如何用于求解非齐次偏微分方程,以及其中涉及的深度和广度。

1. 偏微分方程及有限差分法简介当我们研究自然界中的变化和现象时,经常会遇到连续变量之间的相关性和变化规律。

偏微分方程便是用来描述这些连续变量之间关系的数学工具。

而有限差分法则是一种数值计算方法,通过将连续的变量离散化,将偏微分方程转化为代数方程组,从而求解偏微分方程的数值解。

2. 非齐次偏微分方程的求解非齐次偏微分方程与常见的齐次偏微分方程相比,具有更复杂的边界和初始条件,因此其求解方法也更为复杂。

通过有限差分法,我们可以将非齐次偏微分方程转化为离散的代数方程组,进而求解出数值解。

3. MATLAB 中有限差分法的实现MATLAB 提供了丰富的数学建模和计算工具,包括用于求解偏微分方程的函数和工具箱。

通过调用这些函数和工具箱,我们可以方便地实现有限差分法对非齐次偏微分方程的求解。

4. 示例应用与个人观点我们将以一个实际的例子,展示 MATLAB 中有限差分法求解非齐次偏微分方程的过程,并共享对这一过程的个人观点和理解。

通过该示例,我们能更深刻地理解有限差分法在求解非齐次偏微分方程中的应用,以及其中涉及的数学原理和算法流程。

总结与回顾在本文中,我们以 MATLAB 为工具,探讨了有限差分法求解非齐次偏微分方程的深度和广度。

通过对有限差分法的基本原理和实际应用进行全面评估,我们详细介绍了有限差分法在求解非齐次偏微分方程中的具体步骤和流程。

我们也共享了在示例应用中对这一过程的个人理解和观点,以期帮助读者更全面、深刻和灵活地理解该主题。

matlab有限差分法求解非齐次偏微分方程

matlab有限差分法求解非齐次偏微分方程

matlab有限差分法求解非齐次偏微分方程【导语】本文将介绍matlab有限差分法在求解非齐次偏微分方程中的应用。

非齐次偏微分方程是数学和物理学中的常见问题之一,它们描述了许多实际系统的行为。

通过有限差分法,可以将偏微分方程转化为差分方程,从而利用计算机来求解。

本文将从原理、步骤和实例三个方面来分析非齐次偏微分方程的有限差分法求解过程。

【正文】一、原理有限差分法是将连续函数在一系列有限的点上进行逼近的方法。

它的基本思想是用差分代替微分,将偏导数转化为差分算子。

通过对空间和时间离散化,将非齐次偏微分方程转化为差分方程组,再利用数值计算的方法求解这个差分方程组,从而得到非齐次偏微分方程的近似解。

具体而言,有限差分法将求解区域划分为网格,并在网格上近似表示偏微分方程中的函数。

利用中心差分公式或向前、向后差分公式来近似计算偏导数。

通过将偏微分方程中的微分算子替换为差分近似,可以将方程转化为一个代数方程组,进而求解得到非齐次偏微分方程的近似解。

二、步骤1. 确定求解的区域和方程:首先要确定求解的区域,然后确定非齐次偏微分方程的形式。

在matlab中,可以通过定义一个矩阵来表示求解区域,并将方程转化为差分算子形式。

2. 离散化:将求解区域划分为网格,确定每个网格点的位置,建立网格点之间的连接关系。

通常,使用均匀网格来离散化求解区域,并定义网格点的坐标。

3. 建立差分方程组:根据偏微分方程的形式和离散化的结果,建立差分方程组。

根据中心差分公式,用网格点上的函数值和近邻点的函数值来近似计算偏导数。

将差分算子应用于非齐次偏微分方程的各个项,得到差分方程组。

4. 求解差分方程组:利用线性代数求解差分方程组。

将方程组转化为矩阵形式,利用matlab中的线性方程组求解功能,得到差分方程组的近似解。

通过调整求解区域划分的精细程度和差分算子的选取,可以提高求解的精度。

5. 回代和结果分析:将求解的结果回代到原非齐次偏微分方程中,分析其物理意义和数值稳定性。

最新偏微分方程的matlab解法

最新偏微分方程的matlab解法

求解双曲型方程的例子
例24.2.1 用 MATLAB 求解下面波动方程定解问题并动态显示解的分布
2u (2u t 2 x2
2u ) 0 y 2
u
|x
1
u
|x1
0,
u y
y 1
u y
y1 0
π
π
u(x,
y, 0)
atan[ sin(
2
x)], ut
( x,
y,
0)
2
cos(πx)
保持在100 °C,板的右边热量从板向环境空气定常流动,
t t 其他边及内孔边界保持绝缘。初始
°C ,于是概括为如下定解问题;
是板的温度为0 0
d u u0 , t
u 1 0 0 ,在 左 边 界 上
u 1, 在 右 边 界 上 n u = 0, 其 他 边 界 上 n
u t to 0
区域的边界顶点坐标为(-0.5,-0.8), (0.5,-0.8), (-0.5,0.8), (0.5,0.8)。 内边界顶点坐标(-0.05,-0.4), (-0.05,0.4) ,(0.05,-0.4), (0.05,0.4)。
第七步:单击Plot菜单中Parameter选项,打开Plot Selection对话框,选中Color,Height(3D plot)和 Show mesh三项.再单击Polt按钮,显示三维图形解, 如图22.5所示.
第八步:若要画等值线图和矢量场图,单击plot菜单 中parameter 选项,在plot selection对话框中选中 contour 和arrow两选项。然后单击plot按钮,可显示 解的等值线图和矢量场图,如图2.6所示。
网格划分,细化

【精品】差分法malab解波动方程

【精品】差分法malab解波动方程

【关键字】精品波动方程的差分逼近1、 问题介绍:波动方程是描述波在同性均质弹性介质内传播的微分方程,它也是线性双曲型偏微分方程的最简模型。

它的一般形式是:2、 区域剖分:构造上式的差分逼近,取空间步长h 和时间步长τ,用两族平行直线作矩形网格。

3、 离散格式:显格式:于网点),(n j t x 用Taylor 展式,并整理方程得:隐格式: 上述显格式并不是绝对稳定的差分格式,为了得到绝对稳定的差分格式,用第1-n 层、 n 层、1+n 层的中心差商的权平均去逼近xx u ,得到下列差分格式:⎪⎪⎪⎩⎪⎪⎪⎨⎧+-++--++-=+-+-++==----+-++-+++-++-]22)21(2[2),()()1()]()([2),(211111211211111221110210102100h u u u h u u u h u u u a u u u x x r x x r u x u n j n j n j n j n j n j n j n j n j n j n j n j j j j j j j j θθθττϕϕϕϕϕ其中10≤≤θ是参数。

当0=θ时就是显格式,而当41=θ时可以证明该格式绝对稳定。

隐格式的矩阵形式是:其中:4、格式稳定性:1)显格式:显格式稳定的充分必要条件是:网格比1<r 。

2)隐格式:当41=θ时隐格式绝对稳定。

5、数值例子:当1=a 时可以证明 )(),(t x e t x u +=是波动方程xu a t u 2222∂∂=∂∂ 的一个解析解。

那么,为了更精确的得到误差估计,在这里选取)(),(t x et x u +=作数值实验。

取1010≤≤≤≤t x ,并且将时间步长20等分,空间步长10等分(即10/1,20/1==h τ)。

这样网格比12/1/<==τah r ,从稳定性分析可知,此时格式稳定。

经计算得到下列数值结果:(注:下列数值结果按层排序,每层按x从小到大排序,每个结果包含三部分,分别是:估计值、真实值、误差)第1层1.161812 1.161834 0.000022 1.284001 1.284025 0.000024 1.419040 1.419068 0.0000271.568282 1.568312 0.000030 1.733220 1.733253 0.000033 1.915504 1.915541 0.0000372.116960 2.117000 0.000040 2.339602 2.339647 0.000045 2.585660 2.585710 0.000049第2层1.221365 1.221403 0.000038 1.349812 1.349859 0.000047 1.491773 1.491825 0.0000521.648664 1.648721 0.000057 1.822055 1.822119 0.0000642.013683 2.013753 0.0000702.225463 2.225541 0.000078 2.459517 2.459603 0.000086 2.718201 2.718282 0.000081第3层1.283981 1.284025 0.000044 1.419001 1.419068 0.000066 1.568237 1.568312 0.0000751.733170 1.733253 0.000083 1.915450 1.915541 0.0000912.116899 2.117000 0.0001012.339535 2.339647 0.000111 2.585590 2.585710 0.000120 2.857562 2.857651 0.000090第4层1.349816 1.349859 0.000043 1.491745 1.491825 0.000080 1.648626 1.648721 0.0000951.822014 1.822119 0.0001052.013636 2.013753 0.000116 2.225412 2.225541 0.0001282.459462 2.459603 0.000141 2.718142 2.718282 0.0001403.004087 3.004166 0.000079第5层1.419029 1.419068 0.000038 1.568226 1.568312 0.000086 1.733142 1.733253 0.0001111.915416 1.915541 0.0001252.116862 2.117000 0.000138 2.339494 2.339647 0.0001532.585546 2.585710 0.000164 2.857510 2.857651 0.0001413.158134 3.158193 0.000059第6层1.491791 1.491825 0.000034 1.648638 1.648721 0.000084 1.821997 1.822119 0.0001222.013611 2.013753 0.000142 2.225383 2.225541 0.000157 2.459431 2.459603 0.000172 2.718108 2.718282 0.0001743.004043 3.004166 0.000123 3.320077 3.320117 0.000040第7层1.568281 1.568312 0.000031 1.733177 1.733253 0.000076 1.915416 1.915541 0.0001252.116846 2.117000 0.000154 2.339474 2.339647 0.000173 2.585525 2.585710 0.000185 2.857485 2.857651 0.0001663.158101 3.158193 0.000092 3.490316 3.490343 0.000027第8层1.648692 1.648721 0.000029 1.822052 1.822119 0.0000672.013632 2.013753 0.0001212.225380 2.225541 0.000161 2.459420 2.459603 0.000183 2.718096 2.718282 0.0001863.004025 3.004166 0.000141 3.320059 3.320117 0.000058 3.669279 3.669297 0.000017第9层1.733226 1.733253 0.000027 1.915482 1.915541 0.0000592.116891 2.117000 0.0001092.339487 2.339647 0.000160 2.585525 2.585710 0.000185 2.857481 2.857651 0.0001703.158092 3.158193 0.000101 3.490313 3.490343 0.000030 3.857417 3.857426 0.000008第10层1.822096 1.822119 0.0000232.013700 2.013753 0.000052 2.225446 2.225541 0.0000952.459455 2.459603 0.000148 2.718110 2.718282 0.0001723.004029 3.004166 0.0001373.320061 3.320117 0.000056 3.669288 3.669297 0.0000084.055204 4.055200 0.000004第11层1.915523 1.915541 0.0000182.116954 2.117000 0.000046 2.339567 2.339647 0.0000792.585584 2.585710 0.000125 2.857511 2.857651 0.0001413.158106 3.158193 0.0000873.490329 3.490343 0.000014 3.857435 3.857426 0.0000104.263132 4.263115 0.000018第12层2.013740 2.013753 0.000013 2.225503 2.225541 0.000038 2.459540 2.459603 0.0000642.718191 2.718282 0.0000913.004079 3.004166 0.000087 3.320090 3.320117 0.0000273.669318 3.669297 0.0000214.055230 4.055200 0.000030 4.481721 4.481689 0.000032第13层2.116993 2.117000 0.000007 2.339621 2.339647 0.000026 2.585665 2.585710 0.0000442.857607 2.857651 0.0000453.158178 3.158193 0.000015 3.490378 3.490343 0.0000353.857478 3.857426 0.0000524.263170 4.263115 0.000055 4.711515 4.711470 0.000045第14层2.225540 2.225541 0.000001 2.459592 2.459603 0.000011 2.718265 2.718282 0.0000173.004180 3.004166 0.000014 3.320184 3.320117 0.000067 3.669391 3.669297 0.0000944.055285 4.055200 0.000085 4.481773 4.481689 0.000084 4.953089 4.953032 0.000057第15层2.339653 2.339647 0.000006 2.585719 2.585710 0.000010 2.857675 2.857651 0.0000243.158275 3.158193 0.000082 3.490491 3.490343 0.000148 3.857575 3.857426 0.0001504.263241 4.263115 0.000127 4.711583 4.711470 0.0001135.207048 5.206980 0.000068第16层2.459619 2.459603 0.000016 2.718319 2.718282 0.0000373.004247 3.004166 0.0000813.320275 3.320117 0.000158 3.669515 3.669297 0.0002184.055406 4.055200 0.0002064.481866 4.481689 0.000177 4.953174 4.953032 0.0001415.474030 5.473947 0.000082第17层2.585741 2.585710 0.000031 2.857725 2.857651 0.0000743.158343 3.158193 0.0001503.490577 3.490343 0.000234 3.857702 3.857426 0.0002764.263378 4.263115 0.0002644.711703 4.711470 0.0002335.207152 5.206980 0.000172 5.754702 5.754603 0.000099第18层2.718335 2.718282 0.0000533.004290 3.004166 0.000124 3.320343 3.320117 0.0002263.669602 3.669297 0.0003054.055527 4.055200 0.000327 4.482013 4.481689 0.0003244.953321 4.953032 0.0002885.474155 5.473947 0.0002086.049766 6.049647 0.000118第19层2.857735 2.857651 0.0000843.158380 3.158193 0.000187 3.490645 3.490343 0.0003023.857793 3.857426 0.0003684.263492 4.263115 0.000377 4.711853 4.711470 0.0003835.207320 5.206980 0.000340 5.754852 5.754603 0.0002496.359959 6.359820 0.000140第20层3.004290 3.004166 0.000124 3.320374 3.320117 0.000257 3.669668 3.669297 0.0003714.055622 4.055200 0.000422 4.482123 4.481689 0.000434 4.953469 4.953032 0.0004375.474336 5.473947 0.0003886.049943 6.049647 0.000296 6.686058 6.685894 0.000164上述数值结果是按照显格式分量形式用C编程所求得。

matlab求解初边值问题的偏微分方程

matlab求解初边值问题的偏微分方程

偏微分方程是描述自然界中动态过程的重要数学工具,在工程领域中,求解偏微分方程是很多实际问题的重要一步。

MATLAB作为一种强大的数学计算软件,提供了丰富的工具和函数来求解各种类型的偏微分方程。

本文将介绍使用MATLAB求解初边值问题的偏微分方程的方法和步骤。

一、MATLAB中的偏微分方程求解工具MATLAB提供了几种可以用来求解偏微分方程的工具和函数,主要包括:1. pdepe函数:用于求解偏微分方程初边值问题的函数,可以处理各种类型的偏微分方程,并且可以自定义边界条件和初始条件。

2. pdepeplot函数:用于绘制pdepe函数求解得到的偏微分方程的解的可视化图形,有助于直观地理解方程的解的特性。

3. pdetool工具箱:提供了一个交互式的图形用户界面,可以用来建立偏微分方程模型并进行求解,适用于一些复杂的偏微分方程求解问题。

二、使用pdepe函数求解偏微分方程初边值问题的步骤对于给定的偏微分方程初边值问题,可以按照以下步骤使用pdepe函数进行求解:1. 定义偏微分方程需要将给定的偏微分方程转化为标准形式,即将偏微分方程化为形式为c(x,t,u)∂u/∂t = x(r ∂u/∂x) + ∂(p∂u/∂x) + f(x,t,u)的形式。

2. 编写边界条件和初始条件函数根据实际问题的边界条件和初始条件,编写相应的函数来描述这些条件。

3. 设置空间网格选择合适的空间网格来离散空间变量,可以使用linspace函数来产生均匀分布的网格。

4. 调用pdepe函数求解偏微分方程将定义好的偏微分方程、边界条件和初始条件函数以及空间网格作为参数传递给pdepe函数,调用该函数求解偏微分方程。

5. 可视化结果使用pdepeplot函数绘制偏微分方程的解的可视化图形,以便对解的性质进行分析和理解。

三、实例分析考虑一维热传导方程初边值问题:∂u/∂t = ∂^2u/∂x^2, 0<x<1, 0<t<1u(0,t) = 0, u(1,t) = 0, u(x,0) = sin(πx)使用MATLAB求解该初边值问题的步骤如下:1. 定义偏微分方程将热传导方程化为标准形式,得到c(x,t,u) = 1, r = 1, p = 1, f(x,t,u) = 0。

偏微分方程的MATLAB解法

偏微分方程的MATLAB解法

引言微分方程定解问题有着广泛的应用背景。

人们用偏微分方程来描述、解释或者预见各种自然现象,并用于科学和工程技术的各个领域fll。

然而,对于广大应用工作者来说,从偏微分方程模型出发,使用有限元法或有限差分法求解都要耗费很大的工作量,才能得到数值解。

现在,MATLAB PDEToolbox已实现对于空间二维问题高速、准确的求解过程。

偏微分方程果一个微分方程中出现的未知函数只含一个自变量,这个方程叫做常微分方程,也简称微分方程;如果一个微分方程中出现多元函数的偏导数,或者说如果未知函数和几个变量有关,而且方程中出现未知函数对几个变量的导数,那么这种微分方程就是偏微分方程。

用的方法有变分法和有限差分法。

变分法是把定解问题转化成变分问题,再求变分问题的近似解;有限差分法是把定解问题转化成代数方程,然后用计算机进行计算;还有一种更有意义的模拟法,它用另一个物理的问题实验研究来代替所研究某个物理问题的定解。

虽然物理现象本质不同,但是抽象地表示在数学上是同一个定解问题,如研究某个不规则形状的物体里的稳定温度分布问题,由于求解比较困难,可作相应的静电场或稳恒电流场实验研究,测定场中各处的电势,从而也解决了所研究的稳定温度场中的温度分布问题。

着物理科学所研究的现象在广度和深度两方面的扩展,偏微分方程的应用范围更广泛。

从数学自身的角度看,偏微分方程的求解促使数学在函数论、变分法、级数展开、常微分方程、代数、微分几何等各方面进行发展。

从这个角度说,偏微分方程变成了数学的中心。

一、MATLAB方法简介及应用1.1 MATLAB简介ATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。

1.2 Matlab主要功能数值分析数值和符号计算工程与科学绘图控制系统的设计与仿真数字图像处理数字信号处理通讯系统设计与仿真财务与金融工程1.3 优势特点1) 高效的数值计算及符号计算功能,能使用户从繁杂的数学运算分析中解脱出来;2) 具有完备的图形处理功能,实现计算结果和编程的可视化;3) 友好的用户界面及接近数学表达式的自然化语言,使学者易于学习和掌握;4) 功能丰富的应用工具箱(如信号处理工具箱、通信工具箱等) ,为用户提供了大量方便实用的处理工具。

五点差分法(matlab)解椭圆型偏微分方程

五点差分法(matlab)解椭圆型偏微分方程

用差分法解椭圆型偏微分方程-(Uxx+Uyy)=(pi*pi-1)e^xsi n(pi*y) 0<x<2; 0<y<1U(0,y)=sin(pi*y),U(2,y)=e^ 2sin(pi*y); 0=<y<=1 U(x,0)=0, U(x,1)=0; 0=<x<=2先自己去看一下关于五点差分法的理论书籍Matlab程序:unction[p e u x y k]=wudianchafenfa(h,m, n,kmax,ep)% g-s迭代法解五点差分法问题%kmax为最大迭代次数%m,n为x,y方向的网格数,例如(2-0)/0.01=200;%e为误差,p为精确解syms temp;u=zeros(n+1,m+1);x=0+(0:m)*h;y=0+(0:n)*h;for(i=1:n+1)u(i,1)=sin(pi*y(i));u(i,m+1)=exp(1)*exp(1) *sin(pi*y(i));endfor(i=1:n)for(j=1:m)f(i,j)=(pi*pi-1)*exp(x (j))*sin(pi*y(i));endendt=zeros(n-1,m-1);for(k=1:kmax)for(i=2:n)for(j=2:m)temp=h*h*f(i,j)/4+(u(i ,j+1)+u(i,j-1)+u(i+1,j )+u(i-1,j))/4;t(i,j)=(temp-u(i,j))*( temp-u(i,j));u(i,j)=temp;endendt(i,j)=sqrt(t(i,j));if(k>kmax)break;endif(max(max(t))<ep)break;endendfor(i=1:n+1)for(j=1:m+1)p(i,j)=exp(x(j))*sin(p i*y(i));e(i,j)=abs(u(i,j)-exp( x(j))*sin(pi*y(i)));endEnd在命令窗口中输入:[p e u x y k]=wudianchafenfa(0.1,20, 10,10000,1e-6) k=147 surf(x,y,u) ;xlabel(‘x’);ylabel(‘y’); zlabel(‘u’);Title(‘五点差分法解椭圆型偏微分方程例1’)就可以得到下图surf(x,y,p)surf(x,y,e)[p e u x y k]=wudianchafenfa(0.05,4 0,20,10000,1e-6)[p e u x y k]=wudianchafenfa(0.025,80,40,10000,1e-6)为什么分得越小,误差会变大呢?我们试试运行:[p e u x y k]=wudianchafenfa(0.025, 80,40,10000,1e-8)K=2164surf(x,y,e)误差变小了吧还可以试试[p e u x y k]=wudianchafenfa(0.025, 80,40,10000,1e-10)K=3355误差又大了一点再试试[p e u x y k]=wudianchafenfa(0.025, 80,40,10000,1e-11)k=3952误差趋于稳定总结:最终的误差曲面与网格数有关,也与设定的迭代前后两次差值(ep,看程序)有关;固定网格数,随着设定的迭代前后两次差值变小,误差由大比变小,中间有一个最小值,随着又增大一点,最后趋于稳定。

基于MATLAB的偏微分方程差分解法

基于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 ++--=-++-=-。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

南京理工大学课程考核论文课程名称:高等数值分析论文题目:有限差分法求解偏微分方程姓名:罗晨学号:成绩:有限差分法求解偏微分方程一、主要内容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 τ+。

2.1.2古典显格式稳定性分析古典显格式(2-13)写成矩阵形式为 ()112k k k h h h u ra I raC u f τ+=-++⎡⎤⎣⎦(2-14)上面的C 矩阵的特征值是:2cos()1,2,......,1C j h j N λπ==-()()()212=122cos()121cos()14sin 1,2,......,12H j C ra ra ra ra j h ra j h j hra j N λλπππ=-+-+=--=-=-(2-15)使()1H ρ≤,即结论:当102ra ≤≤时,所以古典显格式是稳定的。

2.2古典隐格式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)原方程得到(2-19)为了方便把(2-19)写成11122k k k k kj jj j j k j 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 khh h ra I raC u u f r hττ++-=+=⎡⎤⎣⎦(2-23)误差传播方程()112k k h h ra I raC v v ++-=⎡⎤⎣⎦(2-24) 所以误差方程的系数矩阵为 使()1H ρ≤,显然1H j λ≤恒成立。

结论:对于0r ∀>,即任意网格比下,古典隐格式是绝对稳定的。

2.3Richardson 格式2.3.1Richardson 格式的推导 将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)代入原方程得到下式 (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.2Richardson 稳定性分析将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) 系数矩阵的特征值是228sin 102j hra πλλ+-=(2-35) 解得特征值为1,2λ={}212,=4sin 12j h Max ra πλλ>(恒成立)(2-37) 结论:上式对任意的网比都恒成立,即Richardson 格式是绝对不稳定的。

4.Crank-Nicholson 格式3.4.1Crank-Nicholson 格式的推导 将12k t t +=代入式(2-9)得1112221112222,2+1,1+1+1(,)(,)()()(())(,)(,)()()(())j j k j k k k k k k j j k j k k k k k k u 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-40) 即12122,2+1,1(,)(,)()()2(,)(,)()()2j j k j k k j j k j k k u u x t u x t o t u u x t u x t o t ττττ+++∂⎧=+⋅+⎪⎪∂⎨∂⎪=-⋅+⎪∂⎩(2-41) 得到如下方程()()12122,12,12(,)(,)()=()2(,)(,)()=()j j k k j k j j k k j k u x t u x t u o t u x t u x t u o tττττ++++⎧⎡⎤-∂⎪⎢⎥+⎪⎢⎥∂⎢⎥⎪⎣⎦⎨⎡⎤⎪-∂⎢⎥⎪-+⎢⎥∂⎪⎢⎥⎣⎦⎩(2-42) 所以12k t t +=处的一阶偏导数可以用下式表示:()()112212,1,122(,)(,)2(,)(,)11()()()22(,)(,)()j j k j j k k k j k j k j k j k u x t u x t u x t u x t u u o t t u x t u x t o τττττ+++++⎡⎤--∂∂⎡⎤⎢⎥+=-+⎢⎥⎢⎥∂∂⎣⎦⎢⎥⎣⎦-=+(2-43)将k t t =,11j j x x x x +-==和代入式(2-6)可以得到式(2-9); 同理1k t t +=,11j j x x x x +-==和代入式(2-6)可以得到2111112,122(,)2(,)(,)()()j k j k j k j k u x t u x t u x t u o h x h+++-++-+∂=+∂(2-44) 所以12k t t +=,j x 处的二阶偏导数用式(2-6)、(2-44)表示:(2-45)所以12k t t +=,j x 处的函数值可用下式表示: 11(,)(,)2j k j k f x t f x t +⎡⎤+⎣⎦(2-46) 原方程变为:()2212,1,,,12211()()()()()222k k j k j k j k j k j j u u u u f f o h t t x x α+++⎡⎤∂∂∂∂⎡⎤+-+=++⎢⎥⎢⎥∂∂∂∂⎣⎦⎣⎦(2-47) 将差分格式代入上式得:1111111122221(,)(,)(,)2(,)(,)(,)2(,)(,)21(,)(,)()2j k j k j k j k 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 u x t u x t u x t h h f x t f x t o h αττ++++-++-+--+-+⎡⎤-+⎢⎥⎣⎦⎡⎤=+++⎣⎦(2-48)为了方便写成:()11111111112222k k k k k k k k k k j j j j j j j j j j r u u u u u u u u f f ατ++++++-+-⎡⎤⎡⎤---++-+=+⎣⎦⎢⎥⎣⎦(2-49) 最后得到Crank-Nicholson 格式的差分格式为()()()()()1111111111=1+222k k k k k k k k j j j j j j j j r r r u u u r u u u f f αααατ+++++-+-⎡⎤+-+-+++⎢⎥⎣⎦(2-50) 2r hτ=其中,Crank-Nicholson 格式的差分格式的截断误差是22()o h τ+。

相关文档
最新文档