本文通过有限差分法对一维Boussinesq方程反问题和正问题进行联合求解,求解过程中利用非线性最小二乘法进行了优化,得到的近似解与真值的基本吻合。 In this paper, the inverse problem and the positive problem of the one-dimensional Boussinesq equation are solved jointly by using the finite difference method. In the solving process, the non-linear least square method is used for optimization. The approximate solution is consistent with the truth value.
金裕红,左雷浩*
海军工程大学基础部,湖北 武汉
收稿日期:2018年10月19日;录用日期:2018年10月31日;发布日期:2018年11月13日
本文通过有限差分法对一维Boussinesq方程反问题和正问题进行联合求解,求解过程中利用非线性最小二乘法进行了优化,得到的近似解与真值的基本吻合。
关键词 :反问题,Boussinesq方程,有限差分法,非线性最小二乘法
Copyright © 2018 by authors and beplay安卓登录
This work is licensed under the Creative Commons Attribution International License (CC BY).
http://creativecommons.org/licenses/by/4.0/
伴随着科学技术的发展,人类生存环境也遭受了不同程度的破坏,尤其是工业污染物的排放使得地下水资源受到了严重的污染。研究地下水渗透模型,控制地下水污染等课题变得刻不容缓 [
地下水运动情况可以用Boussinesq方程来描述,方程以及定解条件为
{ ∂ h ∂ t = ∂ ∂ x [ k ( x ) h ( x , t ) ∂ h ∂ x ] + f ( x , t ) h ( x , 0 ) = φ 1 ( x ) h ( 0 , t ) = g 1 ( t ) h ( 1 , t ) = g 2 ( t ) 0 ≤ x ≤ 1 , 0 ≤ t ≤ 1
式中h表示水头; f ( x , t ) 为入渗强度; k ( x ) 为渗透系数,表示岩层的透水性的大小,在均匀的岩层中,渗透系数 k ( x ) 和区域坐标无关,为常数,在非均匀岩层中,渗透系数 k ( x ) 为空间位置的函数,随着区域坐标变化而变化。如果给定了 k , h , g 1 , g 2 , φ 1 , f 的值,且满足所需要的光滑性条件,我们由偏微分的知识可以知道该问题的解存在且唯一。此时,该问题为正问题 [
如果只给定了 φ 1 ( x ) , g 1 ( t ) , g 2 ( t ) , f ( x , t ) 的表达式,而 h ( x , t ) 都是未知,但是给定了 h ( x , t ) 在某时刻的近似值(测量值),要求我们确定渗透系数 k ( x ) ,来求解上述问题,这时的问题就是系数反演问题。实际工程中往往渗透系数是未知的,通常通过获得更多的信息或者测量数据来反演系数 k ( x ) ,这类系数反演问题是偏微分方程反问题的重要课题,也是工程技术领域的重要课题 [
本文利用有限差分法对一维流动的Boussinesq方程渗透系数反演问题进行数值计算。该方程的求解对于潜水含水层水量的计算和评价有重要意义。近年来,不少学者对一维抛物型偏微分方程系数反演问题做了大量研究并提出不少数值计算方法。最为常用的是有限差分法、有限元法、有限体积法和多重网格法 [
有限差分法的思想是用离散的、含有有限个未知量的差分方程去近似代替连续变量的微分方程及边界条件,并把相应的差分方程解作为微分方程的解,因此,差分法需要讨论的问题即构造近似代替定解问题的差分方程,即建立差分格式问题 [
有限差分方法不仅是偏微分方程数值解的重要方法,而且也是偏微分方程数值解的有效方法。但应用于具体问题时,还需根据具体情况进行分析与处理。在研究与应用中还需要进一步解决如何提高计算速度、计算精度以及差分分解的收敛性等问题。用有限差分方法近似求解偏微分方程问题有多种多样的方法,并且也可以用不同的构造方法来建立这些有限差分方法。
首先在矩形区域 { 0 ≤ x ≤ 1 , 0 ≤ t ≤ 1 } 内研究如下Boussinesq方程的初边值问题
{ ∂ h ∂ t = ∂ ∂ x [ k ( x ) h ( x , t ) ∂ h ∂ x ] + f ( x , t ) h ( x , 0 ) = φ 1 ( x ) h ( 0 , t ) = g 1 ( t ) h ( 1 , t ) = g 2 ( t ) 0 ≤ x ≤ 1 , 0 ≤ t ≤ 1
现在考虑 ∂ ∂ x [ k ( x ) h ( x , t ) ∂ h ∂ x ] 的非线性,为了方便我们进行离散化处理,这里对其进行处理如下,并代入原方程:
∂ ∂ x [ k ( x ) h ( x , t ) ∂ h ∂ x ] = ∂ k ( x ) ∂ x ∗ h ( x , t ) ∗ ∂ h ∂ x + k ( x ) ∗ ∂ h ( x , t ) ∂ x ∗ ∂ h ∂ x + k ( x ) ∗ h ( x , t ) ∗ ∂ 2 h ∂ x 2
下面考虑初边值问题的差分逼近。将上述区域划分为 m ∗ n 维网格,取时间步长 τ = 1 / n 和空间步长 ω = 1 / m ,网格节点为
边界上的点无法用两点差分格式处理,我们采用三点差分格式,将上述微分方程进行离散化,得到 ∂ h ∂ t 离散化后的三点数值微分公式表示为:
{ h ′ t ( x i , t 0 ) = 1 2 τ ( − 3 h ( x i , t 0 ) + 4 h ( x i , t 1 ) − h ( x i , t 2 ) ) h ′ t ( x i , t j ) = 1 2 τ ( − h ( x i , t j − 1 ) + h ( x i , t j + 1 ) ) , 0 < j < n h ′ t ( x i , t n ) = 1 2 τ ( h ( x i , t n − 2 ) − 4 h ( x i , t n − 1 ) + 3 h ( x i , t n ) )
对应的等式右边:
∂ k ( x ) ∂ x 离散化后的三点数值微分公式表示为:
∂ h ∂ x 离散化后的三点数值微分公式:
{ h ′ x ( x 0 , t j ) = 1 2 ω ( − 3 h ( x 0 , t j ) + 4 h ( x 1 , t j ) − h ( x 2 , t j ) ) h ′ x ( x i , t j ) = 1 2 ω ( − h ( x j − 1 , t j ) + h ( x j + 1 , t j ) ) , 0 < i < m h ′ x ( x m , t j ) = 1 2 ω ( h ( x m − 2 , t j ) − 4 h ( x m − 1 , t j ) + 3 h ( x m , t j ) )
∂ 2 h ∂ x 2 离散化后的三点数值微分公式:
{ h ″ x ( x 0 , t j ) = 1 ω 2 ( h ( x 2 , t j ) − 2 h ( x 1 , t j ) + h ( x 0 , t j ) ) h ″ x ( x i , t j ) = 1 ω 2 ( h ( x i + 1 , t j ) − 2 h ( x i , t j ) + h ( x i − 1 , t j ) ) , 0 < i < m h ″ x ( x m , t j ) = 1 ω 2 ( h ( x m − 2 , t j ) − 2 h ( x m − 1 , t j ) + h ( x m , t j ) )
通过对上述方程的离散化,我们可以得到 m ∗ n 个方程,将初始条件和边界条件进行离散化后又得到 2 m + 2 n 个方程,而在以上方程组中,k的离散未知值有m个,h的离散未知值有 个,方程的总个数大于未知量的总个数,所以,一般来说,由于离散化带来的误差影响,得到的关于离散未知值的方程组通常是不相容的,我们可以采用最小二乘法来求解。在Matlab软件中,lsqnonlin解决非线性最小二乘法问题,包含非线性数据的拟合问题,lsqnonlin采用了Levenberg-Marquardt算法,Levenberg-Marquardt算法是求解非线性问题的一个非常好用的算法。
另外由于lsqnonlin函数采用的是迭代法,对迭代初始值有一定的依赖性。因为程序的局限性,不可能搜索无穷大的区间,这样一来,初始值的选择就显得尤为重要。如果最优解离所给初始值比较近,迭代求出该最优解的可能性偏高;如果设定的初始值不理想,离最优解较远,而matlab对于迭代次数及迭代精度都有个默认的设定,这种情况下很可能没有搜到最优解便给出了结果,当然这个结果是在所搜索区间上的最优解而极有可能不是全局最优的。
给定参数取值进行数值实验,其中 φ 1 ( x ) , g 1 ( t ) , g 2 ( t ) 已经给定,
不同数量级的网格密度对方程拟合的精确程度会产生一定的影响,下面将在5 × 5,10 × 10,50 × 50不同网格密度下进行比较(图1~图4)。
通过对实验数据进行误差分析,残差平方和表示实验所得离散数据与参数真值的连续函数的偏差程度;残差平方和除以方程的总个数所得平均残差平方和,平均残差平方和表示离散后的每一个方程与参数真值函数的偏差程度,平均残差平方和也越来越小,说明离散后的每一个方程与参数真值函数越逼近; ε 表示本文算法得到的离散点最优解与 给定真值 1 + 2 x + 3 x 2 的方差的平均值,代表本算法所的近似解的吻合程度。由表1可以看出,随着网格密度的增加,本算法所得近似解与真值的吻合程度越来越好。
在文献 [
图1. m = 5 , n = 5
图2.
图3.
图4. 对比
离散网格数 | 5 × 5 | 10 × 10 | 50 × 50 |
---|---|---|---|
残差平方和 | 5.4470 × 10−4 | 1.9700 × 10−5 | 9.6101 × 10−7 |
平均残差平方和 | 1.2104 × 10−5 | 1.4071 × 10−7 | 3.5593 × 10−10 |
ε | 0.6772 | 0.3724 | 0.1409 |
表1. 不同网格密度下的平均残差平方和
文献 [
金裕红,左雷浩. 一维Boussinesq方程反问题与正问题的联合求解The United Solution for Positive and Inverse Problems of One-Dimensional Boussinesq Equation[J]. 理论数学, 2018, 08(06): 650-655. https://doi.org/10.12677/PM.2018.86087