研一数学基础复习笔记(六):变分法到底在“变”什么?
1. 为什么面试前要看这个问题?
前面几篇主要整理了线性代数相关内容,包括矩阵、分块矩阵、基、特征值和矩阵指数。
这些内容可以帮助我们理解离散系统:
$$ \mathbf{K}\mathbf{u} = \mathbf{F} $$或者动力系统:
$$ \dot{\mathbf{x}} = \mathbf{A}\mathbf{x} $$但力学问题最开始往往并不是一个矩阵方程,而是连续体问题。比如杆、梁、板、壳或者三维弹性体,它们的未知量通常是位移函数、应力函数或温度函数。
这时会出现一个更基本的问题:
真实的位移函数到底是怎么确定的?
从微分方程角度看,可以通过平衡方程来确定。
从变分原理角度看,可以通过能量泛函的极值来确定。
这就是变分法的核心思想。
普通函数极值问题是:
找一个数 $x$,使函数 $f(x)$ 取极值。
变分问题是:
找一个函数 $y(x)$,使泛函 $J[y]$ 取极值。
所以变分法“变”的不是一个数,而是一个函数。
这一篇的重点就是理解:
变分法是如何从“泛函取极值”推出“控制微分方程”的。
在力学中,这对应着从最小势能原理推出平衡方程,从 Hamilton 原理推出动力学方程,从弱形式推出有限元方程。
2. 核心概念
2.1 从函数极值说起
在普通微积分中,如果要研究函数 $f(x)$ 的极值,通常会令:
$$ f'(x) = 0 $$这是因为在极值点附近,函数的一阶变化应该为零。
例如设 $x=a$ 是极值点,则在 $a$ 附近做 Taylor 展开:
$$ f(x)-f(a) = f'(a)(x-a) + \frac{1}{2}f''(a)(x-a)^2 + \cdots $$如果 $a$ 是极值点,那么对任意足够小的扰动 $x-a$,函数值的一阶变化都不应该导致函数继续增大或减小。
因此必须有:
$$ f'(a) = 0 $$这就是普通函数极值的基本条件。
变分法其实是这个思想的推广。
普通极值问题中,变量是一个数。
变分问题中,变量是一个函数。
2.2 什么是泛函?
普通函数是把一个数映射成一个数:
$$ x \mapsto f(x) $$而泛函是把一个函数映射成一个数:
$$ y(x) \mapsto J[y] $$例如:
$$ J[y] = \int_{x_0}^{x_1} F(x,y,y')\,dx $$这里 $J$ 的输入不是某一个数,而是整个函数 $y(x)$。
因此 $J[y]$ 称为泛函。
在力学中,能量通常就是泛函。比如总势能、作用量、混合能等,都是某个未知函数的函数。
举例来说,如果 $w(z)$ 是杆件的轴向位移函数,那么总势能可以写成:
$$ S[w] = \int_0^L \left[\frac{1}{2}kw^2 + \frac{1}{2}EF(w')^2 \right] dz - Pw(L) $$这里 $S$ 不是关于某一个数的函数,而是关于整个位移函数 $w(z)$ 的泛函。
2.3 变分到底是什么?
变分可以理解为对函数进行一个小扰动。
假设真实函数是 $y(x)$,给它加上一个小扰动:
$$ y(x,\varepsilon) = y(x) + \varepsilon \eta(x) $$其中:
- $\varepsilon$ 是一个很小的参数;
- $\eta(x)$ 是任意扰动函数;
- 如果端点固定,则要求 $\eta(x_0)=0$,$\eta(x_1)=0$。
当 $\varepsilon$ 变化时,$y(x,\varepsilon)$ 就是一族函数。
把它代入泛函:
$$ J(\varepsilon) = \int_{x_0}^{x_1} F(x,y(x,\varepsilon),y'(x,\varepsilon))\,dx $$原来的泛函极值问题,就转化成了普通函数 $J(\varepsilon)$ 的极值问题。
如果 $y(x)$ 是使泛函取极值的函数,那么在 $\varepsilon=0$ 处应该满足:
$$ \frac{dJ}{d\varepsilon}\bigg|_{\varepsilon=0} = 0 $$这就是一阶变分为零:
$$ \delta J = 0 $$所以可以这样理解:
变分就是研究函数发生任意微小扰动时,泛函的一阶变化。
2.4 欧拉-拉格朗日方程
考虑泛函:
$$ J[y] = \int_{x_0}^{x_1} F(x,y,y')\,dx $$其中 $y’=dy/dx$。
如果端点固定:
$$ y(x_0) = y_0,\quad y(x_1) = y_1 $$则满足泛函极值的函数 $y(x)$ 应该满足欧拉-拉格朗日方程:
$$ \frac{\partial F}{\partial y} - \frac{d}{dx}\left(\frac{\partial F}{\partial y'}\right) = 0 $$这个方程非常重要。
它说明:
如果一个函数使泛函取极值,那么这个函数必须满足一个对应的微分方程。
也就是说,变分法可以从能量形式推出控制方程。
3. 关键公式
3.1 泛函的一阶变分
对泛函:
$$ J[y] = \int_{x_0}^{x_1} F(x,y,y')\,dx $$进行变分:
$$ \delta J = \int_{x_0}^{x_1} \delta F\,dx $$由链式法则:
$$ \delta F = \frac{\partial F}{\partial y}\delta y + \frac{\partial F}{\partial y'}\delta y' $$所以:
$$ \delta J = \int_{x_0}^{x_1} \left(\frac{\partial F}{\partial y}\delta y + \frac{\partial F}{\partial y'}\delta y'\right) dx $$又因为:
$$ \delta y' = \frac{d}{dx}(\delta y) $$所以:
$$ \delta J = \int_{x_0}^{x_1} \left[\frac{\partial F}{\partial y}\delta y + \frac{\partial F}{\partial y'}\frac{d}{dx}(\delta y)\right] dx $$3.2 分部积分
上式中第二项含有 $\delta y$ 的导数。为了利用 $\delta y$ 的任意性,需要通过分部积分把导数转移到另一项上:
$$ \int_{x_0}^{x_1} \frac{\partial F}{\partial y'}\frac{d}{dx}(\delta y)\,dx = \left.\frac{\partial F}{\partial y'}\delta y\right|_{x_0}^{x_1} - \int_{x_0}^{x_1} \delta y \frac{d}{dx}\left(\frac{\partial F}{\partial y'}\right) dx $$代回去可得:
$$ \delta J = \int_{x_0}^{x_1} \delta y \left[ \frac{\partial F}{\partial y} - \frac{d}{dx}\left(\frac{\partial F}{\partial y'}\right) \right] dx + \left.\frac{\partial F}{\partial y'}\delta y\right|_{x_0}^{x_1} $$如果端点固定,则:
$$ \delta y(x_0)=0,\quad \delta y(x_1)=0 $$边界项消失,因此:
$$ \delta J = \int_{x_0}^{x_1} \delta y \left[ \frac{\partial F}{\partial y} - \frac{d}{dx}\left(\frac{\partial F}{\partial y'}\right) \right] dx $$因为 $\delta y$ 在区间内部具有任意性,要使 $\delta J=0$,必须有:
$$ \frac{\partial F}{\partial y} - \frac{d}{dx}\left(\frac{\partial F}{\partial y'}\right) = 0 $$这就是欧拉-拉格朗日方程。
3.3 变分过程的核心逻辑
整个推导过程可以概括为:
$$ \delta J = 0 \quad \Longrightarrow \quad \int_{x_0}^{x_1}\delta y(\cdots)\,dx = 0 \quad \Longrightarrow \quad (\cdots)=0 $$其中最关键的是:
因为 $\delta y$ 是任意的,所以括号中的表达式必须为零。
这一步是变分法的核心。
它把“泛函极值条件”变成了“微分方程”。
4. 和力学/数值计算的联系
4.1 最小势能原理
讲义中用弹性支撑轴向拉杆作为例子。
设杆长为 $L$,左端固定,右端受拉力 $P$。杆的轴向位移为 $w(z)$,轴向刚度为 $EF$,并受到刚度为 $k$ 的分布弹簧支撑。
应变为:
$$ \varepsilon_z = \frac{dw}{dz} = w' $$轴力为:
$$ N(z) = EFw' $$弹簧支撑力为:
$$ R(z) = kw(z) $$杆件的总势能可以写成:
$$ S[w] = \int_0^L \left[\frac{1}{2}kw^2 + \frac{1}{2}EF(w')^2\right] dz - Pw(L) $$其中:
- 第一项 $\frac{1}{2}kw^2$ 是弹簧势能密度;
- 第二项 $\frac{1}{2}EF(w’)^2$ 是杆件拉伸变形能密度;
- $-Pw(L)$ 是外力势能。
最小势能原理说:
在所有满足边界条件的可能位移中,使总势能取最小值的位移就是真实位移。
这就是力学中的变分思想。
4.2 从总势能推出平衡微分方程
对总势能进行变分:
$$ \delta S = \int_0^L \left(kw\delta w + EFw'\delta w'\right) dz - P\delta w(L) $$对第二项进行分部积分:
$$ \int_0^L EFw'\delta w'\,dz = \left.EFw'\delta w\right|_0^L - \int_0^L EFw''\delta w\,dz $$于是:
$$ \delta S = \int_0^L \delta w(kw - EFw'')\,dz + \left.EFw'\delta w\right|_0^L - P\delta w(L) $$左端固定,因此:
$$ w(0)=0,\quad \delta w(0)=0 $$右端自然边界条件为:
$$ EFw'(L)=P $$因此边界项可以抵消,剩下: