第31章 拉格朗日的编译器(2/2)
力还在那里,风还会推防雨布,绳子还会拉钢筋,支点还会磨损,水桶还会晃。
但分析力学告诉他,你不必用最笨的方式追著每一个约束力跑。
你可以先问一个更高层的问题。
这个系统真正的自由度是什么?
江临把这句话抄下来,像握住了一把刀。
他盯著自己的风力提水装置草图,重新开始看。
这个系统確实很脏,有摩擦,有乱流,有衝击。
不能幻想一个方程五分钟给出最终答案。
但如果先建立一个理想模型呢?
假设尼龙绳始终绷紧,假设钢筋刚性足够,假设支点暂时不滑,假设水桶不撞岩壁……
整个系统的主运动,至少可以先由迎风杆的倾角θ来描述。
θ確定了,绳长、槓桿、水桶高度就全確定了。
然后,他写动能和势能。
风和摩擦不是保守力,所以他用上了带广义非保守力的拉格朗日方程形式。
d/dt(?l/?q?) - ?l/?q = q
江临盯著右边那个q。
它提醒著拉格朗日不是魔法,脏东西没有凭空消失,只是被更好地收纳了。
推导並不漂亮,但顺畅得多。
那些让他头疼的支点反力,绳端约束力全都不见了。
推到最后,他得到了一条粗糙的一自由度运动方程。
这方程没有给他最终答案,却清晰地告诉他该改哪里。
升程不够可能是槓桿力臂比不对,启动困难可能是转动惯量过大,运动狂躁是阻尼不足。
江临看著那条方程,头皮还是有些发麻。
不过拉格朗日方程虽然没有替他造出提水机,却也替他找到了提水机的骨架。
这一刻,江临第一次在理论力学里感到一种近乎冒犯的震撼。
不是因为它神奇到无所不能。
而是因为它明明承认现实复杂,却依然能从复杂里抽出自由度。
牛顿力学像在写机器码。
你必须亲自管理每一个寄存器,每一次跳转,每一条指令。
你要算每一根绳子的张力,每一块石头的摩擦,每一个支点的反作用。
拉格朗日力学则更像高级语言。
你写系统的自由度,写动能,写势能,写非保守广义力,然后让方程替你生成底层运动。
这个编译器,就是拉格朗日方程。
但江临没有忘记加一句。
【编译器不是神。】
【垃圾模型输入,只会得到垃圾结果。】
接下来的半个月,江临一边学分析力学,一边做风力提水装置。
白天,他在废墟里砸钢筋,搬石块,削限位槽,用红泥和碎石压实底座。
晚上,他在露营灯下啃《理论力学》里那些更冷更高的词。
广义坐標,广义速度,广义力,虚位移……
理论力学不再高高在上,和一台丑陋的提水机牢牢绑在了一起。
第一版装置,失败得毫不意外。
风灌满防雨布,迎风杆猛地后倾,尼龙绳瞬间绷直,槓桿抬起水桶。
水桶確实上升了。
可上升不到一半,风力一弱,绳子突然鬆弛。
下一阵风再来时,绳子猛地绷紧,整个系统发出一声让人牙酸的撞击。
水桶砸在岩壁边缘,半桶水全洒了不说,桶还被砸出了一个凹坑。
江临站在旁边,脸色很难看。
但还是不忘记录。
【第一版失败。】
【问题:绳索鬆弛导致衝击,回落速度过大,阻尼不足。】
第二版,他加了配重。
配重让水桶回落不再那么凶,系统有了更稳定的往復趋势。
但新问题来了。
启动困难。
风小的时候,配重和水桶形成的等效惯量太大,防雨布被吹得哗哗响,装置却只是像一头倔驴一样抖。
又记录。
【第二版失败一半。】
【问题:启动风速提高,低风状態下无效。】
第三版,他调整槓桿支点位置。
把力臂比改小一点,牺牲一部分升程,换取更容易启动。
这一次,水桶能被拉起来了。
但升程不够。
水桶刚刚离水面没多久就停住,上不来。
还是记录。
【第三版:启动改善,升程不足。】
第四版,他改变水桶容积。
不用大桶一次提满,改用小桶多次提。
这让单次提升所需能量下降。
效率不高。
但系统终於能工作一段时间。
问题是往復太快,水桶出水时晃得厉害,洒水严重。
他用旧布条和一段磨损绳索做了简陋阻尼,让槓桿回落时有一点摩擦耗能。
第五版。
江临给水桶加了一个偏心吊点。
桶满水时重心靠下,能保持竖直。
升到顶端撞上限位块后,桶口被迫翻转,水倒进接水槽。
水一倒空,配重又把空桶拉回岩隙底部。
限位块负责让它倒水,旧布条负责让它別砸得太狠,配重负责让它重新下去。
这三样东西加起来,才勉强让它从会动变成能循环。
一个风很大的下午。
江临站在营地北侧的岩隙旁,繫紧最后一段尼龙伞绳。
三米高的迎风杆由两根钢筋绑成,上面绷著旧防雨布。
另一端,一根粗钢筋架在两块巨石之间,像一个野兽派风格的蹺蹺板。
水桶掛在另一头,桶身被石头磕得凹凸不平。
江临鬆开固定防雨布的绳套。
“呼——”
风灌满了防雨布,迎风杆后倾,尼龙绳绷紧,槓桿抬起。
水桶从岩隙深处一点点升上来。
支点发出低沉摩擦声。
旧布阻尼轻轻抖动,压住了那种危险的狂躁。
水桶升到顶端,撞上限位块,倾斜。
“哗啦——”
浑浊冰凉的地下水倒进旁边的蓄水坑里,水花溅到江临脚踝上。
他站在风里,低头看著那些浑浊的水,许久不愿意走。
它很破,也不省心,完全称不上真正自动化。
但它替他省下了最折磨身体的劳动。
更重要的是,它让理论力学拉格朗日方程第一次在废土里落了地。
江临拿起隨身的电子记录板。
【第十一年,旱季。】
【简易风力提水系统第五版,间歇运转。】
【可在中等以上稳定风下完成提水。】
【低风不启动,乱风易衝击,夜间必须锁死。】
【拉格朗日方程没有替我造机器。】
【它替我找到自由度。】
【不用追每一根绳子的张力,先抓住系统真正会动的那个方向。】
这句话,他晚上抄进了纸质时间胶囊。
纸很珍贵,但这一句值得。
接下来几天,江临继续学下去。
他翻到哈密顿原理。
教材上写:真实路径使作用量取驻值。
作用量s=∫ldt
δs=0
江临第一次看到最小作用量这个俗称时,差点被它迷住。
最小,省,不浪费。
这几个词,天然就能打动废土求生者的神经。
可教材很快提醒他,更准確地说,不是总是最小,而是驻值。
一阶变分为零,可能是最小,可能是最大,也可能是鞍点。
自然不是简单地在省钱。
它选择的是让作用量在可允许路径附近不发生一阶变化的那条路径。
哪怕最省这个说法不严谨,他还是在里面看见了某种和自己相似的东西。
这些年,他在废土里学会了不乱跑,不乱烧燃料,不乱开电脑,不做无意义的情绪发泄,把每一升水,每一克黄豆,每一瓦时电,每一张纸都用在刀刃上。
他能理解那种整条路径都要算帐的视角。
那天晚上,石屋里很安静。
南墙小窗封著挡板。
风力提水装置的绳子被他收好,防雨布也捲起来压在石块下面。
江临坐在石桌前,打开【理论力学_分析力学】文档,写下阶段总结。
【牛顿:追每一个力。】
【拉格朗日:找真正的自由度,用能量写结构。】
【非保守系统:加入广义力q,不要把现实脏东西偽装成理想模型。】
【哈密顿原理:作用量取驻值,不是简单最小。】
【核心改变:从微观管理每个约束力,到抓住系统的自由度和路径结构。】
写完之后,他想了想,又补了一句。
【牛顿是底层指令。】
【拉格朗日是编译器。】
【但编译器只对正確建模负责。】
他看著最后一句,轻轻吐出一口气。
理论力学没有让他变成天才,也没有让废土变得温柔。
它甚至没有让那颱风力提水机变得多可靠。
可是,它让江临第一次真正感到,物理学高级的地方,不是把公式写得更复杂。
而是换一种语言以后,世界突然安静了一点。
不过明天,他还是要检查提水装置的绳结,还是要测水质,还是要给农田补水。
还要继续学理论力学下一章。
废土不会因为他看见了分析力学的门,就少出一道题。
但至少从今天开始,他不再只是趴在地上追每一粒沙子的人。
偶尔,他能站高一点,看见风沙背后的地形。