《水环境数学模型》(P39-47)隐式差分法求解

《水环境数学模型》(P39-47)隐式差分法求解
《水环境数学模型》(P39-47)隐式差分法求解

河流水质模拟计算思路

河流水质模型采用如下方程:

S dt

dC x

C E x

C u

t

C L

++

??=??+??2

(1)

中:C —水质指标浓度;

L E —纵向扩散系数;

u —平均流速;

S —外部的源和漏(如支流的影响等);

t —时间 ;

x —所考察的距离。

以《水环境数学模型》(P39-47)隐式差分法求解如下:

由于dt dC 为水质指标浓度C 的函数,不妨设KC dt dC =,忽略支流影响。则方程(1)可化成下面形式:

)

(2

1211

11

2

1

1

1111

j

i j i

j

i j i i

j i j i

j i i

j

i

j i

C C K x

C C u x

C C C E t

C C -+-+-+++++-

?--?+-=?-

(2)

对方程(2)整理得:

)2

(

)1(

)2

2

1(

11112

1

12

1

12

K x

u C x

u t

C C x

E C K x

E t

C x

E i j

i i j

i j i i j i

i j i i -

?+?-

?=?-

+

?+?+?--+-+++

(3)

令: 2

x

E i i ?-

2

2112

K x

E t

i i +

?+?=

β

2

x

E i i ?-

)

2

(

)1(

11K x

u C x

u t

C i j

i i j

i i -?+?-

?=-δ

方程(3)可简化为:

i j i i j i

i j i i C C C δγβα=++++++-1

11

1

1 (4)

边界条件: i=1时 '11

1

11

1

1δγβ=+++j j C C 2

11'

1x

E ?+

=δδ

i=n 时 1

11112+-+++-=j n j n j n C C C

n j n

n j n n C C δβα=+++-1

'

1

1'

n n n γαα-='

n n n γββ2'

+=

矩阵形式:

?

?????

????????

?---'

'

1112

2

211

n n

n n n βαγβαγβαγβ

???????

?????????=???????

?????????-+-n n j n n C C C C δδδδ12'11

121

河流水质模拟计算流程符号说明: Dx —空间步长 Dt —时间步长

Cj —j 时刻各断面的污染物浓度 E —j 时刻各断面的纵向扩散系数 U —j 时刻各断面平均流速 K —污染物的衰减系数 NT —模拟的次数

其中:A,a,b,c,d,x 为计算辅助矩阵。 计算流程图见图一

图一河流水质隐式差分法体系计算框图

算例采用《水环境数学模型》(P39—47)例题:

已知:整个河流看成顺直均匀流,E=2KM2/h,U=5km/h,K=0.151/h,Dt=0.1h,Dx=0.5km 在x=0处有一个排放时间为1小时的点源。

此程序的设计有一个主程序(shuizhi),两个子程序(HLSZAD和fzhuigan)组成,其中主函数(shuizhi)用于控制模拟次数,初始量的输入以及输出j+1时刻个断面的浓度。其调用子函数(HLSZAD)。子函数(HLSZAD)用于整理三对角方程,为求解做准备,其调用子函数(fzhuigan)。子函数(fzhuigan)是为了求解三对角方程,其返回值为j+1时刻第二个计算断面及其后各断面的浓度。

利用上述方法计算结果见表1

表一书中计算结果与自己编程结果对比表

注:(1)“理论”为书中计算结果,“实际”自己编程结果。

(2)程序中书中边界断面为0断面,而编程中边界断面为第1端面

总体上是可以的,只是0.2h末时第8,10,12,14,16断面浓度相差较大,一小时末第16断面浓度相差较大。估计0.2h末时第8,10,12,14,16断面浓度为书中记录错误。一小时末第16断面偏差大现在还不清楚。

开始编程时将1小时作为一个计算时间段,即j=10时的瞬间,第0断面其浓度突然由10mg/l突变成0mg/l,这次的突变对后面各断面是没有影响的,而在初次编程时考虑了突变

的影响(不合理),导致j=10时前几个断面与书中所给浓度偏差较大,在10%左右。 书中的例子是以BOD 5来计算的,其对COD MN 和氨氮也同样成立。因为COD MN 和氨氮的变化均为一级反应,因此将两者可以化为统一的数学表达式:

P KC dt

dC +-=

其中:K —COD MN 或氨氮的综合衰减系数

P —常数,其为其他物质对COD MN 或氨氮浓度的影响。 附录:MATLAB 程序 主函数:(shuizhi )

function shuizhi E(18)=0; E(:)=2; U(18)=0; U(:)=5; K=0.0151; Cj(18)=0; Cj(1)=10; Dt=0.1; Dx=0.5; j=0; while (j<10)

Cj=HLSZAD(E,U,Dt,Dx,K,Cj); j=j+1; if j>=10 Cj(1)=0; end

n=length(Cj);

fprintf('\n 第%d′次各断面浓度\n',j) for i=1:n

fprintf('\t%f',Cj(i)); end end

子函数(HLSZAD )

function [Cj]=HLSZAD(E,U,Dt,Dx,K,Cj) %E- j 时刻各断面的纵向扩散系数 %U-j 时刻各断面的平均流速 %Dt-时间步长 %Dx-空间步长 %K-综合衰减系数 %Cj-j 时刻各断面浓度

n=length(U)-1;

a(n)=0;

b(n)=0;

c(n)=0;

d(n)=0;

for i=1:n

a(i)=-E(i+1)/Dx^2;

b(i)=1/Dt+2*E(i+1)/Dx^2+K/2;

c(i)=-E(i+1)/Dx^2;

d(i)=Cj(i+1)*(1/Dt-U(i+1)/Dx)+Cj(i)*(U(i+1)/Dx-K/2); end

A=zeros(n,n);

for i=1:n

A(i,i)=b(i);

if(i>1)

A(i,i-1)=a(i);

end

if(i

A(i,i+1)=c(i);

end

end

A(n,n-1)=a(n)-c(n);

A(n,n)=b(n)+2*c(n);

d(1)=d(1)-a(1)*Cj(1);

CK=fzhuigan(A,d);%解三对角方程

Cj(2:n+1)=CK;

子函数(fzhuigan)

function [x]=fzhuigan(A,b)

n=rank(A);

for i=1:n-1

m=A(i+1,i)/A(i,i);

A(i+1,i:i+1)=A(i+1,i:i+1)-m*A(i,i:i+1);

b(i+1)=b(i+1)-m*b(i);

end

x=zeros(1,n);

x(n)=b(n)/A(n,n);

for i=n-1:-1:1

x(i)=(b(i)-A(i,i+1)*x(i+1))/A(i,i);

end

对流扩散方程有限差分方法.

对流扩散方程有限差分方法 求解对流扩散方程的差分格式有很多种,在本节中将介绍以下3种有限差分格式:中心差分格式、Samarskii 格式、Crank-Nicolson 型隐式差分格式。 3.1 中心差分格式 时间导数用向前差商、空间导数用中心差商来逼近,那么就得到了(1)式的中心差分格式]6[ 2 1 11 1122h u u u v h u u a u u n j n j n j n j n j n j n j -+-+++-=-+-τ (3) 若令 h a τ λ=,2h v τ μ=,则(3)式可改写为 )2()(2 111111 n j n j n j n j n j n j n j u u u u u u u -+-+++-+--=μλ (4) 从上式我们看到,在新的时间层1+n 上只包含了一个未知量1 +n j u ,它可以由时间层n 上的值n j u 1-,n j u ,n j u 1+直接计算出来。因此,中心差分格式是求解对 流扩散方程的显示格式。 假定),(t x u 是定解问题的充分光滑的解,将1 +n j u ,n j u 1+,n j u 1-分别在),(n j t x 处 进行Taylor 展开: )(),(),(211ττO t u t x u t x u u n j n j n j n j +??? ?????+==++ )(2),(),(3 22211 h O x u h x u h t x u t x u u n j n j n j n j n j +????????+????????+==++ )(2),(),(3 22211 h O x u h x u h t x u t x u u n j n j n j n j n j +????????+????????-==-- 代入(4)式,有 2 111 1122),(h u u u v h u u a u u t x T n j n j n j n j n j n j n j n j -+-+++---+-= τ )()()(2222 h O v x u v h O a x u a O t u n j n j n j ?-????????-?+????????++????????=τ )()()(222h O v a O x u v x u a t u n j n j n j ?-++????????-??? ?????+????????=τ

有限差分法

班级:通信13-4 姓名: 学号: 指导教师:徐维 成绩: 电子与信息工程学院 信息与通信工程系

求解金属槽的电位分布 1.实验原理 利用有限差分法和matlab软件解决电位在金属槽中的分布。 有限差分法基本思想是把连续的定解区域用有限个离散点构成的网格来代替,这些离散点称作网格的节点;把连续定解区域上的连续变量的函数用在网格上定义的离散变量函数来近似;把原方程和定解条件中的微商用差商来近似,积分用积分和来近似,于是原微分方程和定解条件就近似地代之以代数方程组,即有限差分方程组,解此方程组就可以得到原问题在离散点上的近似解.然后再利用插值方法便可以从离散解得到定解问题在整个区域上的近似解.在采用数值计算方法求解偏微分方程时,若将每一处导数由有限差分近似公式替代,从而把求解偏微分方程的问题转换成求解代数方程的问题。 2.有限差分法 方程的定解问题就是在满足某些定解条件下求微分方程的解。在空间区域的边界上要满足的定解条件称为边值条件。如果问题与时间有关,在初始时刻所要满足的定解条件,称为初值条件。不含时间而只带边值条件的定解问题,称为边值问题。与时间有关而只带初值条件的定解问题,称为初值问题。同时带有两种定解条件的问题,称为初值边值混合问题。 定解问题往往不具有解析解,或者其解析解不易计算。所以要采用可行的数值解法。有限差分方法就是一种数值解法,它的基本思想是先把问题的定义域进行网格剖分,然后在网格点上,按适当的数值微分公式把定解问题中的微商换成差商,从而把原问题离散化为差分格式,进而求出数值解。此外,还要研究差分格式的解的存在性和唯一性、解的求法、解法的数值稳定性、差分格式的解与原定解问题的真解的误差估计、差分格式的解当网格大小趋于零时是否趋于真解(即收敛性),等等。 有限差分方法具有简单、灵活以及通用性强等特点,容易在计算机上实现。 2.1有限差分法原理

有限差分法

利用有限差分法分析电磁场边界问题 在一个电磁系统中,电场和磁场的计算对于完成该系统的有效设计师极端重要的。例如,在系统中,用一种绝缘材料是导体相互隔离是,就要保证电场强度低于绝缘介质的击穿强度。在磁力开关中,所要求的磁场强弱,应能产生足够大的力来驱动开关。在发射系统中进行天线的有效设计时,关于天线周围介质中电磁场分布的知识显然有实质性的意义。 为了分析电磁场,我们可以从问题所涉及的数学公式入手。依据电磁系统的特性,拉普拉斯方程和泊松方程只能适合于描述静态和准静态(低频)运行条件下的情况。但是,在高频应用中,则必须在时域或频域中求解波动方程,以做到准确地预测电场和磁场,在任何情况下,满足边界条件的一个或多个偏微分方程的解,因此,计算电池系统内部和周围的电场和磁场都是必要的。 对电磁场理论而言,计算电磁场可以为其研究提供进行复杂的数值及解析运算的方法,手段和计算结果;而电磁场理论则为计算电磁场问题提供了电磁规律,数学方程,进而验证计算结果。常用的计算电磁场边值问题的方法主要有两大类,其每一类又包含若干种方法,第一类是解析法;第二类是数值法。对于那些具有最简单的边界条件和几何形状规则的(如矩形、圆形等)问题,可用分离变量法和镜像法求电磁场边值问题的解析解(精确解),但是在许多实际问题中往往由于边界条件过于复杂而无法求得解析解。在这种情况下,一般借助于数值法求解电磁场的数值解。 有限差分法,微分方程和积分微分方程数值解的方法。基本思想是把连续的定解区域用有限个离散点构成的网络来代替,这些离散点称作网格的节点;把连续定解区域上的连续变量的函数用在网格上定义的离散变量函数来近似;把原方程和定解条件中的微商用差商来近似,积分用积分和来近似,于是原微分方程和定解条件就近似地代之以代数方程组,即有限差分方程组,解此方程组就可以得到原问题在离散点上的近似解。然后再利用插值方法便可以从离散解得到定解问题在整个区域上的近似解。 差分运算的基本概念: 有限差分法是指用差分来近似取代微分,从而将微分方程离散成为差分方程组。于是求解边值问题即转换成为求解矩阵方程[5]。 对单元函数 ()x f而言,取变量x的一个增量x?=h,则函数()x f的增量可以表示为 ()x f? = ()h x f+-()x f 称为函数()x f 的差分或一阶差分。函数增量还经常表示为 ()x f? = ? ? ? ? ? + 2 h x f - ? ? ? ? ? - 2 h x f

隐式有限差分编程

#include #include #define N 11 void main() { int i,k,j; long double x=1000,T=1000,u=0.001; long double h[N][N]={0},f[N]={0},Z[N]={0}; long double g[N]={0},m[N]={0},q[N]={0}; long double a,b,c,t; for(i=0,k=0;k0) /*解三对角线方程的算法第一步*/ { printf("请输入时间步长t的值:"); scanf("%lf",&t); if(t<=0) { printf(" 输入有误! \n"); exit(0); } printf("\n"); a=T; c=a; b=-(2*T+(u*x*x)/t); g[1]=c/b; m[1]=a; q[1]=b; for(i=2;i0;i--) {

for(j=1;j

有限差分法

有限差分法 有限差分法(Finite Differential Method, FDM ) 什么是有限差分法 有限差分法是指用泰勒技术展开式将变量的导数写成变量,在不同时间或空间点值的差分形式的方法。 按时间步长和空间步长将时间和空间区域剖分成若干网格,用未知函数在网格结(节)点上的值所构成的差分近似代替所用偏微分方程中出现的各阶导数,从而把表示变量连续变化关系的偏微分方程离散为有限个代数方程,然后解此线性代数方程组,以求出溶质在各网格结(节)点上不同时刻的浓度。 有限差分法的基本步骤 (1)剖分渗流区,确定离散点。将所研究的水动力弥散区域按某种几何形状(如矩形、任意多边形等)剖分成网络系统。 (2)建立水动力弥散问题的差分方程组。 (3)求解差分方程组。采用各种迭代法,如点逐次超松驰方法(SOR)、线逐次超松驰方法(LSOR)、迭代的交替方向隐式方法(IADI)及强隐式方法(SID)等。 (1) 现在分别对时间(从0时刻到到期日)和股票价格(S max )为可达到的足够高的股票价格) 进行分割,即\triangle S=S_{max}/M,\triangle T/N,这样就分别有N+1个时间段和M+1个股票价格,建立如图(所示的坐标方格,将定解区域网格化,坐标方格上的点(i,j )对应时刻 和股票价格 ,用变量f i ,j 表示(i,j )点的期权价格。 2.建立差分格式 (1)内含的有限差分方法 其步骤可分为以下几步:

(1)求前向差分近似:(2) 后向差分格式:(3) 将(2),(3)式平均可更加对称地求出的近似,即 (4) (2)求用前向差分近似: (5) (3)求 (6) (4)将(4),(5),(6)式代入(1)式可得到内含有限差分公式: + b j f i,j?c j f i,j + 1 = f i + 1,j(7) a j f i,j? 1 其中: i=0,1,…,N-1。j=0,1…,M-1 针对看跌期权和看涨期权可分别求出方程的边界条件: 看跌期权: 看涨期权: (5)利用边界条件和(7)式可以给出M-1个联立方程组: + b j f N? 1,j + c j f N? 1,j + 1j=1,2…,M-1 a j f N? 1,j? 1

本科毕业设计--求解热传导方程的高精度隐式差分格式

新疆大学毕业论文(设计) 题目:求解热传导方程的高精度隐式差分格式所属院系:数学与系统科学学院 专业:信息与计算科学

声明 本人郑重声明该毕业论文(设计)是本人在开依沙尔老师指导下独立完成的,本人拥有自主知识产权,没有抄袭、剽窃他人成果,由此造成的知识产权纠纷由本人负责。 声明人(签名): 年月日 亚库甫江.买买提同学在指导老师的指导下,按照任务书的内容,独立完成了该毕业论文(设计),指导教师已经详细审阅该毕业论文(设计)。 指导教师(签名): 年月日

新疆大学 毕业论文(设计)任务书 班级:信计07-2 姓名:亚库甫江.买买提论文(设计)题目:求解热传导方程的高精度隐式差分格式 专题:毕业设计 论文(设计)来源:教师自拟 要求完成的内容:学习和掌握一维热传导方程已有的各种差分 格式的基础上,扩散方程对空间变量应用紧 致格式离散,对时间变量应用梯形方法,构 造热传导方程的精度为() 24 τ+数值格式, O h 讨论格式的稳定性,最后数值例子来验证。发题日期:2012 年12月25日完成日期:2012 年5月28 日实习实训单位:数学学院地点:数学学院 论文页数:19页;图纸张数:4 指导教师:开依沙尔老师 教研室主任 院长(系主任)

摘要 本文首先对热传导方程经典差分格式进行复习和讨论,然后热传导方程对空间变量四阶紧致格式进行离散,时间变量保持不变,把一维热传导方程转化为常微分方程组的初值问题, 再利用梯形方法构造热传导方程方程的时间二阶空间四阶精度的一种差分格式,并稳定性进行分析,数值结果与Crank-Nicholson 格式进行比较,数值结果表明, 该方法是有效求解热传导方程的数值计算. 关键词: 热传导方程,高精度紧致格式; 梯形方法;两层隐格式; Crank-Nicolson格式 ABSTRACT This paper first study on some classical finite difference for the heat conduction equation, secondely secondely we apply compact finite difference approximation of fourth order for discretizing spatial derivatives but leave the time variable Continuous. This approach results in a system of ODEs, which can then be used trapezodial formula derived fourth order in space and second order in time unconditionally stable implicit scheme .the stability and local truncation error of the obtained method are analysied. Numerical experiments shows that this method Useful, efficient method for solving diffusion equation Keywords: Heat conduction eqution;Higher- oder compact scheme; Trapezodial formula ;Two- level implict scheme; Crank- Nicolson scheme

有限差分法及其应用

有限差分法及其应用 1有限差分法简介 有限差分法(FDM)是计算机数值模拟最早采用的方法,至今仍被广泛运用。该方程将解域划分为差分网格,用有限个网络节点代替连续的求解域。有限差分法通过泰勒级数展开等方法,把控制方程中的导数用网格节点上的函数值得差商代替进行离散,从而建立以网格节点上的值为未知数的代数方程组。该方法是一种直接将微分问题变为代数问题的近似值解法,数学概念直观,表达简单,是发展较早且比较成熟的数值方法。 2有限差分法的数学基础 有限差分法的数学基础是用差分代替微分,用差商代替微商而用差商代替微商的意义是用函数在某区域内的平均变化率来代替函数的真是变化率。而根据泰勒级数展开可以看出,用差商代替微商必然会带来阶段误差,相应的用差分方程代替微分方程也会带来误差,因此,在应用有限差分法进行计算的时候,必须注意差分方程的形式,建立方法及由此产生的误差。 3有限差分解题基本步骤 有限差分法的主要解题步骤如下: 1)建立微分方程 根据问题的性质选择计算区域,建立微分方程式,写出初始条件和边界条件。 2)构建差分格式 首先对求解域进行离散化,确定计算节点,选择网格布局,差分形式和步长;然后以有限差分代替无线微分,以差商代替微商,以差分方程代替微分方程及边界条件。 3)求解差分方程 差分方程通常是一组数量较多的线性代数方程,其求解方法主要包括两种:精确法和近似法。其中精确法又称直接发,主要包括矩阵法,高斯消元法及主元素消元法等;近似法又称间接法,以迭代法为主,主要包括直接迭代法,间接迭代法以及超松弛迭代法。4)精度分析和检验 对所得到的数值进行精度与收敛性分析和检验。 4商用有限差分软件简介 商用有限差分软件主要包括FLAC、UDEC/3DEC和PFC程序,其中,FLAC是一个基于显式有限差分法的连续介质程序,主要用来进行土质、岩石和其他材料的三维结构受力特性模拟和塑性流动分析;UDEC/3DEC是针对岩体不连续问题开发,用于模拟非连续介质在静,动态载荷作用下的反应;PFC是利用显式差分算法和离散元理论开发的微、细观力学程序,它是从介质的基本粒子结构的角度考虑介质的基本力学特性,并认为给定介质在不同应力条件下的基本特征主要取决于粒子之间接粗状态的变化,适用于研究粒状集合体的破裂和破裂发展问题,以及颗粒的流动(大位移)问题。

水力瞬变特征线法和隐式差分法的对比分析

!!!!!!!!!!!!!!!!"" " " 设计计算 水力瞬变特征线法和隐式差分法 的对比分析 蒋仕章 # 蒲家宁 $ 中国人民解放军后勤工程学院%蒋仕章 蒲家宁&水力瞬变特征线法和隐式差分法的对比分析’油气储运’())*’()$*%*(+*,-摘 要 液体在长输管道内不稳定流动问题可以采用各种数值解法并借助计算机来进行处 理’如特征线法.隐式差分法等-特征线法是广泛使用的数值方法’隐式差分法在液体长输管道不稳定流动问题分析中应用则比较少-分析了长输管道水力瞬变特征线法和隐式有限差分法的优缺点’并结合算例分析’指出隐式差分法适合于长输管道水力瞬变分析’计算误差较小-主题词 长输管道 特征线法 隐式有限差分法 对比分析 长输管道内液体的流动状态可分为稳定和不稳定两大类-稳定流动是管道流动的基本状态’不稳定流动则由稳定流动受到破坏而引起’例如开阀和关阀. 开泵和停泵.调节阀和安全阀动作.动力故障以及管道泄漏等各种原因而发生水力瞬变-工程上的不稳定流问题十分重要’因为它可能引起的管道超压. 噪声.抽空和振动比起由稳定流分析所得的结果要严重得多- 目前’液体在长输管道内不稳定流动问题常采用各种数值解法并借助计算机来进行有效的分析-美国学者斯特里特$/010********%在*678年创建的特征线法是最广泛使用的数值方法9*+8: -文献;*<在流体动力学理论基础上’运用以特征线法为主的数值分析方法’结合具体实例说明了液体输送管道和管网系统水力瞬变的分析方法和动态控制的措施-特征线法具有理论严密’ 物理意义明确’适用范围广等特点-隐式差分法在液体长输管道不稳定流动问题分析中应用则比较少- 一.管道水力瞬变数学模型 =.水击基本微分方程 *6)(年’意大利学者阿列维$10>??@5A @%以严密的数学方法’建立了不稳定流动的基本微分方程’ 奠定了水击分析的理论基础9*+8: - *B C D E D F G H D E I J D K G D L D K G M E N E N *OP Q )$*% D L D F G H D L D K G R ( I J B C D E D K S T U Q )$(%式中L VV 液体压头W E VV 液体流量W H VV 管内液流的平均流速W M VV 水力摩阻系数W P VV 流态指数W B VV 重力加速度W C VV 管道流通面积W R VV 水击波速W F VV 时间变量W K VV 管长变量-X .边. 初值条件液体长输管道系统由节点和元件组成’其中节点是长输管道系统的边界点’ 节点的工艺要求即为动态的边界条件-元件是连续于节点间的工艺设备’它们可以是管道.泵.阀门等多种形式’元件通过量及其相应的元件参数反映出元件特性-根据质量守恒定律’在任何时间流进.流出任意节点Y 的流量必须相等’即 Z [\]Y R Y [E Y [ G E Y Q )$8% #,)))*7’重庆市大坪长江二路*^,号W 电话&$)(8%7_(^,8*)- ‘ (*‘油气储运 ())*年

(完整版)有限差分方法概述

有限差分法(Finite Difference Method,简称FDM)是数值方法中最经典的方法,也是计算机数值模拟最早采用的方法,至今仍被广泛运用。该方法将求解域划分为差分网格,用有限个网格节点代替连续的求解域。有限差分法以Taylor级数展开等方法,把控制方程中的导数用网格节点上的函数值的差商代替进行离散,从而建立以网格节点上的值为未知数的代数方程组。该方法是一种直接将微分问题变为代数问题的近似数值解法,数学概念直观,表达简单,是发展较早且比较成熟的数值方法。对于有限差分格式,从格式的精度来划分,有一阶格式、二阶格式和高阶格式。从差分的空间形式来考虑,可分为中心格式和逆风格式。考虑时间因子的影响,差分格式还可以分为显格式、隐格式、显隐交替格式等。目前常见的差分格式,主要是上述几种形式的组合,不同的组合构成不同的差分格式。差分方法主要适用于有结构网格,网格的步长一般根据实际地形的情况和柯朗稳定条件来决定。 构造差分的方法有多种形式,目前主要采用的是泰勒级数展开方法。其基本的差分表达式主要有三种形式:一阶向前差分、一阶向后差分、一阶中心差分和二阶中心差分等,其中前两种格式为一阶计算精度,后两种格式为二阶计算精度。通过对时间和空间这几种不同差分格式的组合,可以组合成不同的差分计算格式。 下面我们从有限差分方法的基本思想、技术要点、应用步骤三个方面来深入了解一下有限差分方法。 1.基本思想 有限差分算法的基本思想是把连续的定解区域用有限个离散点构成的网格来代替,这些离散点称作网格的节点;把连续定解区域上的连续变量的函数用在网格上定义的离散变量函数来近似;把原方程和定解条件中的微商用差商来近似,积分用积分和来近似,于是原微分方程和定解条件就近似地代之以代数方程组,即有限差分方程组,解此方程组就可以得到原问题在离散点上的近似解。然后再利用插值方法便可以从离散解得到定解问题在整个区域上的近似解。在采用数值计算方法求解偏微分方程时,再将每一处导数由有限差分近似公式替代,从而把求解偏微分方程的问题转换成求解代数方程的问题,即所谓的有限差分法。 2.技术要点 如何根据问题的特点将定解区域作网格剖分;如何把原微分

《水环境数学模型》(P39-47)隐式差分法求解

河流水质模拟计算思路 河流水质模型采用如下方程: S dt dC x C E x C u t C L ++ ??=??+??2 (1) 中:C —水质指标浓度; L E —纵向扩散系数; u —平均流速; S —外部的源和漏(如支流的影响等); t —时间 ; x —所考察的距离。 以《水环境数学模型》(P39-47)隐式差分法求解如下: 由于dt dC 为水质指标浓度C 的函数,不妨设KC dt dC =,忽略支流影响。则方程(1)可化成下面形式: ) (2 1211 11 2 1 1 1111 j i j i j i j i i j i j i j i i j i j i C C K x C C u x C C C E t C C -+-+-+++++- ?--?+-=?- (2) 对方程(2)整理得: )2 ( )1( )2 2 1( 11112 1 12 1 12 K x u C x u t C C x E C K x E t C x E i j i i j i j i i j i i j i i - ?+?- ?=?- + ?+?+?--+-+++ (3) 令: 2 x E i i ?- =γ 2 2112 K x E t i i + ?+?= β 2 x E i i ?- =α ) 2 ( )1( 11K x u C x u t C i j i i j i i -?+?- ?=-δ 方程(3)可简化为: i j i i j i i j i i C C C δγβα=++++++-1 11 1 1 (4)

边界条件: i=1时 '11 1 11 1 1δγβ=+++j j C C 2 11' 1x E ?+ =δδ i=n 时 1 11112+-+++-=j n j n j n C C C n j n n j n n C C δβα=+++-1 ' 1 1' n n n γαα-=' n n n γββ2' += 矩阵形式: ? ????? ???????? ?---' ' 1112 2 211 n n n n n βαγβαγβαγβ ??????? ?????????=??????? ?????????-+-n n j n n C C C C δδδδ12'11 121 河流水质模拟计算流程符号说明: Dx —空间步长 Dt —时间步长 Cj —j 时刻各断面的污染物浓度 E —j 时刻各断面的纵向扩散系数 U —j 时刻各断面平均流速 K —污染物的衰减系数 NT —模拟的次数 其中:A,a,b,c,d,x 为计算辅助矩阵。 计算流程图见图一

小振幅波有限差分方法数值模拟

小振幅波有限差分方法数值模拟 摘要:文章研究了二维水槽下线性势流方程小振幅波的数值解,采用crank-nicolson隐式有限差分方法对线性势流方程组进行离散.通过坐标变换将随不规则物理区域变换成一个固定的正方形计算区域,运用交错网格对计算区域进行分割。数值模拟自由面小振幅波的波高,计算出自由面波高的误差值.数值结果表明数值解很好地吻合解析解以及小振幅波具有驻波的线性特征和波节不动性。abstract: the model of small-amplitude water wave has been developed based on potential flow theory. there are numerical experiments of water wave motion undertaken in a two dimensional tank. crank-nicolson’s implicit scheme is adopted to discretize the equations about the linear potential flow. firstly, coordinate transformation is introduced to map the time-dependent irregular physical domain to a time-independent fixed square calculation domain. secondly, a staggered mesh system is applied to divide calculation domain. the numerical results agree well with analytic result and small-amplitude wave have standing wave linear features and node immobility. 关键词:小振幅波;crank-nicolson隐式有限差分方法;交错网格 key words: small-amplitude wave;crank-nicolson implicit

隐式差分法

隐式差分法程序及结果#include int Fun(float T); void main() { int a=1; float t; for (a;a==1;) { printf("输入时间步长:"); scanf("%f",&t); a=Fun(t); } } int Fun(float T) { int flag; float a,b,c,h[11][11],f[10]={0},A[10]={0},B[10]={0},W[10]={0},Z[10]={0}; int i,k; a=c=1000; b=-(2000+1000/T); for(k=0;k<11;k++) { h[0][k]=10; h[10][k]=0; } for(i=1;i<11;i++) { h[i][0]=0; } for(k=0;k<10;k++) { for(i=1;i<9;i++) { f[i]=-(1000*h[i][k]/T); } f[1]=f[1]-a*h[0][k+1]; f[9]=f[9]-c*h[10][k+1]; W[1]=b; A[1]=c/W[1];

for(i=2;i<10;i++) { B[i]=a; W[i]=b-A[i-1]*B[i]; A[i]=c/W[i]; } Z[1]=f[1]/W[1]; for(i=2;i<10;i++) { Z[i]=((f[i]-a*Z[i-1])/W[i]); } h[9][k+1]=Z[9]; for(i=1;i<9;i++) { h[9-i][k+1]=(Z[9-i]-A[9-i]*h[10-i][k+1]); } } printf("当时间步长%.2f时:\n",T); printf(" i,k \t i=0 \t i=1 \t i=2 \t i=3 \t i=4 \t i=5 \t i=6 \t i=7 \t i=8 \t i=9 \t i=10 \t"); k=0; for(k=0;k<11;k++) { printf("k=%d\t",k); for(i=0;i<11;i++) { printf("%.2f\t",h[i][k]); } } printf("继续?(1/0)"); scanf ("%d",&flag); return flag; } 输入时间步长:0.1 当时间步长为0.10时: i,k i=0 i=1 i=2 i=3 i=4 i=5 i=6 i=7 i=8 i=9 i=10 k=0 10.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00

第九章期权定价的有限差分方法.doc

第九章期权定价的有限差分方法 在本章中,我们将给出几个简单的例子来说明基于偏微分方程(PDE)框架的期权定价方法。具体的方法的是利用第五章中讲述的有限差分方法来解决Black-scholes偏微分方程。在9.1节中,我们会回顾衍生品定价的数值解法以及指出如何利用适当的边界条件来模拟一个特定的期权。在9.2节中我们将会应用简单的显式(差分)方法来求解一个简单的欧式期权。正如你已熟知的那样,这种方法只能解出一些可以从金融角度来解释的不稳定的数值解。在9.3节中我们将可以看到使用完全的隐式方法可以解决这种不稳定问题。在9.4节中我们将介绍Crank-Nicolson方法在障碍期权定价中的应用,它可以看做是一种显式与完全隐式方法的混合。最后,在9.5节中,我们会看到迭代松弛方法可以用于解决使用全隐式方法来解决美式期权定价时由于存在提前执行的可能性而导致的自由边界问题。 9.1 使用有限差分法解BS方程 在2.6.2节中,我们给出了一个标的资产在时间t的价格为)(t S的期权,该期权的价格是一个函数), S (t f满足偏微分方程 (t S f,且), (9.1)通过不同的边界条件可以让这个方程刻画不同的期权的特征。在某些地方可能因为假设的改变或者对路径依赖的改变而导致方程式的具体形式改变,但是此处仅仅作为一个起点,帮助读者了解如何应用基于有限差分方法来解决期权定价的问题。 正如我们在第五章中遇到的情况那样,要用有限差分方法来解偏微分方程,在此处我们必须建立资产价格和时间的离散网格。设T是

期权的到期日,而Smax是一个足够大的资产价格,在我们所考虑的时间范围内,)(t S的数值不能超过Smax。设定Smax是因为偏微分方程的区域关于资产价格是无边界的。但是为了达到计算的目的,必须要求它是有界的。Smax相当于+∞。网格通过点(S,t)取得,其中(S,t)满足 δ, M= S = S S,Sδ,Sδ2,……,max δ。 t N= t, tδ,tδ22,……,T = 本章中使用网格符号为,我们回顾一下(9.1)方程式的几种不同解法: 向前差分 向后差分 中心(或对称)差分 对于第二个差分式子,有 至于究竟采用哪种方法进行离散化,我们将在后面的实际操作过程中对显式和隐式的方法作出详细的阐述说明。 另一个值得我们注意的问题是如何设置边界条件。对于执行价格

有限差分法

有限差分法有限差分法 finite difference method 微分方程和积分微分方程数值解的方法。基本思想是把连续的定解区域用有限个离散点构成的网格来代替,这些离散点称作网格的节点;把连续定解区域上的连续变量的函数用在网格上定义的离散变量函数来近似;把原方程和定解条件中的微商用差商来近似,积分用积分和来近似,于是原微分方程和定解条件就近似地代之以代数方程组,即有限差分方程组,解此方程组就可以得到原问题在离散点上的近似解。然后再利用插值方法便可以从离散解得到定解问题在整个区域上的近似解。 有限差分法的主要内容包括:如何根据问题的特点将定解区域作网格剖分;如何把原微分方程离散化为差分方程组以及如何解此代数方程组。此外为了保证计算过程的可行和计算结果的正确,还需从理论上分析差分方程组的性态,包括解的唯一性、存在性和差分格式的相容性、收敛性和稳定性。对于一个微分方程建立的各种差分格式,为了有实用意义,一个基本要求是它们能够任意逼近微分方程,这就是相容性要求。另外,一个差分格式是否有用,最终要看差分方程的精确解能否任意逼近微分方程的解,这就是收敛性的概念。此外,还有一个重要的概念必须考虑,即差分格式的稳定性。因为差分格式的计算过程是逐层推进的,在计算第n+1层的近似值时要用到第n层的近似值,直到与初始值有关。前面各层若有舍入误差,必然影响到后面各层的值,如果误差的影响越来越大,以致差分格式的精确解的面貌完全被掩盖,这种格式是不稳定的,相反如果误差的传播是可以控制的,就认为格式是稳定的。只有在这种情形,差分格式在实际计算中的近似解才可能任意逼近差分方程的精确解。关于差分格式的构造一般有以下3种方法。最常用的方法是数值微分法,比如用差商代替微商等。另一方法叫积分插值法,因为在实际问题中得出的微分方程常常反映物理上的某种守恒原理,一般可以通过积分形式来表示。此外还可以用待定系数法构造一些精度较高的差分格式。 有限差分方法(FDM)是计算机数值模拟最早采用的方法,至今仍被广泛

有限差分法

电磁场与电磁波项目训练报告 求解金属槽的电位分布 班级:通信13-4 姓名: 学号: 指导教师:徐维 成绩: 电子与信息工程学院 信息与通信工程系

求解金属槽的电位分布 1.实验原理 利用有限差分法和matlab软件解决电位在金属槽中的分布。 有限差分法基本思想是把连续的定解区域用有限个离散点构成的网格来代替,这些离散点称作网格的节点;把连续定解区域上的连续变量的函数用在网格上定义的离散变量函数来近似;把原方程和定解条件中的微商用差商来近似,积分用积分和来近似,于是原微分方程和定解条件就近似地代之以代数方程组,即有限差分方程组,解此方程组就可以得到原问题在离散点上的近似解.然后再利用插值方法便可以从离散解得到定解问题在整个区域上的近似解.在采用数值计算方法求解偏微分方程时,若将每一处导数由有限差分近似公式替代,从而把求解偏微分方程的问题转换成求解代数方程的问题。 2.有限差分法 方程的定解问题就是在满足某些定解条件下求微分方程的解。在空间区域的边界上要满足的定解条件称为边值条件。如果问题与时间有关,在初始时刻所要满足的定解条件,称为初值条件。不含时间而只带边值条件的定解问题,称为边值问题。与时间有关而只带初值条件的定解问题,称为初值问题。同时带有两种定解条件的问题,称为初值边值混合问题。 定解问题往往不具有解析解,或者其解析解不易计算。所以要采用可行的数值解法。有限差分方法就是一种数值解法,它的基本思想是先把问题的定义域进行网格剖分,然后在网格点上,按适当的数值微分公式把定解问题中的微商换成差商,从而把原问题离散化为差分格式,进而求出数值解。此外,还要研究差分格式的解的存在性和唯一性、解的求法、解法的数值稳定性、差分格式的解与原定解问题的真解的误差估计、差分格式的解当网格大小趋于零时是否趋于真解(即收敛性),等等。 有限差分方法具有简单、灵活以及通用性强等特点,容易在计算机上实现。 2.1有限差分法原理

有限差分法解偏微分方程

有限差分法解偏微分方程综述 绪论 有限元方法最早应用于结构力学,后来随着计算机的发展慢慢用于流体力学的数值模拟。在有限元方法中,把计算域离散剖分为有限个互不重叠且相互连接的单元,在每个单元内选择基函数,用单元基函数的线形组合来逼近单元中的真解,整个计算域上总体的基函数可以看为由每个单元基函数组成的,则整个计算域内的解可以看作是由所有单元上的近似解构成。 有限差分方法(FDM)是计算机数值模拟最早采用的方法,至今仍被广泛运用。该方法将求解域划分为差分网格,用有限个网格节点代替连续的求解域。有限差分法以Taylor 级数展开等方法,把控制方程中的导数用网格节点上的函数值的差商代替进行离散,从而建立以网格节点上的值为未知数的代数方程组。该方法是一种直接将微分问题变为代数问题的近似数值解法,数学概念直观,表达简单,是发展较早且比较成熟的数值方法。 对于有限差分格式,从格式的精度来划分,有一阶格式、二阶格式和高阶格式。 从差分的空间形式来考虑,可分为中心格式和逆风格式。 考虑时间因子的影响,差分格式还可以分为显格式、隐格式、显隐交替格式等。 目前常见的差分格式,主要是上述几种形式的组合,不同的组合构成不同的差分格式。差分方法主要适用于有结构网格,网格的步长一般根据实际地形的情况和柯朗稳定条件来决定。构造差分的方法有多种形式, 目前主要采用的是泰勒级数展开方法。其基本的差分表达式主要有三种形式:一阶向前差分、一阶向后差分、一阶中心差分和二阶中心差分等,其中前两种格式为一阶计算精度,后两种格式为二阶计算精度。通过对时间和空间这几种不同差分格式的组合,可以组合成不同的差分计算格式。 有限元方法的基础是变分原理和加权余量法,其基本求解思想是把计算域划分为有限个互不重叠的单元,在每个单元内,选择一些合适的节点作为求解函数的插值点,将微分方程中的变量改写成由各变量或其导数的节点值与所选用的插值函数组成的线性表达式,借助于变分原理或加权余量法,将微分方程离散求解。采用不同的权函数和插值函数形式,便构成不同的有限元方法。 有限差分法求解偏微分方程 在采用数值计算方法求解偏微分方程时,若将每一处导数由有限差分近似公式替代,从而把求解偏微分方程的问题转换成求解代数方程的问题,即所谓的有限差分法。有限差分法求解偏微分方程的步骤如下: 1、区域离散化,即把所给偏微分方程的求解区域细分成由有限个格点组成的网格; 2、近似替代,即采用有限差分公式替代每一个格点的导数; 3、逼近求解。换而言之,这一过程可以看作是用一个插值多项式及其微分来代替偏微分方程的解的过程 有限差分法的应用 抛物型方程的差分方法 1. 简单差分法

有限元法与有限差分法的主要区别

有限元法与有限差分法的主要区别 有限差分方法(FDM)是计算机数值模拟最早采用的方法,至今仍被广泛运用。该方法将求解域划分为差分网格,用有限个网格节点代替连续的求解域。有限差分法以Taylor级数展开等方法,把控制方程中的导数用网格节点上的函数值的差商代替进行离散,从而建立以网格节点上的值为未知数的代数方程组。该方法是一种直接将微分问题变为代数问题的近似数值解法,数学概念直观,表达简单,是发展较早且比较成熟的数值方法。对于有限差分格式,从格式的精度来划分,有一阶格式、二阶格式和高阶格式。从差分的空间形式来考虑,可分为中心格式和逆风格式。考虑时间因子的影响,差分格式还可以分为显格式、隐格式、显隐交替格式等。目前常见的差分格式,主要是上述几种形式的组合,不同的组合构成不同的差分格式。差分方法主要适用于有结构网格,网格的步长一般根据实际地形的情况和柯朗稳定条件来决定。构造差分的方法有多种形式,目前主要采用的是泰勒级数展开方法。其基本的差分表达式主要有三种形式:一阶向前差分、一阶向后差分、一阶中心差分和二阶中心差分等,其中前两种格式为一阶计算精度,后两种格式为二阶计算精度。通过对时间和空间这几种不同差分格式的组合,可以组合成不同的差分计算格式。有限元方法的基础是变分原理和加权余量法,其基本求解思想是把计算域划分为有限个互不重叠的单元,在每个单元内,选择一些合适的节点作为求解函数的插值点,将微分方程中的变量改写成由各变量或其导数的节点值与所选用的插值函数组成的线性表达式,借助于变分原理或加权余量法,将微分方程离散求解。采用不同的权函数和插值函数形式,便构成不同的有限元方法。有限元方法最早应用于结构力学,后来随着计算机的发展慢慢用于流体力学的数值模拟。在有限元方法中,把计算域离散剖分为有限个互不重叠且相互连接的单元,在每个单元内选择基函数,用单元基函数的线形组合来逼近单元中的真解,整个计算域上总体的基函数可以看为由每个单元基函数组成的,则整个计算域内的解可以看作是由所有单元上的近似解构成。在河道数值模拟中,常见的有限元计算方法是由变分法和加权余量法发展而来的里兹法和伽辽金法、最小二乘法等。根据所采用的权函数和插值函数的不同,有限元方法也分为多种计算格式。从权函数的选择来说,有配置法、矩量法、最小二乘法和伽辽金法,从计算单元网格的形状来划分,有三角形网格、四边形网格和多边形网格,从插值函数的精度来划分,又分为线性插值函数和高次插值函数等。不同的组合同样构成不同的有限元计算格式。对于权函数,伽辽金(Galerkin)法是将权函数取为逼近函数中的基函数;最小二乘法是令权函数等于余量本身,而内积的极小值则为对代求系数的平方误差最小;在配置法中,先在计算域内选取N个配置点。令近似解在选定的N个配置点上严格满足微分方程,即在配置点上令方程余量为0。插值函数一般由不同次幂的多项式组成,但也有采用三角函数或指数函数组成的乘积表示,但最常用的多项式插值函数。有限元插值函数分为两大类,一类只要求插值多项式本身在插值点取已知值,称为拉格朗日(Lagrange)多项式插值;另一种不仅要求插值多项式本身,还要求它的导数值在插值点取已知值,称为哈密特(Hermite)多项式插值。单元坐标有笛卡尔直角坐标系和无因次自然坐标,有对称和不对称等。常采用的无因次坐标是一种局部坐标系,它的定义取决于单元的几何形状,一维看作长度比,二维看作面积比,三维看作体积比。在二维有限元中,三角形单元应用的最早,近来四边形等参元的应用也越来越广。对于二维三角形和四边形电源单元,常采用的插值函数为有La grange插值直角坐标系中的线性插值函数及二阶或更高阶插值函数、面积坐标系中的线性插值函数、二阶或更高阶插值函数等。对于有限元方法,其基本思路和解题步骤可归纳为(1)建立积分方程,根据变分原理或方程余量与权函数正交化原理,建立与微分方程初边值问题等价的积分表达式,这是有限元法的出发点。(2)区域单元剖分,根据求解区域的形状及实际问题的物理特点,将区域剖分为若干相互连接、不重叠的单元。区域单元划分是采用有限元方法的前期准备工作,这部分工作量比较大,除了给计算单元和节点进行编号和确定相互之间的关系之外,还要表示节点的位置坐标,同时还需要列出自然边界和本质边界的节点序号和相应的边界值。(3)确定单元基函数,根据单元中节点数目及对近似解精度的要求,选择满足一定

相关文档
最新文档