Skip to content

11.2.4 第二类弗雷德霍姆积分方程的数值解法 ​

对于一个第二类弗雷德霍姆积分方程

(11.23)φ(x)=f(x)+λ∫abK(x,y)φ(y)dy,

为了获得其精确解, 用第 817 页的 11.2.1, 第 821 页的 11.2.2, 以及用第 823 页的 11.2.3 中给出的解法, 经常是不可能的, 或者要做太多的工作. 在一些这样的情形中, 为了近似可以用某些数值方法. 下面给出 3 种不同的方法来得到形如 (11.23) 积分方程的数值解.

11.2.4.1 积分的近似 ​

1. 半离散问题 ​

在研究积分方程 (11.23) 时, 经常用一个近似公式来代替其中的积分. 这些近似公式被称为求积公式(quadrature formulas). 它们有形式

(11.24)∫abf(x)dx≈Q[a,b](f)=∑k=1n⁡ωkf(xk),

即,代替积分,现在用被积函数在插值节点 xk 处赋以权值 ωk 的代换值之和. 诸数 ωk 要被适当地选取 (以便与 f 无关). 用近似形式,方程 (11.23) 可以被写成

(11.25a)φ(x)≈f(x)+λQ[a,b](K(x,⋅)φ(⋅))=f(x)+λ∑k=1n⁡ωkK(x,yk)φ(yk).

求积公式 Q[a,b](K(x,⋅)φ(⋅)) 还依赖于变量 x . 在函数变量位置上的点意味着求积公式是关于变量 y 所用的. 定义关系式

(11.25b)φ¯(x)=f(x)+λ∑k=1n⁡ωkK(x,yk)φ¯(yk).

φ¯(x) 是精确解 φ(x) 的一个近似. 把 (11.25b) 视为一个半离散问题(semi-discrete problem),因为变量 y 被转为离散值,而变量 x 仍可为任意的.

如果方程 (11.25b) 对一个函数 φ¯(x) 在每个点 x∈[a,b] 处成立,那么它必定在每个插值节点 x=xk 处成立:

(11.25c)φ¯(xk)=f(xk)+λ∑j=1n⁡ωjK(xk,yj)φ¯(yj),k=1,2,⋯,n.

这是一个关于 n 个未知值 φ¯(xk) 的 n 个方程的一个线性方程组. 把这些解代入(11.25b), 产生了半离散问题的解. 这个方法的精度和计算量依赖于所用的求积公式. 例如,用左矩形公式(参见第 1253 页 19.3.2.1) 以及等距划分 yk=xk= a+h(k−1),h=(b−a)/n(k=1,⋯,n) ,产生

(11.26a)∫abK(x,y)φ¯(y)dy≈∑k=1n⁡hK(x,yk)φ¯(yk).

利用记号

(11.26b)Kjk=K(xj,yk),fk=f(xk),φk=φ¯(xk),

方程组(11.25c)有形式:

(1−λhK11)φ1−λhK12φ2−⋯−λhK1nφn=f1,(11.26c)−λhK21φ1+(1−λhK22)φ2−⋯−λhK2nφn=f2,−λhKn1φ1−λhKn2φ2−⋯+(1−λhKnn)φn=fn.

相同的方程组被包含在弗雷德霍姆解法 (参见第 823 页 11.2.3) 中. 因为矩形公式并非足够精确, 因此为了更好地近似积分, 可以增加插值节点的数目, 但随之而来的是方程组维数的增加. 因而要寻找另外的求积公式.

2. 尼斯特伦法 ​

在所谓的尼斯特伦法(Nyström method) 中, 高斯求积公式被用于求积分的近似 (参见第 1254 页 19.3.3,3.). 为了推导它, 考虑积分

(11.27a)I=∫abf(x)dx.

用一个多项式 p(x) ,即 f(x) 在插值节点 xk 处的插值多项式来代替被积函数:

p(x)=∑k=1n⁡Lk(x)f(xk),

其中

(11.27b)Lk(x)=(x−x1)⋯(x−xk−1)(x−xk+1)⋯(x−xn)(xk−x1)⋯(xk−xk−1)(xk−xk+1)⋯(xk−xn).

对于这个多项式, 有

(11.27c)p(xk)=f(xk),k=1,⋯,n.

用 p(x) 代替被积函数 f(x) 导致求积公式

(11.27d)∫abf(x)dx≈∫abp(x)dx=∑k=1n⁡f(xk)∫abLk(x)dx=∑k=1n⁡ωkf(xk),

其中 ωk=∫abLk(x)dx . 对于高斯求积公式,不能任意选取插值节点,它们必须用

公式

(11.28a)xk=a+b2+b−a2tk,k=1,2,⋯,n

来选取. 这 n 个 tk 值是第一类勒让德多项式 (参见第 748 页 9.1.2.6,3.)

(11.28b)Pn(t)=12n⋅n!dn[(t2−1)n]dtn

的 n 个根. 这些根都在区间 [−1,+1] 中. 由代换 x−xk=b−a2(t−tk) 可以计算诸系数 ωk ,因而:

ωk=∫abLk(x)dx=(b−a)12∫−11(t−t1)⋯(t−tk−1)(t−tk+1)⋯(t−tn)(tk−t1)⋯(tk−tk−1)(tk−tk+1)⋯(tk−tn)dt(11.29)=(b−a)Ak.

在表 11.1 中给出了第一类勒让德多项式的根和 n=1,⋯,6 的诸权值 Ak .

◼ 用尼斯特伦法对于 n=3 解积分方程 φ(x)=cos⁡πx+xx2+π2(ex+1)+∫01exyφ(y)dy

n=3:x1=0.1127,x2=0.5,x3=0.8873,A1=0.2778,A2=0.4444,A3=0.2778,f1=0.96214,f2=0.13087,f3=−0.65251,K11=1.01278,K22=1.28403,

K33=2.19746,

K12=K21=1.05797,K13=K31=1.10517,

K23=K32=1.55838.对于 φ1,φ2 和 φ3 的方程组(11.25c)是

0.71864φ1−0.47016φ2−0.30702φ3=0.96214,−0.29390φ1+0.42938φ2−0.43292φ3=0.13087,−0.30702φ1−0.69254φ2+0.38955φ3=−0.65251.

n

t

A

n

t

A

1

t1=0

A1=1

5

t1=−0.9062

A1=0.1185

2

t1=−0.5774

A1=0.5

t2=−0.5384

A2=0.2393

t2=0.5774

A2=0.5

t3=0

A3=0.2844

3

t1=−0.7746

A1=0.2778

t4=0.5384

A4=0.2393

t2=0

A2=0.4444

t5=0.9062

A5=0.1185

t3=0.7746

A3=0.2778

6

t1=−0.9324

A1=0.0857

4

t1=−0.8612

A1=0.1739

t2=−0.6612

A2=0.1804

t2=−0.3400

A2=0.3261

t3=−0.2386

A3=0.2340

t3=0.3400

A3=0.3261

t4=0.2386

A4=0.2340

t4=0.8612

A4=0.1739

t5=0.6612

A5=0.1804

t6=0.9324

A6=0.0857

这方程组的解是 φ1=0.93651,φ2=−0.00144,φ3=−0.93950 . 精确解在插值节点处的代换值是: φ(x1)=0.93797,φ(x2)=0,φ(x3)=−0.93797 .

11.2.4.2 核近似 ​

用一个核 K¯(x,y) 代替核 K(x,y) ,使得对于 a≤x≤b,a≤y≤b 有 K¯(x,y)≈ K(x,y) . 试图选取一个核,使得最容易获得积分方程

(11.30)φ¯(x)=f(x)+λ∫abK¯(x,y)φ¯(y)dy

的解.

1. 张量积近似 ​

经常用到的核的近似是形如

(11.31a)K(x,y)≈K¯(x,y)=∑j=0n⁡∑k=0n⁡djkαj(x)βk(y)

的张量积近似(tensor product approximation),其中 α0(x),⋯,αn(x) 和 β0(y) , ⋯,βn(y) 是给定的线性无关的函数,它们的系数 djk 必须选取得使二重和在某种意义下充分地逼近核. 用一个退化核重写 (11.31a)T :

(11.31b)K¯(x,y)=∑j=0n⁡αj(x)[∑k=0n⁡djkβk(y)],δj(y)=∑k=0n⁡djkβk(y),K¯(x,y)=∑j=0n⁡αj(x)δj(y).

现在, 可以把第 817 页 11.2.1 的解法用于积分方程

(11.31c)φ¯(x)=f(x)+λ∫ab[∑j=0n⁡αj(x)δj(y)]φ¯(y)dy.

应该选取诸函数 α0(x),⋯,αn(x) 和 β0(y),⋯,βn(y) ,使得可以容易地计算 (11.31a) 中的系数 djk ,并且也使得计算 (11.31c) 的解不太困难.


① 原文把 (11.31b) 后两等式连在一起了: δj(y)=∑k=0n⁡djkβk(y)K¯(x,y)= ∑j=0n⁡αj(x)δj(y) . 一译者注


2. 特殊样条函数法 ​

为了在积分区间 [a,b]=[0,1] 上逼近一个特殊核,选取

(11.32)αk(x)=βk(x)={1−n|x−kn|,k−1n≤x≤k+1n,0, 其他情形. 

函数 αk(x) 仅在所谓的承载区间(carrier interval) (k−1n,k+1n) 上有非零值 (图 11.1).

0193686a-f46c-7301-ad92-9f1def8f454e_15_631_839_377_240_0.jpg

为了计算 (11.31a) 中的系数 djk ,在点 x=l/n,y=i/n(l,i=0,1,⋯,n) 处考虑 K¯(x,y) . 则成立

(11.33)αj(ln)αk(in)={1,j=l,k=i,0, 其他情形,

所以 K¯(l/n,i/n)=dli . 因而有代换 dli=K¯(ln,in)=K(ln,in) . 现在 (11.31a) 有形式

(11.34)K¯(x,y)=∑j=0n⁡∑k=0n⁡K(jn,kn)αj(x)βk(y).

如所知道的, (11.31c) 的解有形式

(11.35)φ¯(x)=f(x)+A0α0(x)+⋯+Anαn(x).

表达式 A0α0(x)+⋯+Anαn(x) 是一个分段线性函数,它在点 xk=k/n 处取替换值 Ak . 用对于退化核给出的方法解 (11.31c),得到关于数 A0,⋯,An 的一个线性方程组:

(1−λc00)A0−λc01A1−⋯−λc0nAn=b0,(11.36a)−λc10A0+(1−λc11)A1−⋯−λc1nAn=b1,

......

−λcn0A0−λcn1A1−⋯+(1−λcnn)An=bn.

其中

cjk=∫01δj(x)αk(x)dx=∫01[∑i=0n⁡K(jn,in)αj(x)]αk(x)dx=K(jn,0n)∫01α0(x)αk(x)dx(11.36b)+⋯+K(jn,nn)∫01αn(x)αk(x)dx.

对于这些积分, 有

(11.36c)Ijk=∫01αj(x)αk(x)dx={13n,j=0,k=0 和 j=n,k=n,23n,j=k,1≤j≤n,16n,j=k+1,j=k−1,0, 其他情形. 

(11.36a) 中的数 bk 由

(11.36d)bk=∫01f(x)[∑j=0n⁡K(kn,jn)αj(x)]dx

给出. 分别用 (11.36a) 中的数 cjk 组成矩阵 C ,用值 K(j/n,k/n) 组成矩阵 B ,用值 Ijk 组成矩阵 A ,数 b0,⋯,bn 组成向量 b― ,数 A0,⋯,An 组成向量 a― ,则方程组 (11.36a) 有形式

(11.36e)(I−λC)a―=(I−λBA)a―=b―.

在此情形,若矩阵 (I−λBA) 是正规的时,这个方程组有一个唯一解 a―=(A0,⋯,An) .

11.2.4.3 配置法 ​

假设在区间 [a,b] 中 n 个函数 φ1(x),⋯,φn(x) 是线性无关的. 它们可以被用来构成解 φ(x) 的一个近似函数 φ¯(x) :

(11.37a)φ(x)≈φ¯(x)=a1φ1(x)+a2φ2(x)+⋯+anφn(x).

现在的问题是确定系数 a1,⋯,an . 通常,不存在 a1,⋯,an ,使得以这种形式给出的函数 φ¯(x) 表示积分方程 (11.23) 的精确解 φ(x)=φ¯(x) . 因而,在积分区间中界定 n 个插值点 x1,⋯,xn ,使得近似函数 (11.37a) 至少在这些点上满足积分方程:

(11.37b)φ¯(xk)=a1φ1(xk)+⋯+anφn(xk)=f(xk)+λ∫abK(xk,y)[a1φ1(y)+⋯+anφn(y)]dy(k=1,⋯,n).(11.37c)

在一些变换下, 这个方程组取下述形式:

[φ1(xk)−λ∫abK(xk,y)φ1(y)dy]a1+⋯+[φn(xk)−λ∫abK(xk,y)φn(y)dy]an(11.37d)=f(xk)(k=1,⋯,n).

定义矩阵

(11.37e)A=(φ1(x1)⋯φn(x1)⋮⋮φ1(xn)⋯φn(xn)),B=(β11⋯β1n⋮⋮βn1⋯βnn),

其中 βjk=∫abK(xj,y)φk(y)dy ,并定义向量

(11.37f)a―=(a1,⋯,an)T,b―=(f(x1),⋯,f(xn))T,

则确定数 a1,⋯,an 的方程组可以被写成矩阵形式:

(11.37g)(A−λB)a―=b―.

◼φ(x)=x2+∫01xyφ(y)dy . 近似函数为 φ¯(x)=a1x2+a2x+a3,φ1(x)= x2,φ2(x)=x,φ3(x)=1 . 插值节点为 x1=0,x2=0.5,x3=1 .

A=(00114121111),B=(000272523272523),b―=(01221212).

方程组为

a3=0,(14−27)a1+(12−25)a2+(1−23)a3=122,57a1+35a2+13a3=12

它的解为 a1=−0.8197,a2=1.8092,a3=0 ,因此由这些值得 φ¯(x)=−0.8197x2+ 1.8092x ,因而 φ¯(0)=0,φ¯(0.5)=0.6997,φ¯(1)=0.9895 .

积分方程的精确解是 φ(x)=x ,因而 φ(0)=0,φ(0.5)=0.7070,φ(1)=1 .

为了改进此例中的精度, 增加多项式的次数并非一个好主意, 因为较高次的多项式在数值上是不稳定的. 利用不同的样条函数要好得多, 例如, 一个分段线性逼近 φ¯(x)=a1φ1(x)+a2φ2(x)+⋯+anφn(x) ,这里的函数是在 11.2.4.2 节中引进

的:

φk(x)={1−n|x−kn|,k−1n≤x≤k+1n,0, 其他情形. 

在这个情形,解 φ(x) 被一个折线函数 φ¯(x) 所近似.

注 就配置法插值节点的选取而论, 并不存在理论约束. 然而在此情形, 如果解函数在某个子区间中极为振荡时, 必须在这个区间中增加插值节点的数目.

version 1.24.0