ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Sobolev空间与Green公式:从弱导数到PDE弱形式

Sobolev空间与Green公式:从弱导数到PDE弱形式 学泛函分析学到第十九篇基本上就该撞上 Sobolev 空间这堵墙了。前面十八篇我们玩的都是抽象空间Banach 空间、Hilbert 空间、有界线性算子、对偶空间、谱理论一路下来都是设 $X$ 是一个线性空间$|\cdot|$ 是它上面的范数这种干净利落的开场。但真到了要解偏微分方程的时候你会发现 $C^k$ 空间太窄了$L^p$ 空间又太粗、连导数都没有中间这块空地必须有人来填这就是 Sobolev 空间登场的理由。而 Green 公式则是把这套抽象工具真正接到偏微分方程上的那根电缆——它把经典意义下的求导翻译成分布意义下的转移求导让弱解这个概念从数学上合法化。这一篇我打算按我当年啃这块内容的真实顺序来写先从为什么需要弱导数这个痛点出发把 Sobolev 空间 $W^{k,p}$ 和 $H^k$ 的定义、范数、完备性捋清楚再讲磨光算子和稠密性这两个绕不过去的技术核心最后落到 Green 公式的推导、弱形式的建立以及我自己踩过的那些坑。适合正在读 Evans、Brezis 或 Adams 的读者对照着看也适合做数值解 PDE、需要理解有限元为什么那么写的工程同学。1. 为什么非要造一个 Sobolev 空间出来1.1 经典导数的不封闭性一个具体的痛先给一个最朴素的动机。考虑一维 Dirichlet 问题$$-u f \quad \text{in } (0,1), \qquad u(0)u(1)0$$如果 $f \in C[0,1]$你可以用经典方法说 $u \in C^2[0,1]$ 是解。但如果 $f$ 只是 $L^2$ 里的一个函数呢比如 $f$ 是一个阶跃函数那么 $u$ 就是一个二次分段多项式它的二阶导数在跳跃点上根本不存在。可是物理直觉告诉我们这个问题的解明明存在——一根梁在分布载荷下当然会弯曲。问题出在经典二阶可导这个要求本身太苛刻了它把一大批本该是解的东西排除在外了。另一个更技术性的痛点来自变分法。Poisson 方程的能量泛函是$$J(u) \frac{1}{2}\int_\Omega |\nabla u|^2 ,dx - \int_\Omega f u ,dx$$你要找它的极小元最自然的做法是取一个极小化序列 ${u_n}$然后希望它收敛。可 $J$ 只控制 $|\nabla u|{L^2}$它根本不控制 $|u|{C^1}$。也就是说极小化序列在 $C^1$ 范数下可能压根不收敛但在 $L^2$ 意义下想看导数又没定义。这个死结逼着我们必须换一个既能容纳不光滑函数、又能对导数提出 $L^p$ 可积要求、还必须是完备的空间。Sobolev 空间就是同时满足这三条的答案。我个人的理解是$C^k$ 空间像一把卡尺精度高但量不了毛坯$L^p$ 像一根软尺什么都能量但对变化率完全失明Sobolev 空间像一把带千分尺的软尺既能贴合一堆不规则形状又能读出导数信息。1.2 弱导数的定义把导数从被求导对象转移到测试函数上弱导数的核心思想只有一句话分部积分公式本身就是导数的定义。回忆一维分部积分对 $u \in C^1$ 和 $\varphi \in C_c^\infty(\Omega)$紧支集光滑函数所以边界项自动为零有$$\int_\Omega u \varphi ,dx -\int_\Omega u \varphi ,dx$$现在反过来用如果我们遇到一个只是 $L^1_{\text{loc}}$ 的函数 $u$它可能根本没有经典导数但只要存在某个 $v \in L^1_{\text{loc}}(\Omega)$ 使得$$\int_\Omega u ,\partial_i \varphi ,dx -\int_\Omega v ,\varphi ,dx, \qquad \forall \varphi \in C_c^\infty(\Omega)$$那我们就钦定 $v$ 是 $u$ 关于 $x_i$ 的弱导数记作 $\partial_i u v$ 或 $D_i u v$。多维情形同理对多重指标 $\alpha$定义是$$\int_\Omega u ,D^\alpha \varphi ,dx (-1)^{|\alpha|}\int_\Omega v ,\varphi ,dx$$为什么测试函数一定要取紧支集光滑函数因为紧支集保证 $\varphi$ 在边界附近为零分部积分产生的边界项自动消失这样定义里就不会混入边界值的信息。边界值的处理是后面迹定理单独要解决的事情这里先物理隔离掉。另外要强调$C_c^\infty$ 在 $L^p$ 里是稠密的$1\le p\infty$所以用它来探测一个 $L^1_{\text{loc}}$ 函数是完全够用的不会漏掉任何信息。1.3 弱导数唯一吗变分法基本引理给的定心丸定义里有个隐患万一 $u$ 有两个不同的弱导数 $v_1$ 和 $v_2$ 怎么办证明很简单但值得写一遍。若 $v_1, v_2$ 都是 $u$ 的弱导数相减得$$\int_\Omega (v_1 - v_2),\varphi ,dx 0, \qquad \forall \varphi \in C_c^\infty(\Omega)$$设 $w v_1 - v_2 \in L^1_{\text{loc}}$由变分法基本引理也叫 du Bois-Reymond 引理若 $w \in L^1_{\text{loc}}$ 且对所有 $\varphi \in C_c^\infty$ 积分为零则 $w 0$ 几乎处处成立。于是弱导数在几乎处处相等的意义下唯一。这个唯一性非常重要它意味着你可以放心地把 $\partial_i u$ 当作 $u$ 的一个属性来谈论而不是一个模糊的等价类。顺手做两个例子感受一下弱导数的边界在哪。第一个$u(x) |x|$ 在 $(-1,1)$ 上。经典意义下它在 $x0$ 不可导。但取 $v(x) \operatorname{sgn}(x)$$$\int_{-1}^{1} |x|\varphi(x),dx -\int_{-1}^{1}\operatorname{sgn}(x)\varphi(x),dx$$成立所以 $|x| \in W^{1,p}(-1,1)$ 对任意 $1\le p\infty$。这说明弱导数确实比经典导数弱得多。第二个$u(x) \chi_{(0,\infty)}(x)$ 在 $\mathbb{R}$ 上即阶跃函数。算一下$$\int_{\mathbb{R}} \chi_{(0,\infty)}\varphi ,dx \int_0^\infty \varphi ,dx -\varphi(0)$$如果弱导数 $v$ 存在需要 $-\int v\varphi -\varphi(0)$也就是 $\int v\varphi \varphi(0)$ 对所有 $\varphi$ 成立。可 $\varphi \mapsto \varphi(0)$ 是 Dirac 测度它不是任何 $L^1_{\text{loc}}$ 函数。所以阶跃函数没有弱导数。这个例子极其重要它划出了 Sobolev 空间的边界Sobolev 空间能容忍折角但容忍不了断崖。这也是为什么一维的 $W^{1,p}$ 函数恰好就是绝对连续函数在等价类意义下而且 $W^{1,p}(I) \subset C(\bar I)$——一维是个特别舒服的情形。2. Sobolev 空间的正式定义与空间结构2.1 $W^{k,p}$ 的定义与范数选择有了弱导数定义就水到渠成了$$W^{k,p}(\Omega) \left{ u \in L^p(\Omega) ;\middle|; D^\alpha u \in L^p(\Omega), ; \forall |\alpha| \le k \right}$$其中 $D^\alpha u$ 全部按弱导数理解。配上范数$$|u|{W^{k,p}} \left( \sum{|\alpha|\le k} |D^\alpha u|_{L^p}^p \right)^{1/p}, \qquad 1 \le p \infty$$$p\infty$ 时改成取上确界 $\max_{|\alpha|\le k}|D^\alpha u|{L^\infty}$。这个范数为什么这么取因为它就是把 $u$ 和它所有不超过 $k$ 阶的弱导数打包成一个向量再取 $L^p$ 范数。换句话说令 $U (D^\alpha u){|\alpha|\le k}$ 是那个导数堆栈那么 $|u|{W^{k,p}} |U|{L^p}$在有限维直和空间里。这个看法很实用因为它直接把 Sobolev 空间的完备性、凸性、自反性全部归结为乘积空间的性质。半范数 $|u|_{W^{k,p}}$ 里经常用到的还有$$|u|{W^{k,p}} \left( \sum{|\alpha| k} |D^\alpha u|_{L^p}^p \right)^{1/p}$$只取最高阶。这个半范数在讨论嵌入定理和 Poincaré 不等式时出现频率极高。注意它是半范数不是范数——常数函数的最高阶导数全为零但函数本身不为零。2.2 完备性为什么 Sobolev 空间是 Banach 空间定理$W^{k,p}(\Omega)$ 对 $1\le p\le\infty$ 是 Banach 空间。证明思路值得过一遍因为它展示了弱导数作为闭算子这个观念。取 $W^{k,p}$ 中的 Cauchy 列 ${u_n}$。由范数定义对每个 $|\alpha|\le k$${D^\alpha u_n}$ 都是 $L^p$ 中的 Cauchy 列。因为 $L^p$ 完备存在 $u^{(\alpha)} \in L^p$ 使得 $D^\alpha u_n \to u^{(\alpha)}$ 在 $L^p$ 中。特别地 $u_n \to u^{(0)} : u$。现在要证明 $u^{(\alpha)}$ 确实就是 $u$ 的弱导数。对任意 $\varphi \in C_c^\infty$$$\int_\Omega u_n D^\alpha \varphi (-1)^{|\alpha|}\int_\Omega D^\alpha u_n ,\varphi$$左边因为 $u_n \to u$ 在 $L^p$ 中而 $D^\alpha\varphi$ 有界、紧支集属于 $L^{p}$收敛到 $\int u D^\alpha\varphi$右边收敛到 $(-1)^{|\alpha|}\int u^{(\alpha)}\varphi$。所以极限关系成立$u^{(\alpha)} D^\alpha u$。于是 $u \in W^{k,p}$ 且 $u_n \to u$。这个证明里最关键的一步是弱导数算子在 $L^p$ 意义下是闭算子。它不需要任何先验的正则性假设纯粹靠定义里的积分恒等式就能把极限穿过去。这也是为什么 Sobolev 空间的定义必须建立在弱导数而不是某种广义函数意义下的模糊说法上——只有写成积分恒等式才能用测度收敛的定理把极限传递过去。这里有个我当年卡了很久的点不要去纠结$u_n \to u$ 在 $L^p$ 中是否蕴含$u_n \to u$ 逐点收敛。这在一般情况下是错的$L^p$ 收敛只保证有子列几乎处处收敛。完备性证明完全不需要逐点收敛这一点想明白之后就豁然开朗了。2.3 $H^k$当 $p2$ 时一切变得可爱工程和数值分析里最常用的其实是 $p2$ 的情形。约定$$H^k(\Omega) : W^{k,2}(\Omega), \qquad H^1(\Omega) : W^{1,2}(\Omega)$$为什么单独给个记号因为 $H^k$ 是 Hilbert 空间带内积$$(u,v){H^k} \sum{|\alpha|\le k} \int_\Omega D^\alpha u ,\overline{D^\alpha v} ,dx$$实值函数就把共轭去掉。有了内积就有了正交投影、Riesz 表示、Lax-Milgram 这些强力工具椭圆方程弱解的存在唯一性证明基本都建立在这一层。有限元方法也是在这个空间上做——你搭的试探空间 $V_h$ 是 $H_0^1$ 的有限维子空间Galerkin 投影就是把 $H_0^1$ 上的椭圆问题限制到 $V_h$ 上解而 $H_0^1$ 的 Hilbert 结构保证了这套投影有好的性质。顺便说一句 $H^k$ 的另一个免费好处$H^k$ 可以借助 Fourier 变换来理解。在 $\mathbb{R}^n$ 上$$|u|{H^k}^2 \sim \int{\mathbb{R}^n} (1|\xi|^2)^k |\hat u(\xi)|^2 ,d\xi$$这个刻画把导数可积翻译成高频衰减足够快是引入分数阶 Sobolev 空间 $H^s$$s$ 为实数的入口。把求 $k$ 阶导数变成乘 $(1|\xi|^2)^{k/2}$这在处理拟微分算子的时候特别顺手。不过分数阶这一块是下一篇的事了这里先留个钩子。2.4 $W_0^{k,p}$带零边值的那个子空间定义 $W_0^{k,p}(\Omega)$ 为 $C_c^\infty(\Omega)$ 在 $W^{k,p}(\Omega)$ 范数下的闭包。简单说就是用光滑且紧支集的函数去逼近能得到的那些元素。最常用的两个是 $W_0^{1,p}$ 和 $H_0^1$。这个空间的名字里那个 0 就是在边界上为零的意思但要注意它的严格含义需要迹定理来支撑对 Lipschitz 边界域存在连续线性迹算子$$\gamma: H^1(\Omega) \to L^2(\partial\Omega), \qquad |\gamma u|{L^2(\partial\Omega)} \le C|u|{H^1(\Omega)}$$而且 $\ker \gamma H_0^1(\Omega)$。也就是说$H_0^1$ 恰好就是那些迹为零的 $H^1$ 函数。这个刻画非常实用它让零边值条件从一个模糊的边界陈述变成了一个精确的算子核。为什么非要 $C_c^\infty$ 的闭包而不是直接说在边界上等于零的 $H^1$ 函数因为 $H^1$ 函数的边界值本身就没有定义——测度零集上的取值在 $L^p$ 意义下无意义。是所有迹定理先把边界值这个操作定义出来然后你会发现 $H_0^1$ 就是核。顺序不能反。空间之间的关系大概是$$C_c^\infty(\Omega) \subset H_0^1(\Omega) \subset H^1(\Omega) \subset L^2(\Omega)$$而且 $H_0^1$ 里成立 Poincaré 不等式若 $\Omega$ 在一个方向上有界比如被夹在两张平行平面之间则存在常数 $C_P$ 使$$|u|{L^2(\Omega)} \le C_P |\nabla u|{L^2(\Omega)}, \qquad \forall u \in H_0^1(\Omega)$$这条不等式是整个弱解理论的支柱后面讲强制性的地方还会用到它。3. 磨光算子与稠密性把光滑函数蹭回来3.1 磨光算子怎么造出来的Sobolev 空间里的函数只是一堆等价类可能处处不连续。要处理它们最基本的技术是卷积磨光。先造一个标准隆起函数取 $\eta \in C_c^\infty(\mathbb{R}^n)$ 满足$$\eta \ge 0, \qquad \operatorname{supp}\eta \subset \overline{B(0,1)}, \qquad \int_{\mathbb{R}^n}\eta,dx 1$$这样的函数一定存在标准构造是 $\eta(x) C\exp!\left(-\frac{1}{1-|x|^2}\right)$$|x|1$再适当归一化。$e^{-1/(1-|x|^2)}$ 这个因子在边界上所有阶导数都趋于零这是它 $C_c^\infty$ 的关键普通的多项式截断做不到。然后做缩放$$\eta_\varepsilon(x) \varepsilon^{-n}\eta!\left(\frac{x}{\varepsilon}\right)$$这个 $\varepsilon^{-n}$ 的系数保证 $\int \eta_\varepsilon 1$ 仍然成立体积缩放。于是定义 $u$ 的磨光$$u_\varepsilon(x) (\eta_\varepsilon * u)(x) \int_\Omega \eta_\varepsilon(x-y) u(y),dy$$在 $u$ 只定义在 $\Omega$ 上时需要先把 $u$ 零延拓到 $\mathbb{R}^n$ 再卷积然后限制回 $\Omega_{\varepsilon}$即 $\Omega$ 中距离边界大于 $\varepsilon$ 的点集这样卷积才有意义。为什么要缩放到 $\varepsilon^{-n}$因为你想让卷积核在 $\varepsilon \to 0$ 时趋向于 Dirac 测度而 Dirac 测度对应的密度在尺度 $\varepsilon$ 下量级就是 $\varepsilon^{-n}$。这一步算错了稠密性证明就崩了。3.2 关键性质与内部逼近定理磨光算子的四条核心性质我按重要性排一下光滑性$u_\varepsilon \in C^\infty(\Omega_\varepsilon)$。因为卷积可以把求导转移到光滑核 $\eta_\varepsilon$ 上即 $D^\alpha u_\varepsilon (D^\alpha \eta_\varepsilon) * u$。导数可交换更强的一条如果 $u$ 的弱导数存在那么 $D^\alpha u_\varepsilon \eta_\varepsilon * D^\alpha u$。这条是唯一使用弱导数本质的地方证明靠分部积分把卷积里的 $y$ 求导转成 $x$ 求导。范数不增$|u_\varepsilon|{L^p} \le |u|{L^p}$由 Young 不等式$|\eta_\varepsilon|_{L^1}1$得。收敛性$u_\varepsilon \to u$ 在 $L^p_{\text{loc}}(\Omega)$ 中进一步的若 $u \in W^{k,p}{\text{loc}}$ 则 $u\varepsilon \to u$ 在 $W^{k,p}_{\text{loc}}$ 中。把这些拼起来就得到内部逼近定理对任意紧集 $K \subset \subset \Omega$ 和 $\delta0$存在 $v \in C^\infty(\Omega)$ 使得 $|u - v|_{W^{k,p}(K)} \delta$。注意这里的 $C^\infty(\Omega)$ 函数是定义在整个 $\Omega$ 上的但逼近只在紧集上成立。为什么是内部因为磨光需要卷积核有空间活动靠近边界的地方没有足够的空间给你做平均只能往内部退。3.3 从内部到整体截断函数把边界绕过去要把内部逼近升级成整体逼近标准套路是三层结构先用截断函数把注意力缩到靠近边界的条带里再把条带拉直如果边界足够光滑在拉直后的半空间上用反射或者直接磨光最后拼回去。具体地说取一族截断函数 $\zeta_m \in C_c^\infty(\Omega)$$0\le\zeta_m\le 1$且在每个紧集上最终取值为 1。然后$$u \sum_{m1}^\infty \zeta_m u$$用可以把 $\zeta_m u$ 单独处理也可以在有限截断后用 $\sum_{m1}^{N}\zeta_m u$ 逼近 $u$。这里要注意$\zeta_m u$ 作为 $W^{k,p}$ 的元素是有意义的因为 $W^{k,p}$ 对乘以光滑有界函数且各阶导数有界是封闭的这个结论叫作乘法法则可以用 Leibniz 公式加弱导数的定义直接验证。最终得到两个经典的稠密性结论结论条件逼近空间内部稠密任意 $\Omega$$C^\infty(\Omega)$在 $W^{k,p}_{\text{loc}}$ 意义下整体稠密$\Omega$ 有 Lipschitz或更弱边界$C^\infty(\overline\Omega)$在 $W^{k,p}$ 整体范数下$W_0$ 逼近任意 $\Omega$$C_c^\infty(\Omega)$在 $W_0^{k,p}$ 范数下这里是一个极其常见的误解温床$C_c^\infty(\Omega)$ 在 $W^{k,p}(\Omega)$ 中不稠密当 $\Omega$ 有界且 $k\ge 1$ 时。因为 $C_c^\infty$ 的极限一定属于 $W_0^{k,p}$而 $W_0^{k,p}$ 是 $W^{k,p}$ 的真子空间比如常数函数 $1\in W^{1,2}$ 就不在 $W_0^{1,2}$ 里。这个坑我在第一次读 Adams 的时候踩得结结实实写出来提醒后来人。Lipschitz 边界的条件为什么够用因为它允许边界做局部参数化和有限次覆盖不需要无穷阶光滑。大多数工程问题的区域多边形、多面体、光滑曲线围成都满足所以这条定理的适用范围实际上很宽。真正的限制出现在需要更高阶正则性的时候这时候要用 $C^{k,\alpha}$ 边界。4. Green 公式把导数从解身上挪到测试函数上4.1 从散度定理到 Green 第一公式一切从散度定理Gauss 定理开始。设 $F \in C^1(\overline\Omega; \mathbb{R}^n)$$\Omega$ 有 Lipschitz 边界$\nu$ 是单位外法向量则$$\int_\Omega \nabla\cdot F ,dx \int_{\partial\Omega} F\cdot \nu ,dS$$取 $F uv\mathbf{e}_i$只有 $i$ 分量非零得$$\int_\Omega \partial_i(uv) ,dx \int_{\partial\Omega} uv,\nu_i ,dS$$展开左边$\partial_i(uv) (\partial_i u)v u(\partial_i v)$移项得$$\int_\Omega u,\partial_i v ,dx -\int_\Omega (\partial_i u),v,dx \int_{\partial\Omega} uv,\nu_i ,dS$$这就是 Green 公式的分量形式也称部分积分公式在多维的推广。把所有 $i$ 加起来取 $u v$ 换成 $\nabla$ 的写法就得到最常用的Green 第一公式$$\int_\Omega \nabla u \cdot \nabla v ,dx -\int_\Omega (\Delta u), v ,dx \int_{\partial\Omega} \frac{\partial u}{\partial \nu} v ,dS$$这里 $\Delta$ 按古典意义理解在弱形式下$-\int(\Delta u) v$ 本身就由左边的分部积分来定义。我更喜欢分量形式因为它把哪个方向的导数被转移了讲得明明白白而且推广到非散度型算子比如 $-\nabla\cdot(A\nabla u)$$A$ 是矩阵的时候用起来更自然。Green 第一公式的适用条件最经典版本要求 $u \in C^1(\overline\Omega)$$v \in C^1(\overline\Omega)$$\Delta u \in C(\overline\Omega)$或者等价地把 $\Delta u$ 看成分布。但真正重要的是它的弱版只要 $u, v \in H^1(\Omega)$$\Omega$ 是 Lipschitz 域公式$$\int_\Omega u,\partial_i v ,dx -\int_\Omega (\partial_i u),v,dx \int_{\partial\Omega} \gamma(u v),\nu_i ,dS$$依然成立其中边界积分按迹的配对理解。为什么 $H^1$ 就够因为乘积 $uv \in W^{1,1}(\Omega)$而 $W^{1,1}$ 函数的迹落在 $L^1(\partial\Omega)$ 里积分有意义。这一步的严格证明需要用到稠密性——先在 $C^\infty(\overline\Omega)$ 里证再用稠密性把等式两边都取极限左边是连续的、右边靠迹算子的连续性传递过去。这是先稠密后极限这套操作最经典的实战案例值得记在心里后面遇到任何这个公式对粗糙函数还成立吗的问题第一反应都应该是问稠密性。4.2 Green 第二公式与对称性视角把第一公式中的 $u$ 和 $v$ 角色互换得$$\int_\Omega \nabla u\cdot\nabla v -\int_\Omega v,\Delta u \int_{\partial\Omega} v,\partial_\nu u$$两式相减左边抵消得到Green 第二公式$$\int_\Omega \left( u,\Delta v - v,\Delta u \right) dx \int_{\partial\Omega} \left( u,\frac{\partial v}{\partial \nu} - v,\frac{\partial u}{\partial \nu} \right) dS$$这个公式在调和分析里有个漂亮的应用从中可以推出调和函数的解析函数的唯一性、平均值性质以及 Green 函数的存在性。具体做法是固定 $x\in\Omega$取 $v(y) \Gamma(x-y)$ 是 Laplace 方程的基本解$n3$ 时 $\Gamma(z) -\frac{1}{4\pi|z|}$它在 $yx$ 处有奇性需要在以 $x$ 为心的小球挖掉再做极限。跑完这一套就得到表示公式$$u(x) \int_\Omega G(x,y), f(y), dy, \qquad -\Delta u f \text{ in } \Omega, \quad u0 \text{ on }\partial\Omega$$其中 $G$ 是 Green 函数满足 $-\Delta_y G(x,y) \delta_x$ 且 $G(x,y)0$$y \in \partial\Omega$。这个式子的物理含义特别朴素解是所有点源响应的线性叠加。我在念本科的时候总觉得基本解 Green 函数这套东西是玄学直到自己手推了一遍才明白全部工具就是 Green 第二公式加一个挖洞极限。从算子角度看Green 公式揭示的是Laplacian 在弱意义下的自伴性。定义弱作用 $(Lu, v) \int \nabla u\cdot\nabla v$那么 $(Lu, v) (u, Lv)$对称性一目了然。而对称性正是 Lax-Milgram 和变分方法能用的前提。可以说Green 公式给出的不只是边界项怎么处理更是这个算子在 $H^1$ 上长什么样的完整描述。4.3 弱形式完整推导以 Poisson 方程为例现在把整套机器串一遍。考虑 Dirichlet 问题$$-\Delta u f \text{ in } \Omega, \qquad u 0 \text{ on } \partial\Omega$$其中 $\Omega$ 是有界 Lipschitz 域$f \in L^2(\Omega)$。第一步选试探空间。因为 $u$ 在边界上为零而 $H_0^1$ 恰好就是迹为零的 $H^1$所以 $u$ 应该在 $V H_0^1(\Omega)$ 里找。这个选择不是拍脑袋的它保证边界条件被自动吸收进空间定义不需要额外施加。第二步乘测试函数并积分。取任意 $v \in H_0^1(\Omega)$用 $v$ 乘方程两边在 $\Omega$ 上积分$$-\int_\Omega (\Delta u) v ,dx \int_\Omega f v ,dx$$第三步用 Green 第一公式把导数转移。$$-\int_\Omega (\Delta u) v ,dx \int_\Omega \nabla u \cdot \nabla v ,dx - \int_{\partial\Omega}\frac{\partial u}{\partial \nu},v,dS$$关键来了因为 $v \in H_0^1$它的迹 $\gamma v 0$所以边界项整个消失得到$$\int_\Omega \nabla u\cdot\nabla v ,dx \int_\Omega f v ,dx$$这就是弱形式。整个推导中用到的只有$u \in H^1$$v \in H_0^1$以及 Green 公式的 $H^1$ 版本。第四步验证双线性形式的连续性与强制性。定义 $a(u,v) \int_\Omega \nabla u\cdot\nabla v,dx$$F(v) \int_\Omega f v,dx$。连续性$$|a(u,v)| \le |\nabla u|{L^2}|\nabla v|{L^2} \le |u|{H^1}|v|{H^1}$$所以连续性常数 $M1$。强制性靠 Poincaré 不等式这里要 $u\in H_0^1$用 $|u|{L^2}\le C_P|\nabla u|{L^2}$$$a(u,u) |\nabla u|{L^2}^2 \ge \frac{1}{1C_P^2}\left(|u|{L^2}^2 |\nabla u|{L^2}^2\right) \frac{1}{1C_P^2}|u|{H^1}^2$$所以强制性常数 $\alpha \frac{1}{1C_P^2}$。注意这个常数的计算公式我是写全了的很多书上直接说由 Poincaré 不等式可得考试时候写不出这个 $\frac{1}{1C_P^2}$ 是要扣分的。至于 $F$ 的有界性$|F(v)| \le |f|{L^2}|v|{L^2} \le |f|{L^2}|v|{H^1}$。第五步Lax-Milgram 给出结论。因为 $V H_0^1$ 是 Hilbert 空间$a$ 连续且强制$F$ 有界所以存在唯一的 $u \in H_0^1$ 使 $a(u,v) F(v)$ 对所有 $v \in H_0^1$ 成立。这个 $u$ 就是弱解。这里必须强调一点弱解存在唯一并不等于它一定是经典解。弱解是否足够光滑到满足 $-\Delta u f$ 逐点成立那是正则性理论要回答的第二个问题。它需要 $f$ 和 $\partial\Omega$ 额外的光滑性假设结论也不同比如 $f \in L^2$、$\Omega$ 光滑时只能得到 $u \in H^2$不是 $C^2$。把存在唯一和光滑性当成两个独立的问题来看思路会清楚很多。4.4 用 Python 把 Green 公式验一遍符号验证这东西我觉得很有必要做一遍手推容易在符号上翻车代码能一秒钟抓出来。下面用 sympy 在单位正方形上验证散度定理取 $F (uv, 0)$ 的情形也就是 Green 分量形式在 $i1$ 且 $\partial\Omega$ 的 $\nu_1$ 分量非零的地方import sympy as sp x, y sp.symbols(x y, realTrue) u x**2 * y v x * y**2 f u * v # 对应 F 的 x 分量 # 左侧∫∫ ∂_x(uv) dx dy lhs sp.integrate(sp.diff(f, x), (x, 0, 1), (y, 0, 1)) # 右侧∮ uv n_x ds矩形四条边中只有 x1n_x1和 x0n_x-1有贡献 rhs sp.integrate(f.subs(x, 1), (y, 0, 1)) - sp.integrate(f.subs(x, 0), (y, 0, 1)) print(sp.simplify(lhs - rhs)) # 应为 0再给一个验证弱导数定义的脚本取 $u|x|$、$v\operatorname{sgn}(x)$ 和测试函数 $\varphi(1-x^2)^3 \in C_c^\infty(-1,1)$import sympy as sp x sp.symbols(x, realTrue) phi (1 - x**2)**3 u sp.Abs(x) v sp.sign(x) lhs sp.integrate(u * sp.diff(phi, x), (x, -1, 1)) rhs -sp.integrate(v * phi, (x, -1, 1)) print(sp.simplify(lhs - rhs)) # 应为 0说明 v 是 u 的弱导数跑这两个脚本的意义不在于算出答案而在于当你写论文时某个公式的符号记不清了能立刻验一遍。我自己的习惯是凡是要写进论文的 Green 类恒等式先在 sympy 里用两个最简单的多项式验一遍符号对不对一秒见分晓。这个习惯帮我抓过至少三次错误其中一次是把分量形式的负号写到了边界项上。5. 常见坑与排查速查5.1 概念混淆速查表这一节是我这些年被问过最多的问题汇总整理成表格方便检索。症状典型误解正确理解弱导数定义里的负号老记反以为负号只在多重指标时有$(-1)^{以为 $C_c^\infty$ 在 $W^{k,p}$ 稠密把 $W_0^{k,p}$ 的性质套到 $W^{k,p}$ 上在 $W^{k,p}$ 中稠密的是 $C^\infty(\overline\Omega)$$C_c^\infty$ 的闭包是 $W_0^{k,p}$是真子空间认为 $H^1$ 函数处处连续把一维结论搬到高维一维 $H^1 \subset C^{0,1/2}$$n\ge 2$ 时 $H^1$ 函数可以有无界代表元例如 $弱形式里边界项要不要留以为总是为零只有 $v$ 的迹为零即 $v\in H_0^1$时边界项才消失Neumann 问题里它保留为已知数据弱解就是经典解忽略了正则性这一步弱解存在唯一是 Lax-Milgram 给的经典性需要额外正则性理论以为 $\Delta u$ 在 $H^1$ 里是函数把二阶导数当一阶处理一般 $u\in H^1$ 时 $\Delta u$ 只是分布$-\Delta u$ 的弱形式化恰恰靠分部积分回避这一点用 Green 公式时不查边界条件直接对任意 $u,v\in H^1$ 用带边界项的公式需要 Lipschitz 边界 迹算子存在边界积分按 $\gamma(uv)$ 的配对理解再补两个不易被察觉的细节。第一$W^{k,p}$ 的定义里 $u$ 属于 $L^p$ 而不是 $L^p_{\text{loc}}$这是全局范数要求如果你的问题只关心局部用 $W^{k,p}{\text{loc}}$ 更合适许多局部正则性结论都写在这个空间里。第二Poincaré 不等式在 $H_0^1$ 上成立但在 $H^1$ 上不成立反例是常数序列$|1|{L^2} |\Omega|^{1/2} \ne 0$ 但 $|\nabla 1|_{L^2} 0$。所以做 Neumann 问题的时候强制性只能在整个商空间 $H^1/\mathbb{R}$ 上或者零均值子空间上得到这个细节在写论文的时候经常被审稿人揪住。5.2 一维手算模板怎么把弱导数快速算出来一维情形有个非常实用的模板我把它当作快速自检工具用。设 $I(a,b)$$u$ 是分段 $C^1$ 的允许有限个跳跃点或折点。那么在每段的内部弱导数就等于经典导数。在折点处弱导数存在取值就是左右导数中任一个因为折点测度零取值不影响 $L^1$ 等价类。在跳跃点处弱导数不存在因为跳跃贡献一个 Dirac 测度。用 $u(x) |x|$ 在 $(-1,1)$ 上验证折点在 0左右导数分别 $-1$ 和 $1$弱导数取 $\operatorname{sgn}(x)$$L^1$ 意义下唯一确定。用 $u \chi_{(0,\infty)}$ 验证0 处是跳跃跳跃量 1所以弱导数如果存在必然含 $\delta_0$不是函数矛盾。这套三条判据几乎能覆盖所有一维教科书的例子。推广到多维也类似沿着每个坐标方向看函数如果是折的连续但导数不连续属于 Lipschitz 类弱导数存在如果是断的跨越超曲面有跳跃弱导数不存在。这个直观图像对于判断我这个 Ansatz 函数到底在不在 $W^{1,p}$ 里特别好用。顺带说$|x|^{-\alpha}$ 在 $B(0,1)\subset\mathbb{R}^n$ 上属于 $W^{1,p}$ 的临界指标是 $\alpha \frac{n-p}{p}$也就是 $\alpha \frac{n}{p} - 1$这个指标在讨论临界指数和奇异位势时反复出现记下来不亏。5.3 数值侧的经验为什么有限元要用 $H^1$ 而不是 $C^1$最后分享一点从数值这边看过去的体会可能对做工程的同学更有用。有限元解 Poisson 方程的时候大家用的试探空间是分片多项式的、只在单元之间连续但不光滑的函数$C^0$ 单元而不是 $C^1$ 单元。为什么可以这样因为弱形式只需要 $\nabla u \in L^2$而分片多项式在单元交界处虽然导数跳跃但函数本身连续这正是一维分析里折点的高维版本属于 $W^{1,2}$ 而未必属于 $C^1$。所以标准的 $P_1$ 单元分片线性、全局连续恰好就是 $H_0^1$ 的有限维子空间Galerkin 方法在它上面完全合法。如果你改用只在每个单元内部光滑、跨单元不连续的 $L^2$ 空间去做 galerkin就必须用间断 GalerkinDG那一套多出来的数值通量项本质上就是在弱形式上补回跨界面跳跃的贡献。说白了弱形式的弱到底弱到什么程度直接决定了你的单元该做成什么样。理解这一点之后再回头去看有限元教材里那些繁琐的界面项就会觉得它们其实都是 Green 公式在不同光滑性假设下的自然产物。还有个小提醒写代码调试的时候如果发现组装出来的刚度矩阵不对称八成是边界项处理错了或者法向量方向搞反了。刚度矩阵的对称性来自双线性形式 $a(u,v)$ 的对称性只要边界条件施加得干净Dirichlet 通过空间施加、Neumann 通过右端项施加对称性必然保持。这个自检手段我用了很多次比逐行 debug 快得多。我个人在学这块内容时的体会是Sobolev 空间和 Green 公式这两件事千万不要拆开学。Sobolev 空间给出解生活在哪个空间里Green 公式给出这个空间上方程长什么样它们是同一个硬币的两面。当年我先孤立地把 Sobolev 空间的嵌入定理背熟了结果做 PDE 的时候完全不知道那些嵌入定理该往哪里用直到把弱形式从头推了一遍才突然明白嵌入定理是用来做先验估计和紧性的。所以如果你也在啃这一块建议直接拿 Poisson 方程当例子把定义、弱形式、Lax-Milgram、正则性这四步一口气走完走完一遍比看十遍定义管用。
返回列表