如何将复杂的物理建模过程化繁为简?

本文介绍了基于数据驱动的主导平衡模型识别方法,它通过控制方程、高维方程空间、GMM聚类和SPCA降维,简化复杂物理过程。论文展示了在多个领域应用的成功实例,包括湍流、生物学等。这种方法有助于理解复杂系统并推动物理建模的实用化。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我们身处一个真实的物理世界,包含许多复杂的物理过程,一般难以对其进行完整的物理建模。然而纵观整个科学发展史,即使再复杂的物理过程也存在其所对应的简洁控制方程组。甚至针对局部时空的物理状态,有时仅由方程中的某些关键项或参数所构成的平衡决定。因此,在很多情况下,学界和业界可将复杂的物理建模过程化繁为简,只需识别与之最紧密相关的主导平衡模型,从而解决核心问题。本篇与大家分享一篇刊于Nature Communications 论文:Learning dominant physical processes with data-driven balance models。该文提出了一种基于数据驱动的方法策略,能够对复杂物理过程的主导平衡模型进行识别,并且能够在湍流、生物学、非线性光学、燃烧等领域有推广适用。

 背景介绍 

主导平衡模型(Dominant Balance Models),即将复杂的物理问题用相对简单的关键物理项或关键参数进行表征简化的模型。比如在管道流动状态的判别问题中,我们可以通过雷诺数(即流体粘性力和惯性力的比值)对管道内部的流动状态进行最初的判别(Re<2300为层流状态);但随着科学技术的发展,研究学者又进一步发现管道内部的流动状态不仅与雷诺数相关,还和管道粗糙程度,摩擦因子等关键参数相关。通过获取这些关键参数,我们即使不做实验,也可以对管道内部的流动状态进行精准地判别。由这些关键参数所组成的模型即为主导平衡模型。

在传统的主导平衡模型判别中主要依赖于科研专家对物理现象的经验直觉和物理问题的深度剖析,通过一些近似假设进行严格的量纲分析,最终推演获得,因此适用范围受限。该论文提出一种基于数据驱动的主导平衡模型识别的一般化策略,无需依赖经验公式,通过挖掘数据本身所蕴含的物理规律,对复杂物理过程进行简化,推演主导平衡模型,因此更容易在复杂系统物理建模中推广应用。

 如何识别主导平衡? 

论文所提的基于数据驱动的主导平衡模型识别,可以分成以下5步(本篇以平板边界层转捩至湍流为例,如图1所示):

  1. 寻找与物理问题相关的简洁控制方程。如图1b,此处的控制方程即为雷诺时均方程。

  2. 构建控制方程的高维“方程空间”(equation space),将局部时空上的点映射到高维空间上。所谓"方程空间",即将方程中的每一个控制项作为一个维度(或方向),如在该问题中有六个维度

    。将物理场中不同时空位置上的点及其对应的物理信息,映射到高维的方程空间,得到反映该物理问题的点云。由于流场中的各点均满足控制方程的的约束,因此均能在高维方程空间中找到相对应的点。

  3. 采用高斯混合模型(Gaussian mixture models,GMM)对高维“方程空间”的点云划分团簇。作者团队假定高维方程空间中的点是由有限数量的具有未知参数的高斯分布的混合生成,用高斯混合模型对其进行初步的聚类划分,将其划分成多个团簇,每个团簇的点可以重新投影到原先的物理空间上,进而对物理场进行不同局部区域的划分。但由于高维数据本身规律未必符合高斯分布假设,导致团簇的数量可能多于所需主导平衡模型的数量。

  4. 采用稀疏主成分分析(Sparse principal component analysis,SPCA)对各个团簇进行降维,提取协方差变化最大的主成分,对包含相同主成分的团簇进行合并和重新归类。如图1c所示,经过SPCA重新提取划分后,平板边界层转捩至湍流问题一共可划分5个局部区域,分别为转捩区,层流区,自由来流区,惯性底层和粘性底层区。

  5. 提取非零主成分构建主导平衡模型。如图1c所示,对提取的主成分重新投影至6个维度特征上,忽略在变化方向上"近零方差"的方程项,即可获取在该局部平衡中的关键项,从而获得主导平衡模型。如图1d所示,在平板边界层转捩湍流中,红色区域为粘性底层区域,以粘性力项和壁面法向的雷诺应力项为主导。该结果与经典量纲分析法所得的结论具有较好的一致性,符合常规的物理认知。

图1 平板边界层转捩至湍流的主导平衡模型识别

 复杂系统的应用验证 

为了验证所提策略的有效性和鲁棒性,作者团队针对不同的复杂系统进行了应用测试,如图2所示,包含转捩湍流、光脉冲传输、地球洋流运动、生物神经科学、发动机燃烧装置模拟等一系列复杂物理问题。结果表明,采用基于数据驱动的主导平衡模型识别方法与经典物理分析方法(如量纲分析)等所得的结果吻合良好,也符合相应的理论方程规律,在一定程度上验证了该策略的有效性。

图2 不同复杂系统的主导平衡模型识别

 思考与总结 

  • 论文提出了一种基于数据驱动以非监督学习的方式识别主导平衡机制,能够在复杂系统物理建模中推广。

  • 论文提出方程空间的视角,控制方程中的每一项用来描述该空间中的方向,主要的平衡关系可通过对稀疏子空间的限制而获得,即可忽略项在方程空间中的方差显著减小。

  • 识别主导平衡的方法从控制方程出发,通过高斯混合模型聚类和稀疏主成分分析的相结合的策略,避免了对局部时空物理行为的平衡关系的预先假设;其中,高斯混合模型能够识别划分方程空间中不同方向上的团簇,而稀疏主成分分析能够找到具有最大方差的方向来进一步提取稀疏子空间,从而获得主导平衡模型。

运用主导平衡模型,可以增强我们对复杂物理系统的局部时空行为的理解,从而简化研究的问题。基于此模型可以开发新的控制或设计策略,从而实现流动减阻或混合增强等目的。然而,作者团队也指出目前的策略仍然存在一些局限性。比如:该策略对方程中各项计算的精度十分敏感,尤其是有关梯度的计算部分;控制方程中的数据在真实实验中未必能够直接获得(如全场压力、雷诺应力项等)且真实数据带有噪声,可能需借助数据同化技术进行数据获取;"方程空间"未必呈现正态分布,还可以尝试别的聚类算法来增强策略的鲁棒性等。因此,在目前的研究基础上仍有很多尚待挖掘和尝试的新思路和挑战。

参考文献:

[1] Callaham J L, Koch J V, Brunton B W, et al. Learning dominant physical processes with data-driven balance models[J]. Nature communications, 2021, 12(1): 1-10.

 

Physics Modelling for Game Programmers 游戏编程中的物理建模(中文删节版) 后记】 我将这本书界定成 3D 游戏开发的入门书籍,其实一直来我都有一个疑问,起初的时候我看 了很多 3D 开发方面的书籍也做了一些例子程序,但是对 3D开发还是有许多未知,自从我 见到这书以后,我终于明白我缺少的是什么了?其实就是需要一条线把我所学过的这些知识 全部串起来,反观当下无论是纸皮书还是电子书往往都是将 3D 开发分成若干块,专门讲一 块或是几块,开发是一个整体,所以我看了那么多书似乎前面还是有一层纱捅不破。 如果你是个新手,那绝对在此书会找到很多你感兴趣的东西,如果对于 DirectX 你已经足够 了解但就是不知从何开始,这本书可以整理你的思路,带你走出山谷奔向另一座高峰。 大概因为作者是一名老师的缘故,论述有些拖泥带水,文中涉及到的 c++以及 Direct3D 基 础知识我都没有翻出,我相信你轻易就能找到相应的替代品,对于 15 章和 16 章的实例分 析没有翻,我想任何具备高中物理程度的人都不难推导出这些公式,所以传言说老外的应用 科学的普及教育做得奇差,大概是真的。 本书只能作为免费传播,请勿用于商业,谢谢,最后我非常希望我的努力能换来你的赞许, 如果真是这样,那我将会很荣幸! 底层模式:HAL 和HEL(删除) 高层模式:DirectX 组件(删除) COM对象(删除) 使用DirectX 初始化 DirectX 的硬件方法 使用DirectX 向导初始化 Direct3D 使用物理建模框架初始化 Direct3D 小结(删除) 第三节:3D 编程和物理学的数学工具(删除) 三角几何(删除) 2D坐标系(删除) 3D和4D坐标系(删除) 物理单位(删除) 矢量 代码中实现的矢量:物理建模的数学库 矢量与标量的乘除法 点积 叉积 单位化矢量 投影 Direct3D 中的矢量 矩阵 特性 加法和减法 乘法和除法 矩阵相乘 转置 行列式 逆矩阵 小结(删除) 第四节:2D 变换和渲染 2D变换 主动和被动变换 平移 旋转 缩放 组合变换 变换实现:一个三角形的自旋 使用物理建模的框架 设定几何体 更新帧(Frame) 渲染帧 将所有的步骤放置到一起(删除) 小结(删除) 第五节:3D 变换和渲染 3D变换 齐次坐标 平移 缩放 旋转 3D管道 局部坐标转世界坐标 世界坐标转观察坐标 观察坐标转投影坐标 投影坐标转屏幕坐标 3D渲染 例子1:3D 自旋三角形 例子2:自旋的圆椎 小结(删除) 第六节:网格(Mesh)和 X 文件 纹理 从文件创建纹理 设定纹理 材质 装载一个网格 获取纹理和材质 渲染网格 清除网格 d3d_mesh类 载入一个网格 渲染一个网格 d3d_mesh类中的引用计数 小结(删除) 第二部分:3D 对象,运动和碰撞 第七节:动态粒子 点状粒子 一维运动力学 速度(删除) 速度的导数求法(删除) 加速度(删除) 力 2D 和 3D 运动力学(删除) 质点模型 介绍d3d_point_mass类 使用d3d_point_mass类 游戏中的质点 小结(删除) 第八节:粒子碰撞 碰撞检测 包围球 包围圆柱 包围盒 空间分隔的优化 碰撞响应 动量守恒 能量 弹性碰撞 刚性碰撞 补偿系数 2D和3D 的粒子碰撞 球的碰撞 实现 小结(删除) 第九节:刚体动力 刚体 重心 2D 刚体旋转 2D 刚体的粒子 转矩和惯性力矩 3D刚体 3D转矩 3D 的平行轴定理 主轴线 定向 3D 刚体的实现 d3d_rigid_body类 初始化 d3d_rigid_body对象 更新d3d_rigid_body对象 渲染d3d_rigid_body对象 小结(删除) 第十节:刚体碰撞 碰撞检测 粗糙近似 碰撞检测的改进 碰撞响应 线性碰撞响应 角度碰撞响应 组合碰撞响应 更新物理建模框架 小结(删除) 第十一节:重力和抛射体 牛顿万有引力法则 抛射体轨迹 抛射体运动模型 冲力与恒力之间的差异 滚动 小结(删除) 第十二节:质量与弹力系统 实现弹力所需的事 头发与马尾辫 织物 一切从周期运动开始 胡克定律 衰减周期运动 实现织物 升级质点 弹力 织物类 初始化织物 更新和渲染织物 进行调整 增加织物的表现力 小结(删除) 第十三节:水体与波纹 水体与浮力 水的特性 浮力产生的原理 求取压强和密度 运动阻力 对摩擦力的观察 粘性阻力 水体的流向 波 实现水体 低开销实现的技巧 3D水体 在水体中放置对象 为刚体增加浮力 它会浮起来吗? 小结(删除) 第三部分:3D 模拟 第十四节:为游戏开发需做的准备 重新设计物理建模的框架 简单程序的初始化 添加一个游戏类 设置高效的矩阵变换 恢复丢失的设备对象 使用质点重新定义刚体 网格原点和重心 DirectInput 介绍(删除) 初始化 DirectInput(删除) 获取键盘和鼠标输入(删除) 关闭DirectInput(删除) DirectX 中的摄像机运动(删除) 小结(删除) 第十五节:汽车,气垫船,船只以及小舟(删除整章) 汽车 能量,力,加速度和摩擦 车辆的空气阻力 制动 车辆拐弯 实现一个基本的车辆模型 气垫船和无引力飞船 气垫船是如何工作的 气垫船的空气阻力 气垫船拐弯 船只和小舟 船只和小舟的包围边界 船体容积的计算 船只和小舟的续航能力 质量和有效质量 阻力和小舟 空气阻力 流速和波 小结 第十六节:飞机和宇宙飞船(删除整章) 飞行模拟的简单方法 低空飞行或是无物理影响 实现一个简单的飞行模拟 与飞机相关的物理学 飞机的主要部件 基本的动力 飞机建模:具备适合的地点和动力 与宇宙飞船相关的物理学 宇宙中的空战 火箭 月球着陆器 其他行星已知的物理学 其他行星待论证的物理学 结束语(删除) 附录 A 术语(删除) 附录 B C++的一个简明介绍(删除) 附录 C window编程基础(删除) 索引(删除)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值