惯性力(Fictitious Force)探秘

本文探讨了惯性力的起源,从伽利略的惯性原理到牛顿第一定律,揭示了惯性原理在不同参照系中的局限性。通过离心力和科里奥利力等实例解释了非惯性参照系中的惯性力,并介绍了爱因斯坦的等效原理,将引力视为特殊类型的惯性力。文章指出,虽然引力和惯性力之间的关系尚未有确凿证据,但它们可能有统一的基础。

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

惯性原理

 

提到惯性力, 不得不先说说惯性原理(Inertia)。惯性原理大家都知道,就是牛顿的第一运动定律:一个不受任何外力的物体将保持静止或匀速直线运动。物体具有的这种性质就叫做惯性。

 

其实,惯性原理最早不是牛顿提出来的,而是迦利略。

 (图片来自网络)


在中世纪的欧洲,宗教对人们的思想禁锢很深,对自然科学的研究尤其受到严厉制裁。1600年,意大利学者布鲁诺主张无限宇宙论后不久,就在罗马被教会的信徒当众焚杀,教徒们希望继续从理论上批驳以布鲁诺为代表的天文学说。当时,信徒们根据圣经的记载,认为地球应该是宇宙的中心,但是布鲁诺不认同,提出我们周围的星球不过是浩瀚宇宙的沧海一栗。信徒们质疑,如果地球和其他星体是按某个轨道运行的,那么提供星球运动的动力在哪里?

 (图片来自网络)


1632年,伽利略为了捍卫日心说而提出了惯性定律的构想。他做了一个斜坡实验,把小球从斜坡上滚动下来,下面垫上不同的材料,另外一边又是一块斜坡。他发现,当采用足够光滑的材料的时候,落下的小球到达另一个斜坡处总能达到差不多的高度。他于是猜想,如果能使用绝对光滑的材料,那么小球将永不停息地滚动下去。这证明了物体不需要持续的外力也能运动。伽利略的结论与现实生活中的常识是抵触的,因为日常生活经验告诉我们,运动的物体总是不得不停止。但是要把运动的本质剥离出来,形成摩擦力等阻力的概念,非过人的想象力是不可以达到的。

 

伽利略的结论揭开了近代科学的序幕。几十年后,牛顿用更加简洁的语言复述了这个定律。实际上,牛顿也无法实际证明这个定律,只把它作为不言自明的结论,因为现实中不受力的物体根本不存在。但我们可以稍微思考一下牛顿第二定律:合外力等于质量乘以加速度。这个定律只有在第一定律满足的前提下才能成立。第二定律表述了物体加速度变化的原因,我们在实际生活中很容易找到这样的例子࿰

NFSP (Neural Fictitious Self-Play)是一种用于复杂博弈论问题的强化学习算法,它结合了自我对弈和深度学习。在Python中实现NFSP通常涉及以下几个步骤: 1. **环境定义**:首先,需要定义游戏环境(比如棋盘游戏),它应该支持玩家间的对战,并返回状态转换、得分等信息。 2. **神经网络模型**:创建一个神经网络模型,例如使用Keras或PyTorch,作为代理(agent)。这个模型通常用来预测每个玩家的动作概率或直接推荐动作。 3. **策略网络** 和 **价值网络**:NFSP包含两个网络:策略网络用于选择行动,价值网络则评估当前的状态。它们可能共享一部分底层的特征提取层。 4. **Fictitious Play**:模拟两套虚拟的策略,让它们相互对局并累积经验。每次对局后,根据对局结果更新策略网络(例如使用梯度下降法)。 5. **对抗训练**:现实世界中的玩家(策略网络)与虚构玩家(另一套策略网络)对战,收集数据进行网络优化。 6. **迭代过程**:不断重复上述过程,交替训练真实策略和虚构策略,直到收敛或达到预设的训练轮数。 下面是一个简化的Python代码示例(假设我们有一个环境类`GameEnv`): ```python import torch from torch.distributions import Categorical import numpy as np class NfspAgent: def __init__(self, env, model): self.env = env self.model = model self.strategy_net = ... # 初始化策略网络 self.value_net = ... # 初始化价值网络 self.v_fictitious = ... # 虚构策略网络(暂未定义) def train(self, num_steps): for _ in range(num_steps): self.update_strategy() self.update_value() self.update_fictitious() def update_strategy(self): # 使用策略网络与虚幻对手玩一次游戏,获取经验 states, actions, rewards, _, dones = self.play_with_fictitious() # 更新策略网络参数 for s, a, r, d in zip(states, actions, rewards, dones): self.update_policy(s, a, r, d) def update_value(self): # 通过真实策略的对局经验更新价值网络 pass def update_fictitious(self): # 更新虚幻策略网络参数,基于当前的真实策略 pass def play_with_fictitious(self): # 与虚幻策略网络对局 ... ``` 这只是一个基础框架,具体的实现细节取决于你的环境和游戏规则。记得在实际应用中处理好数据结构和向量化,以便于GPU加速训练。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值