跳到主要内容

这本书的坐标系:物理该在哪一层进来

1. 这一章讲什么

三件事: 把「仿真」这个词拆开——它是一条方程加上一刀切分,切完得到的那段程序叫求解器; 把「反着推」和「正着算」分开——它们难在完全不同的地方; 以及把「用 AI 做仿真」这句话拆成三种做法,而它们的差别只在一件事上:物理进到了哪一层。

它在全书链条里的位置:这是地图,不是风景。 第 01 章给了种子(一道题有两个都对的答案), 但没说清「物理」和「仿真」到底指什么东西。这一章补上,并且立起两个轴—— 后面十八章的每一章都能落进这两个轴张成的格子里。

这一章不给任何性能数字。 它是让你在读第 03 章以后的每一章时,知道自己站在哪儿。

2. 顶层全景

整章围着同一个场景转:烛火上方那缕烟。 第 01 章用它说明「一个输入两个答案」, 这一章用它说明「一次仿真到底由哪几件东西组成」。

真实现象 写成方程 切成有限个数 一段程序
┌──────────┐ ┌──────────┐ ┌──────────────┐ ┌──────────┐
│ 一缕烟 │ ──→ │ 速度怎么 │ ──→ │ 32×40 个格子 │ ──→ │ 每调一次 │
│ 从烛火 │ │ 随时间变 │ │ 时间步 Δt=1.5│ │ 往前推 │
│ 升起 │ │(四项+一 │ │ 一个状态 = │ │ 一小步 │
│ │ │ 条约束) │ │ 几千个浮点数 │ │ │
└──────────┘ └──────────┘ └──────────────┘ └──────────┘
↑ ↑ ↑
「模型」 「离散化」 「求解器」
这本书里的 切法一改, 它很准,
model 指这个 结果就变 也很慢

┌─────────────────────────────────────────────┤
↓ ↓
正问题:给 t=0,求 20 步后 反问题:给 20 步后,求 t=0
(烟往哪儿飘) (当初该吹多大的风)

这张图在讲什么: 从左到右,是一件真事被一步步变成计算机里的一堆数; 最后那个分叉,是全书所有任务的两种朝向。「物理该在哪一层进来」这个问题, 问的就是神经网络插在这条链子的哪一环上。

这一章的所有数字(32×40 个格子、Δt = 1.5、第一步跑出来的 0.1558) 都是书里那个烟羽例子的真实设置和真实输出; 「20 步」是我们为了把正反两个方向说清楚而挑的步数。

3. 先立一条记号,不然整本书都读岔

结论先行:这本书里的「模型」不是你以为的那个模型。

在机器学习圈子里,「模型」几乎总是指训练出来的那个网络。 这本书反过来:「模型」专指描述物理现象的那组方程; 训练出来的东西一律叫「NN」或者「网络」1

这不是文字游戏,它会直接让你读岔句子。 书里说「把模型放进训练过程」,意思是「把物理方程放进训练过程」; 如果按机器学习的习惯读成「把网络放进训练过程」,整句话就废了。 这组拆解全程遵守书的用法:说「模型」就是说方程。

4. 场:物理量不是一个数,是铺满整个空间的一层数

先看现象。 你想描述一缕烟,要描述什么? 不是「烟的速度是 3」——空间里每一个位置各有各的速度: 烟柱中心往上冲得快,边上慢,离得远的地方几乎不动。

「给空间里每一个点各配一个值」的这种东西,叫一个场(field)。 烟的例子里有两个场:速度场(每一点配一个带方向的量,往哪儿流、多快)和 烟雾浓度场(每一点配一个数,这儿有多少烟)。 后面还会冒出压力场——每一点的压力有多大。

物理定律就是「场怎么随时间变」的规则。 写下来是这样一句话: 「某一点的速度,在下一瞬间的变化率 = 这一点被别的东西推了多少 + 被别的东西拉平了多少 + ……」。 这种同时牵涉到「随时间变多少」和「随位置变多少」的方程,叫偏微分方程 (partial differential equation,几乎所有资料里都缩写成 PDE,你出门一定会撞见这三个字母)2

光有方程还不够,一个 PDE 通常有无穷多组解。 要把答案钉死,还得补两样东西: 初始条件(t = 0 时每一点分别是什么状态)和边界条件 (空间的边缘上发生什么——是撞墙弹回来,还是从这头出去从那头进来)3

5. 离散化:把连续的东西切成有限个数,这一刀之后才有求解器

结论先行:「求解器」不是解出公式,是一步一步往前挪。

上一节那个方程,除了极少数特例,没有公式可以直接写出答案。 能做的只有一件事:把连续的空间切成一格一格,把连续的时间切成一小步一小步, 然后从初始状态出发,一步一步往前推。

这一刀叫离散化(discretization)。切完之后,原本「无穷多个点上的无穷多个值」 变成了「有限个格子里的有限个数」——计算机能存、能算的东西。

烟羽那个例子的具体切法: 横向 32 格、纵向 40 格,一共 1280 个格子; 这些格子覆盖的物理区域横 0 到 80、纵 0 到 100 个单位;时间步 Δt = 1.54。 每个格子里要存烟雾浓度和速度,所以一个「状态」就是几千个浮点数

干「往前推一步」这件事的那段程序,就叫求解器(solver)。 你把当前状态交给它,它还给你 Δt 之后的状态;想看 20 步之后,就调用它 20 次。

同一条方程可以有很多种切法,而切法的选择有个名字:离散格式(discretization scheme)。 比如「一格里的导数用左右两个邻居算,还是只用上游那个邻居算」,就是两种不同的格式。

这里有一句书里非常硬的话,它是全书立场的地基: 几十年来数值数学发展出了大量高度专门化的离散格式,而 「对离散方式看似微不足道的改动,就能决定某个关键现象在解里出不出得来」5

主走查第 1 步: 一缕烟 → 两个场(速度、烟雾浓度)+ 一条 PDE → 切成 32×40 = 1280 个格子、Δt = 1.5 → 一段能把状态往前推 1.5 个时间单位的程序。 调它一次,书里那次跑出来的结果是:最大速度 0.1558、平均烟雾浓度 0.0081256

6. 那个人人都问的问题:AI 会不会取代传统仿真

先把对手的论据摆结实,这是书自己的做法。

书承认:已经有工作显示,基于神经网络的代替品在翼型绕流这类真实工业场景上 达到了所需的精度,同时运行时比传统求解器快好几个数量级7。 既然如此,与其小心翼翼地从第一性原理推方程,不如喂足够大的数据集?

书的回答只有四个字:这种担心没有根据(this concern is unfounded)7。 它的正面主张是:下一代仿真系统必须打通两个世界——经典数值方法 + AI。

理由就是上一节那句话。 那些离散格式是几十年打磨出来的、 「改一点点就决定关键现象出不出得来」的东西,扔掉太浪费; 而深度学习虽然强,却强烈受益于以物理模型形式给出的领域知识8

书还顺手回敬了「神经网络是黑箱」这个说法,而且用了一个很好的类比: 1950 年前后,数值方法自己也曾被这么看待——当时数值不稳定性被一位计算先驱称作 「未来持续的焦虑之源」;而今天我们对这些不稳定性已经很有把握了。 书的结论是:神经网络**「不过是一套新的数值工具」**,只是目前是我们手上处理非线性问题最强的一套9

7. 最简单的那条方程里,已经有两个方向相反的机制

书全书只用两条方程,先讲简单的那条:Burgers 方程。

它写出来只有两项,但这两项做的事正好相反:

它在干什么用烟来说
平流(advection)把东西搬走:某处的量顺着流速被输送到别处烟被往上带走
扩散(diffusion)把东西抹平:高的地方降下去、低的地方升上来烟柱的边缘慢慢变模糊

平流是「搬」,扩散是「抹」。 扩散这一项来自热力学第二定律—— 差异总是自发地被磨平,这是耗散10

Burgers 方程要紧在哪儿:它没有任何额外的约束,所以会撞出激波。 想象一维的一根线上,左半边的东西向右冲、右半边的东西向左冲。 两股相向而行的东西挤到一起,又没有任何机制阻止它们越挤越密, 于是在相遇处堆出一个几乎垂直的陡坎——这个陡坎叫激波(shock)11

书选它当起点的理由很实在:它简单,但非线性、不平凡。 「非线性」在这里有个很具体的意思:速度自己参与了搬运自己这件事 (搬得多快取决于速度本身),所以两倍的输入不给两倍的输出。

主走查第 2 步(反面): 把那缕烟换成只受平流和扩散支配的东西 → 相向而来的两股流在相遇处堆出一个陡坎 → 解里出现一个几乎不连续的跳变。 这正是下一节那条约束要防的东西。

8. Navier-Stokes 多的那一条:每一格净流出必须为零

结论先行:多的这一条约束,救了一件事,坏了另一件事。

描述真实流体的那组方程叫 Navier-Stokes 方程。 和 Burgers 相比,它在「动量守恒」之外多了一条:质量守恒12

质量守恒写出来是「散度为零」,而散度这个词可以完全用大白话讲清楚: 盯住一个格子,把从它六个面(二维就是四条边)流进来的量减去流出去的量, 得到的那个净额就叫这一格的散度(divergence)。 散度为零的意思是:流进多少就得流出多少,一格里既不能凭空多出东西,也不能凭空少掉。

好处立刻可见:上一节那个陡坎堆不起来了。 东西没法在某处越挤越密—— 挤进来多少必须挤出去多少,所以激波形成不了

坏处也立刻可见,而且是数值方法上的:这变成了一个硬约束。 「硬」的意思是每一步都必须真的满足,不能「差不多满足」。 书的原话是:它「为数值方法引入了一个新的挑战,形式是一条无散运动的硬约束」12

这条约束有多贵,第 03 章会用真数字走一遍—— 它是整条仿真流水线里最花时间的那一步。

烟能自己往上升,还差一样东西:浮力。 书用的是一个简化办法:另设一个标记场表示「哪里比较热」, 然后在竖直方向上按这个标记的大小加一份力,这样不必显式地算密度变化,热烟也会上升。 这个简化叫布森涅斯克近似(Boussinesq approximation)13

主走查第 3 步: 那缕烟的完整方程 = 平流(被自己的流速搬)+ 浮力(热的地方往上顶)

  • 压力(把不满足约束的部分推回去)+ 黏性扩散,外加一条「每格净流出为零」的硬约束。 切成 1280 个格子之后,求解器每调一次就把这四件事各做一遍、再强制一次那条约束。

9. 第二个轴:正着算,还是反着推

这两件事听起来像同一件事的两个方向,其实难在完全不同的地方。

正问题(forward problem):给定 t = 0 的状态,求它演化下去会变成什么。 这是求解器的本职工作——调 20 次,拿到第 20 步的烟羽形状。

反问题(inverse problem):给定观测,反推出产生它的参数或状态14。 比如:我看到第 20 步的烟羽是这个形状,当初 t = 0 时该往哪儿吹、吹多大的风?

反问题为什么难,书在讲长程控制那一章给了最清楚的一句: 约束只有序列末尾的一个状态,而可以调整的自由度和整个流场一样多15

把这句话摊开: 你手上只有一个「终点该长什么样」的要求, 却要去定一整片速度场上的每一个数;而且这些数中间隔着 20 步非线性演化—— 你改一丁点,20 步之后的结果可能面目全非。

主走查第 4 步: 正问题——给 t=0 的 1280 格状态,调求解器 20 次,得到 t=30 的烟羽形状。 反问题——只给 t=30 的那张形状,反推 t=0 该有的速度场:要定的数有上千个, 而约束只有末尾那一张图。

10. 第一个轴:物理能在哪三个位置进来

这是全书的骨架,也是我们第 05 到 10 章的分章依据。

按「物理模型和神经网络耦合得多紧」,书把所有做法分成三档16:

书里的名字物理进到哪一层我们哪几章
supervised(监督)数据由物理系统产生,此后再无交互——求解器算完一堆题目和答案就被扔掉05
loss-terms(损失项)物理动力学编码进损失函数;这是软约束,别名「physics-informed」06–07
hybrid(混合)完整的仿真和网络输出交错组合,要求求解器完全可微08–10

这三个英文名要记住,因为你出门就会撞见它们——尤其是第二档那个别名 「physics-informed」,它是最有名的一支(PINN)的名字来源。

回到烟的例子,三档各会怎么处理反问题:

  • 第一档: 先用求解器算几千组「初速度 → 20 步后的形状」存成数据集, 再训一个网络学「形状 → 初速度」。训完之后求解器不再出现。
  • 第二档: 不预先算数据。让网络吐一个初速度,把它代回方程, 看方程还成不成立,不成立的程度当损失。
  • 第三档: 让网络吐一个初速度,真的拿求解器跑 20 步, 看跑出来的形状离目标差多远,再把这个差距穿过那 20 步传回网络。

第三档要求「求解器完全可微」,这四个字是全书最大的一块工程量,第 08 章整章讲。

11. 但这三档不是全书的全部

必须当场说清,否则你会以为读完三档就读完了这本书。

书里还有两条线不在这三档里:

  1. 让网络吐一整个分布,而不是一个答案(第 11 到 16 章)。 这是和三档正交的另一把刀——第 01 章那个「只拿得到一支」的缺口就靠它补;
  2. 回头质疑训练时那个更新量本身算得对不对(第 18 到 19 章)。

外加一个对照组: 强化学习(第 17 章),书把它拿来和第三档比,而且它输了。

12. 书自己划的边界

书对自己不覆盖什么说得很清楚,这几条直接决定你能不能靠它解决手上的问题17:

只做不做
稠密的、基于场的仿真——就是本章第 4 节那种「把空间切成格子」拉格朗日方法——把流体表示成一堆跟着流动跑的粒子,那一类不在范围内(只在最后一章带一句)
深度学习的结合别的机器学习技术
合成数据(仿真造出来的)真实实验测量——书把它列为展望
回归——吐出一堆连续的数分类——判断属于哪一类;书明说全书只做回归18

另外两条:不提供深度学习和数值仿真的入门(推荐读者去读别的书), 也不是这个领域的研究综述19前一条正是这组拆解在补的东西;后一条意味着它引的工作有明显偏向。

还有一条容易漏掉、但后面会咬人的约定:测试集必须和训练集分布不同。 同分布的那一份只配叫验证集;要看泛化,测试数据得是分布外的。 书还诚实地补了一句:这件事没有金标准——从微小的改动到完全不同的输入, 中间是一整条连续的谱20这条约定在第 05 章会真的用到。

13. 主走查合起来看

同一缕烟,从现象走到「三档各怎么处理」:

发生了什么具体的数或状态
1现象变成两个场 + 一条 PDE速度场、烟雾浓度场;方程有平流、浮力、压力、黏性四项
2去掉质量守恒会怎样相向的两股流堆出陡坎 → 激波
3加上质量守恒每格净流出 = 0;激波没了,代价是一条每步必须强制满足的硬约束
4切成格子和时间步32 × 40 = 1280 格,横 0–80 / 纵 0–100,Δt = 1.5
5调一次求解器最大速度 0.1558、平均烟雾浓度 0.008125
6正问题调 20 次 → t = 30 的烟羽形状
7反问题只给 t = 30 的形状,反推 t = 0 的速度场:上千个未知数,一个约束
8第一档怎么做预先算几千组样例,训完扔掉求解器
9第二档怎么做把网络的答案代回方程,不成立的程度当损失
10第三档怎么做真的跑 20 步,把差距穿过这 20 步传回网络

格子数、物理尺寸、Δt 和第 5 步那两个数是书里的(见脚注); 「20 步」是我们挑的,书里那个反问题的例子用的也是 20 步,细节在第 09 章。

14. 作者的判断与证据

书里给了证据的:

说法证据是什么
神经网络代替品在翼型上达到工业精度、快好几个数量级引了一篇 2022 年的工作7;这是别人的结果,不是书自己跑的
一步仿真跑出来是什么样书里的真实运行输出:最大速度 0.1558、平均浓度 0.0081256
质量守恒防住激波、但引入硬约束这是数值方法的标准结论,书直接陈述12

作者的判断、书没有给出反面证据的:

说法为什么算判断
「AI 会取代传统仿真」这种担心没有根据书说「as we'll show in the next chapters」——它把论证推给了后面所有章节,这里只是立场7
「对离散方式看似微不足道的改动,就能决定关键现象出不出得来」书没有给具体例子或引用,这是领域经验5
神经网络「不过是一套新的数值工具」这是一个类比论证(拿 1950 年代的数值方法作比),不是证据9

判断(我们的,不是书里的): 第 6 节那句「这种担心没有根据」在这一章是一张空头支票, 它的兑现分散在后面十八章里,而且兑现方式是一边倒的—— 书证明的是「结合数值方法比不结合好」,没有证明「纯数据驱动的代替品做不到」。 第 05 章那个 2.5% 误差的翼型网络就是它自己给的反例:那东西相当好用。 如果错,会错在: 如果读者关心的场景只是「同一类问题反复算几千遍」, 那么纯代替品可能真的够用,书的立场在那个场景下偏保守。 判据是:你要的是又快又够准,还是要误差能被压到任意指定的阈值以下? 后者才是书的立场真正成立的地方(理由在第 14 章)。

15. 边界与局限

  • 这一章不含任何具体做法。 它只立坐标系;每一档具体怎么做, 从第 05 章开始一档一章;
  • 三档的分法是书自己的,不是行业标准。 别的资料可能把「physics-informed」 当成一个包罗万象的大词,把三档全装进去;
  • 两条方程只讲到「有哪几项、各在干什么」这一层。 怎么把它们变成能跑的代码、 哪一步最贵,全在第 03 章;
  • 「求解器完全可微」这个前提这一章只提了名字。 一个数值求解器怎么才能交出梯度、 为什么不能傻乎乎地对它每一步求导,是第 08 章的全部内容;
  • 书划的边界里,「不含拉格朗日方法」这一条对搞粒子仿真的人是硬伤—— 整本书对那一类只在最后一章给了一节。

16. 可带走的

  1. 「仿真」= 一条描述场怎么随时间变的方程 + 一刀把连续切成有限的离散化。 切完之后能把状态往前推一步的那段程序,叫求解器;
  2. 场 = 给空间里每一点各配一个值。 速度场、压力场、浓度场,全书就这几样;
  3. 离散格式的选择不是实现细节。 书的原话是,看似微不足道的改动就能决定 某个关键现象在解里出不出得来——这是全书不肯扔掉传统数值方法的全部理由;
  4. 散度 = 一格里的净流出。 「不可压」就是「每一格的散度为零」, 它防住了激波,代价是每一步都要强制满足一次;
  5. 平流是搬、扩散是抹。 只有这两项、没有额外约束的时候,相向的流会撞出激波;
  6. 两个轴,一张地图。 朝向:正着算 vs 反着推;耦合:数据源 / 写进损失 / 搬进训练;
  7. 反问题难在「约束少、自由度多」,不难在「方向反了」;
  8. 记住 supervised / loss-terms / hybrid 这三个英文名,你在别人的论文里会撞见;
  9. 这本书里的「模型」指方程,不指网络。 这一条不记住,后面很多句子会读反;
  10. 测试集必须分布外,同分布的那份只配叫验证集——而「多外算外」没有金标准。

17. 原文地图

主题原书章原文位置
「模型」指方程不指网络3.5 Models and Equationstext/02-p21-40.txt:468(搜「avoid using model to denote」)
* 上标的记号约定1.1 Differentiable physicstext/01-p1-20.txt:484(搜「idealized, and unknown functions」)
会不会取代传统仿真3.1.1 Replacing traditional simulations?text/02-p21-40.txt:331(搜「orders of magnitude」) · text/02-p21-40.txt:333(搜「this concern is unfounded」)
离散格式改一点点就决定关键现象3.1.1 同上text/02-p21-40.txt:342(搜「Seemingly trivial changes」)
深度学习受益于物理模型形式的领域知识3.1.1 同上text/02-p21-40.txt:338(搜「strongly profit from domain knowledge」)
「黑箱」与 1950 年的数值方法3.1.2 Black boxes?text/02-p21-40.txt:355(搜「constant source of anxiety」) · text/02-p21-40.txt:359(搜「a new set of numerical tools」)
三档耦合的定义3.2 Categorizationtext/02-p21-40.txt:399(搜「Supervised: the data is produced」) · text/02-p21-40.txt:406(搜「Hybrid: the full physical simulation」)
正问题 vs 反问题3.2 同上text/02-p21-40.txt:392(搜「inverse problems」)
可微物理的一堆别名3.2.1 Namingtext/02-p21-40.txt:419(搜「equivalent to using the adjoint method」)
场、初始条件、边界条件、离散误差3.5.2 Partial differential equationstext/02-p21-40.txt:521(搜「suitable initial conditions」)
测试集必须分布外、没有金标准3.5.1 Deep learning and neural networkstext/02-p21-40.txt:490(搜「out of distribution」)
只做回归不做分类3.5.1 同上text/02-p21-40.txt:501(搜「Classification vs Regression」)
Burgers:平流 + 扩散 + 激波3.5.3 Some example PDEstext/02-p21-40.txt:635(搜「interesting shock formations」)
Navier-Stokes:质量守恒与硬约束3.5.3 同上text/02-p21-40.txt:572(搜「hard-constraint for divergence free」)
布森涅斯克浮力近似3.5.3 同上text/02-p21-40.txt:583(搜「Boussinesq approximation」)
烟羽的格子数、Δt、第一步输出3.7 Navier-Stokes Forward Simulationtext/03-p41-60.txt:110(搜「40 × 32 cells」) · text/03-p41-60.txt:158(搜「Max. velocity and mean marker density」)
书自己划的范围3.3 Looking aheadtext/02-p21-40.txt:436(搜「Dense field-based simulations」)
不做入门、不是综述3.1.3 Reconciling AI and simulationstext/02-p21-40.txt:376(搜「no in-depth introduction to deep learning」)
反问题的难处(约束少、自由度多)19 Solving Inverse Problems with NNstext/09-p161-180.txt:915(搜「degrees of freedom」)

Footnotes

  1. 出处:第 3.5 节 Models and Equations(p.25)第 468 段(text/02-p21-40.txt:468,搜「avoid using model to denote」)。 原文明说这和某些其他文本与 API 的用法相反,并规定网络一律叫「NNs」或「networks」。

  2. 出处:第 3.5.2 节(p.26)第 508 段(text/02-p21-40.txt:508,搜「continuous PDE operator」)。 书直接用 PDE 这个缩写而不作解释;「偏微分方程」这个词的含义是我们补的 (补充,不在书里,来自通用知识:「偏」指方程里对多个自变量分别求变化率, 这里是时间和空间坐标各一份)。

  3. 出处:第 3.5.2 节(p.26)第 521 段(text/02-p21-40.txt:521,搜「suitable initial conditions」)。 原文说要得到唯一解,需要指定 t = 0 时所有关心量的初始条件,以及空间域边界上的边界条件。

  4. 出处:第 3.7.2 节 Setting up the simulation(p.32)第 110 段(text/03-p41-60.txt:110,搜「40 × 32 cells」) 与第 115 段(text/03-p41-60.txt:115,搜「DT = 1.5」)。 正文写「40 × 32 cells」,而代码里的参数是 x=32, y=40bounds=Box(x=(0,80),y=(0,100)) ——也就是横向 32 格覆盖 0 到 80,纵向 40 格覆盖 0 到 100。 同一节的散文里还写了「a Box of size 100 × 80」,把两个方向说反了;我们按代码写。

  5. 出处:第 3.1.1 节(p.22)第 342 段(text/02-p21-40.txt:342,搜「Seemingly trivial changes」)。 原文:「Seemingly trivial changes to the discretization can determine whether key phenomena are visible in the solutions or not.」 书没有给出具体例子,这是领域经验式的陈述。 2

  6. 出处:第 3.7.2 节(p.33)第 158 段(text/03-p41-60.txt:158,搜「Max. velocity and mean marker density」)。 这是书里那段代码调用一次 step() 之后的真实打印输出:[0.1558497, 0.008125] 2

  7. 出处:第 3.1.1 节 Replacing traditional simulations?(p.22)第 331 段 (text/02-p21-40.txt:331,搜「orders of magnitude」)与第 333 段 (text/02-p21-40.txt:333,搜「this concern is unfounded」)。 被引的翼型工作是 [CT22];这是别人的结果,书把它当作对手的论据摆出来。 2 3 4

  8. 出处:第 3.1.1 节(p.22)第 338 段(text/02-p21-40.txt:338,搜「strongly profit from domain knowledge」)。

  9. 出处:第 3.1.2 节 Black boxes?(p.23)第 355 段(text/02-p21-40.txt:355,搜「constant source of anxiety」) 与第 359 段(text/02-p21-40.txt:359,搜「a new set of numerical tools」)。 那句「未来持续的焦虑之源」书标为引自 H. Goldstine [Gol90]; 这是书在引一位数值计算史作者的话,不是书自己的判断。 2

  10. 出处:第 3.5.3 节 Some example PDEs(p.27)第 551 段(text/02-p21-40.txt:551,搜「advection term」)。 原文把两项分别注为「motion / transport」和「dissipation due to the second law of thermodynamics」。

  11. 出处:第 3.5.3 节(p.27)第 635 段(text/02-p21-40.txt:635,搜「interesting shock formations」)。 原文说 Burgers(不像 Navier-Stokes)不含质量守恒这类额外约束,因此会导致有意思的激波形成。 「两股相向而行的流撞出陡坎」这个具体图景来自第 3.6 节那次真实运行的结果 (text/03-p41-60.txt:28,搜「shock」),第 03 章会走一遍。

  12. 出处:第 3.5.3 节(p.27)第 572 段(text/02-p21-40.txt:572,搜「hard-constraint for divergence free」)。 原文:多出来的质量守恒方程「prevents the formation of shock waves, but introduces a new challenge for numerical methods in the form of a hard-constraint for divergence free motions」。 「散度 = 一格里的净流出」这个说法是我们补的(补充,不在书里,来自通用知识), 书直接写符号 ∇ · u = 0。 2 3

  13. 出处:第 3.5.3 节(p.27)第 583 段(text/02-p21-40.txt:583,搜「Boussinesq approximation」)。 原文说它「approximates changes in density for incompressible solvers, without explicitly calculating ρ」 (见 text/03-p41-60.txt:89,搜「without explicitly」)。

  14. 出处:第 3.2 节 Categorization(p.23)第 392 段(text/02-p21-40.txt:392,搜「inverse problems」)。 原文的定义是「obtaining a parametrization or state for a physical system from observations」。

  15. 出处:第 19 章 Solving Inverse Problems with NNs(p.161–180)第 915 段 (text/09-p161-180.txt:915,搜「degrees of freedom」)。 原文说这类任务「only have very indirect constraints to be fulfilled (a single state at the end of a sequence), and a large number of degrees of freedom」。这句话出现在很后面的一章,我们把它提到这里, 是因为不给这句话,「反问题难」就只是一个断言。 那一章的完整内容在我们的第 10 章。

  16. 出处:第 3.2 节(p.23–24)第 399 段(text/02-p21-40.txt:399,搜「Supervised: the data is produced」) 与第 406 段(text/02-p21-40.txt:406,搜「Hybrid: the full physical simulation」)。 「physics-informed」这个别名在第 403 段(text/02-p21-40.txt:403,搜「physics-informed」)。

  17. 出处:第 3.3 节 Looking ahead(p.24)第 436 段(text/02-p21-40.txt:436,搜「Dense field-based simulations」)。

  18. 出处:第 3.5.1 节(p.26)第 501 段(text/02-p21-40.txt:501,搜「Classification vs Regression」)。 原文:「we only deal with regression problems in the following」。

  19. 出处:第 3.1.3 节 Reconciling AI and simulations(p.24)第 376 段 (text/02-p21-40.txt:376,搜「no in-depth introduction to deep learning」)。 同一处还写着「the aim is neither a broad survey of research articles in this area」。

  20. 出处:第 3.5.1 节(p.25)第 490 段(text/02-p21-40.txt:490,搜「out of distribution」)。 原文:「There's no gold standard, but test data should be generated with care.」 这条约定在第 05 章的翼型实验里第一次真的被用到,那里用的分布外测试是「换一批全新的翼型」。