2.3 适定性:存在、唯一与稳定的三重契约


2.3 适定性:存在、唯一与稳定的三重契约

分类与性格都摸清之后,画像还差最关键的一格:这条方程配上手头的定解条件,算不算一个"良性的数学问题"。阿达马在二十世纪初给出的答案是三条契约——解存在、解唯一、解连续依赖于输入。三条全满足叫适定,缺任何一条,再高明的算法输出的都不是解而是垃圾。本节逐条过契约,并亲手复现阿达马那条著名的反例:一条拉普拉斯方程,把输入里的尘埃噪声放大到百万倍。

阿达马的三问

第一问:解存在吗? 不是所有合理的方程都有解。经典反例来自非线性方程(u_x)² + u_yy = 0 之类在实数范围内无解的情形;线性方程里,条件给错(超定、边界矛盾)同样导致空集。存在性证明往往是最难的一环——第四章有限元之所以在数学上站得住,正因为它的收敛理论同时给出了离散解的存在性。

第二问:解唯一吗? 唯一性缺失的典型是漏配条件:波动方程只给位移不给初速度,两条不同的时间轨迹都满足方程与已给条件。工程上更隐蔽的是"条件看似齐了实则退化"——泊松方程全部边界都给诺伊曼条件时,解与解加常数无法区分(温度整体抬高一度,梯度分布完全一样),必须补一个规范固定(比如指定某点温度或要求平均值为零)。第七章建模清单里"检查规范"一行就是这条教训的制度化。

第三问:解连续依赖于输入吗? 这是三条里最容易被忽视、也最有数值后果的一条。输入(初始数据、边界数据、方程系数)永远是带误差的——测量误差、舍入误差、离散误差。稳定性要求输入的小扰动只引起解的小变化,即存在连续的依赖常数:解的变化不超过某个系数乘以输入的变化。常数巨大时问题在数学上"有唯一解",在工程上不可用。

图解:三重契约与失效后果

适定性三重契约示意

适定性三重契约示意

阿达马反例:一半圆盘上的病态柯西问题

构造极简单:单位圆盘的上半部分,解拉普拉斯方程 Δu = 0,在直径边上给柯西数据——u(x, 0) = 0 且法向导数 u_y(x, 0) = (1/n)·sin(nπx)。注意边界数据的振幅随 n 增大反而变小(是 1/n),看起来越带 n 的输入越"温和"。解是

u(x, y) = (1/n²)·sin(nπx)·sinh(nπy)。

分母的 n² 压不过双曲正弦的指数增长:在 y = 0.1 这么浅的深度,n = 10 的分量振幅约为 sinh(π)/100 ≈ 0.115,而 n = 50 的分量达到 sinh(5π)/2500 量级——比 0.115 大无数个数量级。输入差异千分之一,输出差异天文数字:稳定性契约被撕碎。这个例子妙在它同时通过前两问(解存在、唯一,可写出公式验证),唯独第三问不及格——完美的存在唯一性丝毫不能阻止工程上的不可用。

为什么偏偏是柯西数据(在椭圆问题上同时给值与法向导数)闯祸?因为椭圆方程的"自然输入"是边值:给一圈完整的边界值(狄利克雷问题)是适定的;试图把"初值"的仪式强加给没有时间方向的方程,等于让它用一半边界的信息倒推另一半,信息量不足的部分由高频分量秘密补齐——指数放大正是补齐的代价。这解释了 2.2 节"椭圆拒收初值"的性格描述:不是拒收,是收了就爆炸。

数值实验:亲眼看噪声放大

不用推导也能验证。把反例中的高频分量逐项求和,观察解在深度 y 处对边界扰动的放大倍数。实验同时演示正则化的急救效果:对系数做截断(丢掉放大倍数超过阈值的分量),解立刻恢复平稳——这正是第五章反问题一节 Tikhonov 正则化的雏形。

import numpy as np x = np.linspace(0, 1, 1001) def hadamard_solution(y, ns, scale=1.0): """u(x,y) = sum scale/n^2 * sin(n*pi*x) * sinh(n*pi*y)""" u = np.zeros_like(x) for n in ns: u += (scale / n**2) * np.sin(n*np.pi*x) * np.sinh(n*np.pi*y) return u for n in [5, 10, 30, 50]: amp = np.sinh(n*np.pi*0.1) / n**2 # y=0.1 处的振幅 print(f"n = {n:3d} y=0.1 处振幅 = {amp:.3e}") # 正则化对照:只保留放大倍数低于 1e3 的模态 ns_all = range(1, 101) keep = [n for n in ns_all if np.sinh(n*np.pi*0.1) / n**2 < 1e3] u_raw = hadamard_solution(0.1, ns_all) u_reg = hadamard_solution(0.1, keep) print("未正则化最大绝对值:", np.abs(u_raw).max()) print("截断后 最大绝对值:", np.abs(u_reg).max())

输出里,n 从 5 到 50,振幅从十的零次方量级飙到十的十三次方量级;截断后最大值回落到正常量级。两行数字讲完适定性的全部教训:不稳定的数学问题不是"解不出来",而是"任何求解过程都会把误差放大到淹没信号";对付它只有两条路——重新提问(换定解条件),或正则化(牺牲一点精度换稳定)。

契约如何指导实践

三问各自对应工程现场的一个检查动作。存在性对应建模审查:定解条件是否恰好配齐方程的自由度(第一章建模之路数自由度的方法),边界值之间有无矛盾。唯一性对应规范检查:纯诺伊曼问题补规范、周期边值补均值约束,这类"补丁"在求解器里通常有开关,忘了打开的表现是迭代不收敛或解漂移。稳定性对应误差预算:判断一个数值流程可信与否,先估计问题的依赖常数——逆热传导、参数反演、图像盲去噪都属于天然不稳定问题,流程里必须显式安排正则化环节。第五章反问题与第七章验证确认,都建立在本节的分界线上:先问适不适定,再谈精度与效率。

⚠️ 常见坑:把"算法收敛了"当成"问题适定"的证据。不适定问题上,正则化算法当然也会收敛——收敛到的是正则化的近似解,不是原问题的解。两者之差恰好由被丢弃的高频分量决定,报告精度时必须说明这一点。

本节要点

  • 三重契约:存在、唯一、连续依赖,阿达马给出判断"问题良性"的完整判据;
  • 反例的构造:拉普拉斯方程柯西问题的解存在且唯一,但高频分量按 exp 放大,专毁第三问;
  • 性格的呼应:椭圆方程拒收初值,因为柯西数据必然引发指数放大,这不是数值缺陷而是问题本性;
  • 数值验证:十几行代码即可复现放大曲线,截断正则化立竿见影;
  • 实践映射:三问分别对应建模审查、规范检查、误差预算三个现场动作。

契约里"解"字反复出现,但解一定光滑吗?棱角、跳跃甚至更怪异的对象能不能也叫"解"?最后一节把"解"的语义扩容,为弱解正名。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U