今天的文章只有一点点

发表于 讨论求助 2023-08-22 11:26:49

大约是在今年一月中旬, 我抬起头来, 第一次看见了墙上的那个斑点. 为了要确定是在哪一天, 就得回忆当时我看见了些什么. 现在我记起了炉子里的火, 一片黄色的火光一动不动地照射在我的书页上; 壁炉上圆形玻璃缸里插着三朵菊花. 对啦, 一定是冬天, 我们刚喝完茶, 因为我记得当时我正在吸烟, 我抬起头来, 第一次看见了墙上那个斑点…

为了和伍尔芙的那篇名作呼应, 我托起了相机, 拿起了尘封已久的手绘板, 第一次在软件里编辑了这张图片. 为了要确定这张图片的信息, 我就得打开软件的文件属性面板. 现在我记起了SRGB的色彩模式, 以及…

通常在某些学科中(比如数学和物理里), 点没有大小. 所以下面的也算是一种点:

右边的点的画纹是多么的漂亮和美观, 它的形状和朝向又是这样的优雅和… (咳, 吹不下去了. )

但是如果你把镜头移开一点点, 让画面变得更大一些, 于是之前(右边)的点也没有那么的“庞大”了.

可是, 这般针眼般大小是点, 米粒般大小是点, 拳头般大小也是点, 那么到底什么才算是点? 这个时候不妨我们带上“战术目镜”, 把所见的一切东西的“战斗力数值”都显示在一个表格里面:

假如对任何一个物体, 我们都能够想一个方法把它的信息全部写进一个表格里面. 那么在某种程度上来说, 我们便可以将物体用表格来等效地表达和代替.

但是现实世界中, 要描述一个物体可能需要非常多的信息, 即一个物体对应了一个非常多行的表格. 处理众多的信息是非常麻烦的一件事情, 所以一个简单的思路就是:只关注一部分的信息.

假如我们只保留物体的位置(也就是上图中的TOP和LEFT的信息, 或者专业一点, 叫做“坐标”. )信息, 那么不论物体的其他特征再怎么花里胡哨, 在我们的眼中, 也不过就是一个简化的坐标 – 或者说, 一个抽象的“点”.

但有时候, 我们也可以不那么“激进”, 可以多保留一些信息, 比如质量(比如一个5公斤的点), 速度(比如一个5CM/S的竖直下落的点), 角动量(想象一个旋转的点着实有些困难)等等. 于是我们就得到了“五彩斑斓”的点:

我们可以将上面的投影看作是一种将在信息空间中的代表物体的信息的向量投影到位置空间和其他的空间的直和的新的空间的运算——为了简化计算量; 又或者是处于观测限制, 只能够观测到一部分有限的信息——为了从有限的信息中尽可能地还原出原本的物体的信息.

如果我们目前只考虑物体的位置, 忽略其他的信息, 然后来看下面的图:

我们会发现, 虽然在上面的那件文物作品上的花纹仅仅只是最朴素的点(戳戳), 但是一个个的点组合在一起, 却能够形成有规律的图案: 三角形, 环带等等. 在某种程度上来说,原本我们通过”点”的模型简化了的信息, 在点与点之间的关系中, 又重新被表现了出来.那么我们为什么不反过来思考: 能否把一些复杂的图形, 对象, 物体来用一些简单的基本的”点”(我们前面应该很熟悉这个点的故事了吧. )来表示呢?

啊, 不是. 是两点确定一条直线(大概). 就像是《超能陆战队》中的大白的眼睛一样:

大白: ? (好吧, 我不会画画

于是只要有两个点, 我们就能够知道同样在直线上的其他点的位置信息了.这样的方式是多么的便利啊! 并且既然会画了直线, 那么距离画曲线还会远么? (古人云: “三岁小儿皆可握笔涂鸦, 以直代曲, 有大拙之美. ”BUSHI)

上图中没有一根曲线被使用, 除非我手抖了

于是,想要用直线来表现曲线(比如上图中的头发”曲线”), 只需要在曲线上选择合适的特征点, 然后用直线连接特征点, 就能够在一定程度上表现曲线的神韵了. 也就是说, 我们通过用直线上的点来代表曲线上的点的方式来近似地表现曲线. 而倘若我们能够将特征点的数量增加到一定的程度, 然后眯上眼睛——看上去这样的直线就变得像是一条曲线一样了.

随着特征点的数量增加, 直线越来越接近曲线, 于是可以说: 在一定小范围内, 可以用直线表示曲线

也许有杠精会说, 那怎么可以呢? 我大工匠精神要的就是这手工艺的美妙曲线, 你的直线是工业化的机械的直线, 没有我工匠精神的灵魂! 我的手捏出来的曲线, 每根线的误差都不到Ε的误差.

那么面对这样的杠精, 我们能做的只有——进一步地增加特征点的数量, 比如说当特征点数量N≥N(Ε)时, 我们的误差就会小于Ε. 于是我们便可以自豪地邪魅一笑: 直线也能够逼近曲线. 用数学的语言来说便是:

同理,我们也能够将这样的方式应用到曲面, 立体的问题上. (既然你已经学会了一加一了, 那么请…) 回忆前面”点”的处理方法, 我们会发现, 这样的选择特征点来代表物体的更加复杂的信息和原来的抽象近似是异曲同工的:都是通过仅保留一部分的信息, 来达到对原始物体的状态的描述.

如果存在我(费曼)之前假设的那种通用计算机的话, 那么(利用计算机来模拟物理)就需要通过在有限的空间和时间中进行有限次的逻辑运算来实现.

正如我们上面所说的那样,为了简便运算和处理, 我们将物体抽象简化为点的模型来考虑. 而又为了更好地表现物体的其他信息, 我们可以通过加入更多的点(或者说是引入点与点之间的关系)来承载和表达物体更多的信息.

但是请不要仅仅局限于如何把数据记录下来, 格局要打开, 为什么不问问神奇海螺呢?试试看让这些数据代替现实中的物体进行一个模拟运动呢? 比如说物理课上的数学公式就是一种用抽象的数据来代替现实中真实物体的方法.

在物理中的数学量(一般)都是一种(随着时间)连续变化的数学函数. 譬如在占据物理学大半江山的振子运动方程:

其对应的物理量便是一种随着时间连续变化的量. 在数学上, 不论多么精确数值都是可能的 —— 因为SIN是一个连续函数. 而在(一般的)物理图像中, 好像也应该是这么回事——因为空间是连续的. 如果把这些“连续”的函数画在图上的话, 那么看上去就会像是一条平滑的曲线. (注: 严格定义并不是“图像是平滑曲线的函数是连续函数”. )

但是为什么我们不借鉴一下前面的”点”的思想, 通过一定的”特征点”来描述这些物理量的变化关系呢? 于是本来连续的物理量就被分割成了离散的量. 而这样的东西便可以交给计算机来处理. 于是用计算机来模拟物理世界的问题看起来便十分具有吸引力了.

首先是时间, 假如我们考虑一个简单的匀速直线运动: X(T) = V T, 那么在时间轴上选择一些特征点进行分割, (就像是用一台相机定格住一瞬的空间), 沿着这些特征点分割出来的”空间”不妨让我们看作是一种”状态”, 根据特定的规则, 从这个时间点跳转到下一个时间点时, 我们的状态会发生改变. 用人话来说就是: 从X(T )的状态变化到了X(T +ΔT)=X(T ) + V ΔT的状态.

不妨将这样的状态转移问题看作是一种拓展版的自动机.

还记得前面对于精度的那个抬杠问题么? 同样的,我们在模拟的时候也会遇到精度的问题, 如果我们遇到了运动波动非常大的运动, 那么就需要更多的特征点. 但是作为摸鱼大户, 看到一条几乎平直的线上打满了点, 而一条蛇形的曲线巧妙地“避开”了点…

那么最后来一些比较”实在”的例子吧. (参考: UNDERSTANDING THE FINITE ELEMENT METHOD (YOUTUBE), 以及《理论力学》梁昆淼)做收尾吧: 如果我们想要了解一个弹性立方体在特定受力下的形状.

我们将一个立方体看作是具有质量的点的集合. 并且众所周知, 有弹性(非刚体)的物体在受到外力作用的时候会发生形变. 于是我们不妨在点的基础上再附加一个信息:即形变的大小, 假设是一个三维欧几里得空间(或者三维空间中的直角坐标系)中的立方体, 那么其位移便可以用分量来表示.

有弹性的物体可以被压缩, 被压缩的物体会有一种返回原本状态的”趋势” —— 即有一个反弹的力(即压缩后的弹性物体在一定程度上会产生一个近似和压缩量成正比的回复力). 用一个叫做”胡克定律”的公式写出来便是: F = - K ΔR.

在梁先生的理论力学一书中,这样定义: "弹性棒伸长或缩短时,任一横截面两方的相互作用力F正比于棒的伸长或缩短L.

据维基百科的说法,在最早的发表(来源于对弹簧钟的制作)中:胡克定律是一串打乱的拉丁字谜: "CEIIINOSSSTTUV" (如果不能确认自己的发现,就在发表时先把自己的发现打乱字母顺序后发表,在确认后再公布结论.嗯,着实是一种方法. ), 真实的顺序则为: "UT TENSIO SIC VIS", 即"力如伸长(一般变化)". (其实这感觉就和我们古代的中国人的文献一样了,说得很简单晦涩,比如"道可道,非常道"之类的,而现代的科学则需要更加严格没有歧义的解释.这么说来,我们也算是踩在巨人的肩膀上的发展了. )

不过传说,牛爵爷的这句"踩在巨人的肩膀上"却是在对胡克的一种嘲讽——嘲讽胡克的矮小. 但是抛开胡克和牛顿等人的矛盾不谈, 胡克却是是一位非常有光彩的科学家. 在英文的维基百科中是这样描述胡克的: "POLYMATH"(在中文中则是"博物学家").确实,作为早期的有名的科学家之一,胡克的研究涉猎非常的广泛,并且对多种科学分支都有基础性的一些贡献.

而将同一物体的不同部分相互连接在一起, 于是就能够得到一连串的受力和位移的关系, 将这些关系组合在一起, 那么我们便能够知道物体中的力的分布. 举个例子(超级简单的例子):

但是对于每一个部分, 都有相互关联的部分:

没问题, 我们只需要将需要考虑的东西扩展一下, 比如说, 这个时候考虑一个在重力场中倒挂的弹簧.

相较于之前的问题, 不难发现变化的只有受力的方程部分:

于是就能够通过这样的方式来计算最终的结果. (计算过程略? )

如果我们把对单个弹簧的受力方程写成下图所示的形式:

于是就能够计算得到结果. 并且这样的做法, 还能够有助于我们考虑更加复杂和一般的问题, 譬如将恢复系数的矩阵写成一般的形式:

在某种程度上来说, 我们可以通过一点点的拓展来将立方体看作是一种对上面的问题的PRO MAX版本. 也就是说, 我们可以像这样将一个立方体进行“离散化”操作:

又或者是像下面这样的图像:

三角形总是让我想起山上的输电线的塔…

于是问题就变成了对上面的处理方法的”亿点”拓展了. 但是在上面的问题中, 需要计算的东西着实有些多了一些, 所以这个时候我们就可以应用计算机来辅助我们进行模拟计算. 并且我们还能够发现, 上面的计算过程中, 我们的特征点并不是像之前分析的那样: “在变化大的地方密集, 在变化小的地方稀疏”, 而是均匀的分布的, 这也同样是一种可以进行优化改进的地方.

这样的计算方式好像就叫做“有限元分析”. 但是名字不太重要, 我们的想法不过就是将原本复杂的连续的问题通过变成一个个的点(离散化)的方法来减少研究的规模, 来达到简化计算的目的. 总之你已经学会了1+1了. 那么不妨试试看… ?

发表
26906人 签到看排名