本页目录
综合项目 · 冷却后的温度能告诉我们最初哪里更热吗?
物理入口:把一根杆的冷却过程写成可检验的模型,再判断逆推结果究竟得到了哪些证据。前置只需导数、正弦函数与指数衰减;本页会补出分离变量的关键步骤。本项目全部数据由已知模型构造,不是实际材料的测温记录。
学习层:温度曲线变平了,丢失的细节还能找回来吗?
1. 先区分“曾经加热过”与“现在还在加热”
一根杆曾被加热,也可能有局部区域比周围更冷。到 \(t=0\) 时,我们停止加热,随后只让温度分布自行扩散。过了一段时间,16 个测点各读出一个数。我们要找的是 \(t=0\) 的温度分布,不是持续热源的位置或功率。
先把模型的每个条件说清楚:
| 场景中的对象 | 数学记号与单位 | 本项目的约定 |
|---|---|---|
| 杆的位置 | \(x\),米(m) | \(0\le x\le L\),\(L=1\,\mathrm m\) |
| 从停止加热起经过的时间 | \(t\),秒(s) | 首次观测在 \(0.5\)、\(1\) 或 \(1.5\,\mathrm s\) |
| 相对固定热浴的温差 | \(u(x,t)\),开尔文(K) | \(u=T-T_{\rm bath}\);负值表示比热浴冷,不是负绝对温度 |
| 热扩散率 | \(\kappa\),\(\mathrm{m^2/s}\) | 默认 \(0.01\,\mathrm{m^2/s}\),在杆上保持常数 |
| 两端温差 | \(u(0,t),u(L,t)\) | 都固定为零,即两端维持热浴温度 |
| 内部读数位置 | \(x_j=jL/17\) | \(j=1,\ldots,16\),不把固定温度的端点当作传感器 |
把杆视为一维,意味着忽略横截面上的温差;本模型也忽略对流、辐射和持续内热源。在这些假设下,热方程是
它把局部形状与局部变化连起来:在一个光滑的温度峰顶,\(u_{xx}<0\),所以 \(u_t<0\),峰顶会降温;在谷底则相反。这里控制变化的是曲率,不是仅凭“这个点很热”作判断。两端被固定热浴维持温度,杆可以通过端点交换热量,因此不能要求整根杆的总热量始终不变。
单位先对一次账:左边是 \(\mathrm{K/s}\),右边是 \((\mathrm{m^2/s})(\mathrm{K/m^2})=\mathrm{K/s}\)。如果实验中仍在加热,方程就需加入热源项;如果材料参数随位置变化,空间算子也要相应改变。本项目的逆推公式不能直接搬到那些模型中。
2. 一种温度形状为什么会按指数衰减?
先找一种在冷却时只改变高度、不改变形状的解,写成
代入热方程,在可除的位置分离变量:
左边只依赖时间,右边只依赖位置;要在整个区域相等,只能等于同一个常数。两端固定为零,非零的空间解满足
\(\mu=0\) 时,直线同时在两端为零,只能是零解;\(\mu<0\) 的指数型空间解也不能满足两个零端点而保持非零。因此非零模态取 \(\mu>0\)。先由左端条件留下正弦,再由右端条件限制波数:
时间部分于是只剩一阶方程:
记衰减因子为 \(s_k(t)\),衰减时间尺度为 \(\tau_k\):
\(k\) 越大,沿杆变化越密,代表越细的空间结构;其衰减率按 \(k^2\) 增长。例如第 6 模态的衰减率是第 1 模态的 36 倍。这个结论来自热方程的二阶空间导数,不是绘图程序刻意把细节擦掉。
线性方程允许把这些解相加。本项目只保留前 8 个正弦模态,连续温度曲线定义为
\(a_k\) 是初始模态系数,单位为 K。前面的无量纲系数用于下面 16 个测点的离散正交归一化;它不是要求正弦函数在连续区间上的积分范数等于 1。八模态是明确的建模限制:本实验没有声称用 16 个读数恢复任意精细的连续温度分布。
3. 从杆到读数:我们实际逆推的是哪一步?
先列出完整的数据链,避免把图上的曲线当成直接观测到的真相:
| 步骤 | 数学对象 | 物理含义 |
|---|---|---|
| 准备初态 | \(a\in\mathbb R^8\) | 8 个初始模态系数 |
| 等待冷却 | \(S(t)a\),\(S(t)=\operatorname{diag}(s_k(t))\) | 各模态分别衰减 |
| 读取测点位置 | \(Q S(t)a\in\mathbb R^{16}\) | 16 个测点的无噪声温差 |
| 加入传感器误差 | \(y=Q S(t)a+\varepsilon\) | 实际交给逆推器的 16 个数 |
这里
噪声模型是每个测点独立的 \(\varepsilon_j\sim\mathcal N(0,\sigma^2)\);\(\sigma\) 的单位也是 K。它是本模拟的传感器模型,不表示真实仪器的误差必定独立或服从高斯分布。
乘 \(Q^\top\),把测点读数投影到模态坐标:
由于 \(Q\) 的列正交归一,投影后每个噪声分量的方差仍是 \(\sigma^2\)。无正则逆推逐项除以 \(s_k\):
最后一项解释了问题:冷却时被压小的模态,逆推时也会把噪声放大。有限时间内这些 \(s_k\) 都大于零,所以在八模态、参数正确、无噪声且精确运算的条件下可以反解;读数中一旦有误差,“公式可逆”就不保证“恢复稳定”。
无脚本也能算的小例子。 单独构造 \(a_1=a_6=1\,\mathrm K\)、其余系数为零,并令 \(t=1\,\mathrm s\)、\(\sigma=0\)。这不是默认数据的某一条记录,只是代公式的练习:
分别除以各自的衰减因子都会还原 \(1\,\mathrm K\)。若两个模态读数恰好都多出同一个小误差 \(\delta\),初态系数误差却分别成为 \(e^{0.01\pi^2}\delta\) 与 \(e^{0.36\pi^2}\delta\);第 6 模态的误差放大明显更强。这里给定的 \(\delta\) 是用于比较的扰动,不是宣称每次随机噪声都相等。
4. 动手前先判断,再用三本账核对
先写下预测与理由:
- 噪声幅度相同,晚一点测温,会让初态细节更容易恢复还是更困难?
- 两个逆推结果都能贴近当前温度读数,是否就同样接近真实初态?
- 再过 \(0.5\,\mathrm s\) 测一次,预测准确是否足以证明恢复了第 6 模态?
静态后备:上节双模态例子给出了 \(t=1\) 时的读数。到 \(t+0.5\),各模态在已有读数上再乘
因此第 1 模态成为 \(e^{-0.015\pi^2}\,\mathrm K\),第 6 模态成为 \(e^{-0.54\pi^2}\,\mathrm K\)。对任意重建系数 \(\widehat a\),把 \(Q S(t+0.5)\widehat a\) 与独立的新读数比较即可检查未来预测;初态则比较 \(Q\widehat a\) 与 \(Qa\)。二者检查的是不同对象。
| 检查对象 | 比较什么 | 单位与解释 |
|---|---|---|
| 初态场 RMSE | \(Q\widehat a\) 与模拟真值 \(Qa\) | K;只有模拟中才直接知道真值 |
| 当前读数残差 RMS | \(Q S(t)\widehat a\) 与用于拟合的 \(y\) | K;反映贴合已用读数的程度 |
| 后续时刻预测 RMSE | \(Q S(t+0.5)\widehat a\) 与未参与拟合的新读数 | K;仍包含新测量噪声 |
读图顺序:先确认杆上 16 个测点及温差单位;再比较初态曲线与冷却后的读数;最后同时看三项误差。并排比较无正则、Tikhonov 与学习型滤波器,观察方法怎样改变“贴合当前读数”和“恢复初态”的取舍。
建议先选正确扩散率的平滑场景,固定一条测试轨迹,把噪声从零调到非零;再固定噪声改变观测时刻。切到高频场景,看看训练分布以外的第 6 模态会怎样影响判断。更换 \(t\) 或 \(\sigma\) 时,实验按固定种子重新生成各数据集并重新拟合学习滤波器;不能把不同设置中的方法读数误解成同一个已经冻结的估计器。
实验的 Tikhonov 惩罚是 \(\lambda\lVert a\rVert^2\),约束系数大小,不直接惩罚空间导数。学习型方法只拟合 8 个逐模态线性系数,不是神经网络。数学入口解释滤波公式,AI 入口解释训练与验证规则;这里要抓住它们共同面对的物理限制:细尺度温度形状已被扩散压低。
5. 为什么另一次测温仍不能证明所有初态细节?
后续读数发生在 \(t+0.5\,\mathrm s\),噪声与首次读数独立,并且从未交给逆推器拟合。这比只查看当前残差多了一项有用的检验,但它仍然经过同一个平滑过程。
设某次重建的第 \(k\) 模态初态误差为 \(\Delta a_k\)。它到后续读数中的影响只有
对较大的 \(k\),即使 \(\Delta a_k\) 不小,乘上很小的 \(s_k\) 后也可能被新噪声掩盖。因此“未来温度预测很好”支持模型在这个观测尺度上的预测,不能直接证明初态的每一条细纹都恢复正确。即使模型和初态都完全正确,与含噪声的新读数比较时也会留下噪声误差。
在真实实验中,我们看不到隐藏的初态真值。若要验证初态细节,需要额外的独立物理证据,例如更早时刻的可靠测量,或事先受控且已知的初始条件;不能用同一份拟合数据反复作证。
6. 反例:扩散率写错,零残差也会认错初态
错误扩散率场景保持初态生成分布不变,但测试数据实际使用
所有估计器仍按后者计算衰减。先去掉噪声,只看无正则逆推的一项;令 \(\mu_k=(k\pi/L)^2\):
真实材料衰减得更快,估计器却以为它衰减得较慢,于是把部分衰减误认成“最初就没有那么大的模态”。把这个错误初态代回假定模型,仍然正好得到当前的 \(b_k\):当前残差可以为零,初态却不正确。
再过 \(\Delta t=0.5\,\mathrm s\),从当前模态读数出发,两种预测分别是
对非零模态,假定模型的振幅衰减不足;独立后续读数有机会揭示这个不一致。不过细模态太小或噪声太强时,差异仍可能不易看见。这里推导的是无噪声、无正则情形,用来隔离模型错误;有正则或学习滤波时,还会叠加估计偏差。调大正则强度不能替代对材料参数和边界条件的检验。
多测几个时刻,能看见所有空间细节吗?
本项目预先把初态限制在前八个正弦模态内;这项假设很关键。暂时放宽它,考虑长度 \(L\) 的同一根棒,在任意解上增加
\(A\) 的单位是 K。这个函数满足热方程和两端零温差边界,但在所有原测点 \(x_j=jL/17\) 上,\(\sin(17\pi x_j/L)=\sin(j\pi)=0\)。因此不论何时测量,原来的 16 个传感器都完全看不见这项;即使没有噪声、无限次重复同一网格,也不能辨别 \(u\) 与 \(u+w\)。
在未测的位置 \(x=L/34\),正弦恰为 1。取 \(A=1\) K、\(L=1\) m、\(\kappa=0.01\) m²/s,\(t=0.1\) s 时这里仍相差约 \(0.057711\) K,原网格上的差却严格为零。它与高频信号很小但非零、会放大噪声的情形不同:这里存在观测算子的精确核。
迁移核对:这与八模态矩阵的八个奇异值都为正矛盾吗?
不矛盾。第十七模态不在原来的八维模型空间中。满列秩只保证限定模型内的唯一性;不能保证任意连续初态都可恢复。增加 \(x=L/34\) 的测点可识别本例这一个方向,但仍不凭一个新点就保证识别无限维初态。报告重建误差时,应同时写清允许的初态空间与传感器几何。
7. 独立迁移题:改变杆长,还是改变物理模型?
不用读取实验答案,分别给出公式与理由:
- 换成 \(L=2\,\mathrm m\) 的杆,扩散率与模态编号 \(k\) 不变。若要达到原来 \(1\,\mathrm s\) 后相同的相对衰减,需要等多久?“相同编号”表示相同的相对空间形状,不是相同米制波长。
- 初态只有第一正弦模态且 \(a_1<0\),因此杆内部比热浴冷,即 \(u<0\)。没有持续热源时,这个负系数随时间会变得更负,还是趋近零?用时间因子回答。
- 只在 \(t\) 时刻读取一个非零模态,既不知道其初态系数 \(a_k\),又不知道 \(\kappa\)。无噪声能否唯一确定这两个未知量?如果再获得一个不同时间的精确读数,会增加什么信息?
核对推理与边界
1. 等 4 秒。 相对衰减的指数是 \(\kappa k^2\pi^2t/L^2\)。长度加倍,要把时间乘 4 才能保持指数不变。比较的是同一编号的正弦形状;若比较相同的物理波长,则不能直接套这个结论。
2. 趋近零。 \(a_k(t)=a_k(0)e^{-t/\tau_k}\),指数因子为正且逐渐减小,所以符号不变,绝对值减小。负温差意味着向热浴温度靠近,不意味着绝对温度低于零 K;多模态叠加时,不应把单个系数的行为误说成每个点都单调变化。
3. 一个读数不够。 对任意候选 \(\kappa\),都可取 \(a_k=b_k(t)e^{\kappa\mu_k t}\) 得到同一个读数。再有 \(t_2>t_1\) 的非零精确读数,且已知这确实是同一个自由衰减模态,则
两读数同号,比例为正,才能使用这个公式。真实含噪数据若接近零,取比值和对数会很不稳定;持续热源、变化的边界或空间不均匀的扩散率也会破坏单模态自由衰减假设。若用第二次读数估计 \(\kappa\),它就成为拟合数据,不能再称为同一次评估中的独立后续检验;本项目特意保留它,只作检验。
把这次实验带到另外两个入口
数学入口:模态衰减、奇异值与正则化 解释逆推为何放大噪声,以及 Tikhonov 的滤波因子怎样推出来。AI 入口:完整轨迹划分与分布外测试 解释学习滤波器、验证集选择与测试报告。三个入口共享同一个实验,不代表进行了三次独立的物理研究。
可下载 完整协议、独立 NumPy 参考脚本 与 默认完整基准数据。默认数据对应协议规定的 \(t=1\,\mathrm s\)、\(\sigma=0.02\,\mathrm K\);网页切换设置后,要连同设置记录一并解释结果。每份导出的测试数据只用于评估,不能再用它反过来选择参数,然后把同一批测试误差当作独立成绩。
一份合格的物理实验结论应交代四件事:采用了哪些边界与材料假设;测点读到了什么;哪些初态结构的恢复有证据支持;哪些误差仍可能来自噪声、过度简化或错误参数。先明确这些,逆问题才有可核查的物理含义。
项目速查
| 物理约定 | 公式或检验 |
|---|---|
| 超额温度与边界 | \(u=T-T_{\rm bath}\),\(u(0,t)=u(L,t)=0\);无持续热源 |
| 前向演化 | \(u_t=\kappa u_{xx}\),\(\kappa=0.01\,\mathrm{m^2/s}\),\(L=1\,\mathrm m\) |
| 模态衰减 | \(s_k(t)=e^{-\kappa(k\pi/L)^2t}\),\(\tau_k=L^2/(\kappa k^2\pi^2)\) |
| 模型失配测试 | 实际 \(\kappa=0.016\),逆推仍用 \(0.01\);初态分布不变 |
| 独立时间检验 | \(t+0.5\) 秒新读数不参与拟合;预测好不能证明初态细节恢复正确 |
学习模式包含分离变量推导、测点图、交互实验和可辨识性迁移题。全部结果来自八模态模拟。