Skip to content

10.5 变分问题的数值解

在实践中, 解变分问题最经常用到两种方法.

1. 欧拉微分方程的解以及使所找到的解满足边界条件

通常, 欧拉微分方程的精确解只是在最简单的情形才是可能的, 因而用数值方法来解常微分方程或偏微分方程的边值问题 (参见第 1267 页 19.5 或第 1353 页20.3.4).

2. 直接法

从变分问题直接产生直接法, 并且不利用欧拉微分方程. 最流行的, 并且也许是最老的方法是里茨方法(Ritz method). 它属于所谓的逼近方法, 这是用来获得微分方程逼近解的 (参见第 1265 页 19.4.2.2 和第 1270 页 19.5.2). 下述例子展示了这个方法.

数值地解等周问题

(10.52a)01y2(x)dx=极值!

其中函数 y(x) 要满足

(10.52b)01y2(x)dx=1,y(0)=y(1)=0.

根据第 808 页 10.3.3, 没有积分辅助条件相应的变分问题是

(10.52c)I[y]=01[y2(x)λy2(x)]dx= 极值! 

作为求一个逼近解的起始步, 可以用

(10.52d)y(x)=a1x(x1)+a2x2(x1).

两个逼近函数 x(x1)x2(x1) 是线性无关的,并且满足边界条件. 利用(10.52d) 来约化(10.52c),得到

(10.52e)I(a1,a2)=13a12+215a22+13a1a2λ(130a12+1105a22+130a1a2),

并且必要条件 Ia1=Ia2=0 导致齐次线性方程组

(10.52f)(23λ15)a1+(13λ30)a2=0,(13λ30)a1+(4152λ105)a2=0

只有当这个方程组的系数矩阵行列式为零:

(10.52g)λ252λ+420=0, 即 λ1=10,λ2=42

时该方程组有非平凡解. 对于 λ=λ1=10 ,从(10.52f)即得 a2=0,a1 任意,因而属于 λ1=10 的正规化解是

(10.52h)y=5.48x(x1).

为了作一个比较,考虑属于(10.52f)的欧拉微分方程. 这里边值问题

(10.52i)y+λy=0, 并且 y(0)=y(1)=0

的本征值为 λk=k2π2(k=1,2,) ,解为 yk=cksinkπx . 对于 k=1 时,即 λ1=π29.87 时的正规化解为

(10.52j)y=2sinπx,

它确实与逼近解(10.52h)非常接近.

注 在当今计算机和科学的水平下, 把有限元方法(finite element method, FEM) 应用于变分问题的数值解是第一位的.

对于微分方程的数值解, 在第 1271 页 19.5.3 中给出了有限元方法的基本想法. 在那里, 微分方程和变分方程之间的相似性将被用到, 例如, 欧拉微分方程, 或者根据 (19.146a)、(19.146b), 双线性型.

此外, 作为对非线性最优化问题的有效数值方法, 梯度方法 (gradient method) 也被用于变分问题的数值解.

version 1.24.0