热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

利用计算机解决的生活问题,利用计算机解决经典动力学问题

利用计算机解决经典动力学问题By3班1200012855仪迪1.利用计算机解决经典动力学问题的可行性在牛顿的经典物理理论体系中,所有物体的运动状态在单位时间内的改变量

利用计算机解决经典动力学问题

By 3班 1200012855 仪迪

1.利用计算机解决经典动力学问题的可行性

在牛顿的经典物理理论体系中,所有物体的运动状态在单位时间内的改变量均可由该时刻物体的受力情况决定,而物体在该时刻的受力情况又可由该时刻物体的位置等已知量确定,故对于给定的初态与受力的规则,在任意时刻时整个系统的状态是唯一的,这符合程序的运行规律,故当我们不要求结果任意精确时(对于这一点,在关于存在的问题与解决方案中将详细讨论),利用计算机模拟经典动力学场景进而解决经典动力学问题是存在理论可行性的。

2.利用计算机模拟经典动力学场景的大致思路

首先程序会要求用户输入一个初态以及末态的时间点,并将其记录。

然后程序会从初态的时间点开始,利用程序内部的受力规则和每一时刻物体的状态计算出这一时刻物体的受力情况,再根据这个受力情况计算出下一个时刻(两个时刻相隔很小以至于在不要求结果任意精确是误差在可以忍受的范围内)整个系统的状态,如此反复,直到计算出末态结果为止。

最后输出计算出的末态结果,若有需要,则可输出运行过程中某些或全部时间点的计算结果。

3.利用计算机模拟经典动力学场景存在的问题

虽然利用计算机模拟经典动力学场景是存在理论可行性的,但是限于实际情况,计算机是不能完美地模拟经典动力学场景的,其主要存在的问题如下:

1. 实际的经典动力学场景是具有连续密集的,其主要体现在时间上和空间上的连续密集。而计算机的储存方式注定了其不能储存一个连续密集的时空。

例如:对于一个经典力学中的简单模型——匀质细杆来说,其质量在长度上是连续分布的,且对于杆上的每一点,无论其距端点距离是有理数还是无理数,其上都是由质量分布的,且其质量趋向于无穷小。当讨论其状态随时间的变化时,其在每一个时间均有一个对应状态。然而以计算机的储存方式若要完美无缺地存储这个简单模型的状态,需要记录无穷多组数据,因而完全模拟连续密集的经典动力学系统是不可能的。

2. 在经典力学中有各种各样的力,它们的产生机制与大小方向所满足的规则各不相同,如何用计算机语言表述这些纷繁复杂的力成为了利用计算机模拟经典动力学场景时的一个重要的实质性问题。

4.对以上问题提出的解决方案

以下为对以上问题解决方案的设想:

1. 所以在实际生活中,我们往往只需要忽略一些难以计算的小量,而将原场景近似为一个易于储存和计算且误差在可接受范围内的理想化模型可以解决此问题。

对于利用计算机模拟经典动力学场景中关于时间和空间上连续性与密集性的问题,我们可以用以下近似来解决:

(1) 对于空间上的连续密集性,将每个物体拆分成若干个等大且足够小的、形状相似的小物体,并将这些小物体的质量近似为集中在其质心上。对于上述的举例(匀质杆),我们可以将杆等分为若干小段,并将每一小段杆近似为位于其质心上的一个质点。如此,整个杆就被近似成了一连串同一直线上的质量确定两两相连的质点。经过上述近似处理后,在空间上连续密集分布的物体就被在可忍受的误差内近似成为了有限多个点,便于储存与运算。

(2) 对于时间上的连续密集性,可以取一连串等间隔的时刻并让任意相邻两时刻的间隔足够小使得在这一小段时间内,所有物体运动状态的改变量都足够小以至于我们可以在可忍受误差内将其近似为均匀改变,从而改变量可直接由改变量对于时间的变化率乘以时间间隔来计算。根据精度需要,例如时间间隔可以取0.001秒甚至更短,这样的近似使得模型符合了计算机的储存与运算方式。

2. 尽管经典动力学体系中的力有许多种,但是我们仍可以用分类的方式将其分为几大类,并对每一类的力给出确定的计算方式:

(1) 恒力

恒力即为无论在任何情况下大小、方向都不变的力。例如在研究地球表面的物体运动时的重力,匀强电场中的电场力等。这一类的力是最简单也最容易表示的,只需在初始状态时给定力的大小、方向,即可代入以后的每一次运算。

(2) 状态力

对于力的大小及方向由物体的位置、速度、角速度等状态决定的力,我们将其称为状态力,例如万有引力、弹簧弹力、磁场中的洛仑兹力等。这一类的力与恒力相似,只是情况稍微复杂,需在初态时给定力的大小、方向与哪些状态量有关以及具体的计算方式,然后在之后的每一步运算中,即可通过这一时刻的状态量计算出状态力的大小及方向。

(3) 约束力

约束力是指那些用于把物体的位置、速度约束等在某一范围内的力,例如支持力、杆的拉力与支持力等。这一类力是最复杂而难以计算的,从而难以给出完美的解决方案,只能在可容忍误差内进行一些近似。以下为对此类型的力的两种解决方案,它们各有优点也有不足,具体选择时需视情况而定:

① 受力分析法

受力分析法是指对于任意一个物体,现把其可计算的力和状态量分别算出,再利用约束条件与已计算出的力算出约束力的大小。例如对于桌面上的小球,我们可以先计算出它的重力,再判断若小球的高度不高于桌面高度,则支持力会使得小球向下的速度与加速度均减为0(若大于0的话),从而我们可以根据此条件计算出支持力的大小。

这种方法的优点在于相较于下一种方法,其计算精度会高一些。

而其亦有许多不足:其计算方法因约束条件的不同而不同,没有一个统一的算法计算这些力,从而使编程的工作量大大增加;最关键的是,当一个物体受到了同一方向上至少两个约束力、同一平面上至少三个约束力、或三维空间内至少四个约束力时,用此方法将不能计算出唯一确定的结果。例如在一个正三角形框架中存在一个其内切圆大小的球形物体,则无论三角形框架三条边对其的支持力为多大,只要这三个支持力大小相等,这个球就是受力平衡的,且没有任何矛盾。注意这个漏洞并非来源于计算方式,而是来源于将所有物体近看作刚体(即不会形变的物体)的近似,在以上情况中一些关键信息被近似忽略,从而导致条件不足而无法计算,因而有了下一种计算方式。

② 还原状态力

约束力是将所有物体都近似为刚体时一些状态力变形而产生的,例如支持力的本质是表面形变带来的弹力,其大小近似满足胡克定律,只不过其劲度系数很大以至于我们近似地认为它不会形变。

现在我们将这些约束力还原为状态力,即不将刚性物体的形变忽略,从而可以得到这些约束里的状态力表达形式,进而可以用计算状态力的计算方式出这些力的大小。只需将类似于劲度系数这样的系数取得足够大,整个系统的状态将接近于刚性理想化模型中系统的状态。

这种方法的优点在于其将约束力的计算模式化,适于用计算机处理,减少了人工工作量,同时增大了适用范围。

但是这种方式的不足在于:在有限的计算精度下,上述的系数不能取得过大,因为我们已将时空连续的场景近似得不连续,在上述系数过大时,力的大小关于时间和空间的变化率将非常大,从而我们之前关于连续性的近似带来的误差将非常大以至于大幅影响计算结果。故这样的解决方案也有着相当的局限性。

5.对利用计算机解决经典动力学问题的总结

利用计算机解决经典动力学问题是可行的,但是我们无法对任意问题得到任意精确的结果,只能视情况得到这些问题的近似结果,并且近似精度正比于计算机的计算能力,反比与问题的复杂度。

计算机模拟的方案更适于对经典动力学场景做定性的观察,而非定量的研究。



推荐阅读
  • 2018年3月31日,CSDN、火星财经联合中关村区块链产业联盟等机构举办的2018区块链技术及应用峰会(BTA)核心分会场圆满举行。多位业内顶尖专家深入探讨了区块链的核心技术原理及其在实际业务中的应用。 ... [详细]
  • 使用Numpy实现无外部库依赖的双线性插值图像缩放
    本文介绍如何仅使用Numpy库,通过双线性插值方法实现图像的高效缩放,避免了对OpenCV等图像处理库的依赖。文中详细解释了算法原理,并提供了完整的代码示例。 ... [详细]
  • 非公版RTX 3080显卡的革新与亮点
    本文深入探讨了图形显卡的进化历程,重点介绍了非公版RTX 3080显卡的技术特点和创新设计。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Søren Kierkegaard famously stated that life can only be understood in retrospect but must be lived moving forward. This perspective delves into the intricate relationship between our lived experiences and our reflections on them. ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • C++实现经典排序算法
    本文详细介绍了七种经典的排序算法及其性能分析。每种算法的平均、最坏和最好情况的时间复杂度、辅助空间需求以及稳定性都被列出,帮助读者全面了解这些排序方法的特点。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 深入理解C++中的KMP算法:高效字符串匹配的利器
    本文详细介绍C++中实现KMP算法的方法,探讨其在字符串匹配问题上的优势。通过对比暴力匹配(BF)算法,展示KMP算法如何利用前缀表优化匹配过程,显著提升效率。 ... [详细]
  • 网络攻防实战:从HTTP到HTTPS的演变
    本文通过一系列日记记录了从发现漏洞到逐步加强安全措施的过程,探讨了如何应对网络攻击并最终实现全面的安全防护。 ... [详细]
  • 机器学习中的相似度度量与模型优化
    本文探讨了机器学习中常见的相似度度量方法,包括余弦相似度、欧氏距离和马氏距离,并详细介绍了如何通过选择合适的模型复杂度和正则化来提高模型的泛化能力。此外,文章还涵盖了模型评估的各种方法和指标,以及不同分类器的工作原理和应用场景。 ... [详细]
  • 雨林木风 GHOST XP SP3 经典珍藏版 V2017.11
    雨林木风 GHOST XP SP3 经典珍藏版 V2017.11 ... [详细]
  • 本文深入探讨了SQL数据库中常见的面试问题,包括如何获取自增字段的当前值、防止SQL注入的方法、游标的作用与使用、索引的形式及其优缺点,以及事务和存储过程的概念。通过详细的解答和示例,帮助读者更好地理解和应对这些技术问题。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 本文记录了作者在一次旅途中阅读阿道司·赫胥黎的《美丽新世界》的心得。通过探讨小说中对未来社会的预言,文章揭示了集权政府对人性和社会结构的潜在威胁,并反思了现代社会中的一些现象。 ... [详细]
author-avatar
胡敏qiang
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有