理查德·汉明(Richard Hamming):第18章。建模-我

“本课程的目标是为您的技术未来做好准备。”

图片 哈Ha 还记得很棒的文章“您和您的工作” (+219、2442个书签,394k读取)吗?

因此,汉明(是的,是的,自我检查和自我纠正的汉明代码 )根据他的演讲编写了一整本书 。 我们正在翻译它,因为那个人在谈论生意。

这本书不仅是关于IT的书,还是关于令人难以置信的酷人的思维方式的书。 “这不仅仅是积极思考的冲动; 它描述了增加做出色工作机会的条件。”

我们已经翻译了27(共30)章。 我们正在纸上版。

Chapter 18.建模-I


(感谢翻译,Valentin Pinchuk,他在“上一章”中回复了我的电话。)想要帮助翻译的人-写个人电子邮件或magisterludi2016@yandex.ru

除了输入和编辑文本,图形,编译程序等之外,计算机在当今时代的一个重要领域是建模。
建模是对以下问题的答案:“如果……怎么办?”

如果我们这样做怎么办? 如果发生了什么怎么办?

目前,在10个实验中,有9个以上是在计算机上进行的。 我已经提到了我的严重担忧,即我们越来越依赖于建模并且很少探索现实,并且似乎我们正在采用旧的学术方法:教科书中所写的是现实,不需要不断的实验验证。 但是,我现在不讨论这个问题。

我们使用计算机进行建模,如下所示:

  • 首先,更便宜;
  • 其次,更快;
  • 第三,通常更好
  • 第四,它有可能做在实验室中做不到的事情。

前两点指出,即使考虑到在编程上花费的金钱和时间,所有错误和其他缺陷,它仍然比获得所需的实验室设备便宜和快捷。 而且,如果您最近几年订购了昂贵的高质量实验室设备,那么在不到10年的时间内您将发现该设备已经退役。 如果需要持续监控情况并经常使用实验室设备,则这些注意事项将不适用。 但是让他闲置一会儿,突然它会停止正常工作! 这称为“失效日期”,但是有时它是使用它的技能的“失效日期”,而不是设备本身的“失效日期”! 从我的亲身经历中,我常常相信这一点。 理智的保质期通常比物理的保质期更隐蔽。

根据第三点,我们可以通过建模获得比在现实世界中直接测量更准确的数据。 在动态环境中,通常难以获得所需精度的现场甚至实验室测量结果。 此外,在建模中,我们通常可以使用比任何实验室设置都可实现的范围更大的自变量。

根据第四点,也许是最重要的一点,建模能够完成任何实验都无法完成的工作。

我将以我亲自参与的特定情况来说明这些观点,以便您了解建模如何对您有用。 我还将指出一些细节,由于这些细节,那些在建模方面经验很少的人会更好地了解如何进行其实现,因为进行建模是不现实的,这将需要数年才能完成。

我参加的第一个重大计算是在第二次世界大战期间的洛斯阿拉莫斯,当时我们设计了第一枚原子弹。 没有机会进行较小规模的全面实验-无论您有临界质量还是没有临界质量。

在不涉及秘密细节的情况下,我记得这两个项目之一是球形对称的,并且是基于爆炸起爆的。 18。

炸弹材料的全部体积分为同心球形壳。 汇编了作用在每个壳体(两侧)上的力方程,以及描述了物质密度(取决于其压力)以及其他参数的状态方程。 然后将时间轴分为10到8 s的间隔。 对于每个时间间隔,我们使用计算机计算了每个壳体在施加的力的作用下如何移动以及此时会发生什么变化。 当然,对冲击波从周围爆炸物通过该区域的过程进行了单独的研究。 但是,所有法律原则上都是相关领域的专家所熟知的。 压力是如此之大,以至于我只需要推测,在测试之外一切都会以同样的方式进行,但是即使是近似的物理理论也提供了一些保证。

图片

图18.I.

这仅说明了我要讲的要点。 有必要在主题领域拥有广泛而深入的专业知识。 实际上,我倾向于将您已经学习并且仍在学习的许多课程视为获取相关专家知识的唯一方法。 我想强调这一领域对专家知识的明显需求-我经常看到建模领域的专家忽略了这个基本事实,并相信他们可以安全地自己执行建模。 只有主题专家才能知道您无法包含在模型中的内容是否对仿真的准确性至关重要,还是可以安全地忽略它。

另一个重要的一点是,在大多数情况下,建模都是通过相同的程序多次反复进行的,否则您将无法初始化数据。 如果是炸弹,则对每个炮弹然后对每个时间间隔执行相同的计算-无数次重复。 在许多情况下,机器的计算能力比我们的编程能力大很多倍,因此建议事先并不断地搜索即将进行的模拟的重复部分,并在可能的情况下进行模拟。

与核弹任务和天气预报建模非常相似。 在这种情况下,大气被分成大块的空气,并且每个块的云量,反照率,温度,压力,湿度,速度等的值都必须初始化,见图18.II。

然后,使用普通的大气物理学,我们在一个很小的时间间隔内跟踪每个块中的相应变化。 这是与先前示例相同的逐元素计算方法。

但是,炸弹和天气预报这两个任务之间存在显着差异。 对于炸弹,模拟过程中的小偏差不会显着影响总体
性能,但众所周知,天气对微小变化非常敏感。 人们相信,即使在日本,蝴蝶的翅膀也能影响风暴是否会袭击该国及其严重程度。

图片

图18.II

这是我必须深思的基本主题。 如果模拟具有一定的稳定性,就其一般行为的微小变化的抵抗性而言,则建模是相当真实的。 但是,如果某些细节上的微小变化会导致非常不同的结果,则很难准确地执行模拟。 当然,天气可以长期保持稳定:各个季节遵循其指定的周期,无论偏差如何。 因此,既有短期(每天)的天气不稳定,又有长期(每年)的稳定性。 冰河时期表明,长期的天气不稳定性甚至还有更持久的稳定性!

我遇到了很多这类问题。 通常很难预先确定稳定还是不稳定将主导任务,因此很难评估获得期望结果的可能性。 当您进行仿真时,请在深入研究任务之前仔细研究任务的这一方面,以免日后发现,因为花了很多精力,金钱和时间才无法获得令人满意的结果。 因此,存在容易建模的情况,实际上根本没有建模的情况,其余大多数处于这两个极端之间。 警惕对建模可以做的承诺!

当我1946年加入贝尔电话实验室时,我很快就参与了设计第一个NIKE制导导弹系统的早期阶段。 我被送到麻省理工学院使用他们的RDA#2差分分析仪。 在那里,我获得了有关分析仪各部分互连的知识,以及来自建模更为复杂的专家的许多技巧。

最初的设计包括倾斜的火箭发射。 变分方程为我提供了微调各种组件(如机翼尺寸)的能力。 我认为应该提到的是,计算一条轨迹大约需要½小时,而这次大约有一半我不得不说服自己继续计算下一次发射。 因此,我有足够的时间来观察和深入思考为什么一切都按原样进行。 几天后,我逐渐对火箭的行为有了一个“感觉”,为什么它按照我使用的不同制导律表现出自己的行为。

随着时间的流逝,我得出的结论是,垂直起步总是最好的。 从密集的低层空气迅速过渡到稀薄的空气层是最好的策略-在发出降低轨迹的命令后,我完全有能力增加空气阻力。 通过这样做,我发现我大大减小了机翼的尺寸。 我也很了解,给我用来估计由火箭结构变化引起的影响变化的方程式和常数,在如此广泛的参数范围内不太可能是准确的(尽管它们从未告诉过我原始的方程式,我自己猜测) ) 所以我征求意见,发现我是对的-我应该回到家,得到新的方程式。

由于其他用户希望使用在RDA#2上分配给他们的时间而有些延迟,我很快就重新工作了,已经更有经验和明智了。 我继续对火箭的行为产生了感觉-我不得不使用不同的程序来形成轨迹,以“感受”作用在火箭上的力量。 解决方案在绘图仪上慢慢出现的等待时间使我有机会了解正在发生的事情。 我常常想知道,如果我拥有一台现代化的高性能计算机,将会怎样? 我是否会感觉到火箭的感觉,在很大程度上取决于最终项目? 我经常怀疑,另外数百条轨迹会教我同样的方式-我只是不知道。 但这就是为什么我仍然怀疑会收到大量计算而没有适当考虑您收到的结果的原因。 在我看来,结果的范围似乎无法替代渗透到模拟情况中的感觉。

这些首次运行的结果使我们选择了垂直发射装置(它消除了以圆形导向装置和其他装置形式出现的不必要的地面设备),简化了许多其他组件的设计,并将机翼的尺寸减小到最初要求的尺寸的1/3左右。 我发现,从原理上讲,较大的机翼可提供更大的机动性,因此会增加弹道早期部分的空气阻力,因此,较低的飞行速度会导致向目标进近的最后部分的机动性降低。

当然,在建模的早期阶段,将使用密度随高度呈指数下降的简单大气模型,并在后续阶段中进行其他简化。 这给了我另一种信念-在早期阶段使用简单的模型使我对整个系统有了一个大致的了解,而在任何全面的建模中都不可避免地会掩盖这一点。 我强烈建议从简单的建模开始,然后再将其开发为更完整,更准确的模型,以便尽快了解本质。 当然,在选择最终设计时,必须考虑可能影响最终设计的所有细微差别。 但是(1)只要考虑到所有主要影响,就可以尽可能简单地开始;(2)掌握总体思路,然后(3)深入研究模拟的细节。

制导导弹是超音速飞行领域最早的研究之一,这个问题还有另一个很大的不确定性。 我们只有两个超音速风洞的数据相互矛盾。

制导导弹自然导致了太空飞行,在此期间,我较少参与模拟本身,而作为外部顾问和所谓的项目序列图的初始计划参与了更多工作。

我记得的第一个模拟是行波灯的设计。 再次,在原始中继设备上,我有很多时间思考,并且我意识到,在进行计算时,我可以理解应该给出什么形状,除了传统的恒定直径的管子。 要了解这种情况是如何发生的,请考虑行波灯的基本设计。 这个想法是,您沿着紧密缠绕在空心管上的螺旋线发送输入波,因此通过管的电磁波的有效速度会大大降低。 然后,我们沿着管道的轴线发送电子束。

射线最初的速度比沿螺旋传播的波要快。 波与电子束的相互作用减慢了电子束的速度,这意味着电子从电子束到电子波的传递,即电子波的放大! 但是,显然,在管道中的某个点,它们的速度大致相等,然后进一步的交互只会使情况恶化。 结果,我的想法是,如果您逐渐增加管道的直径(以及波浪沿着螺旋线的转弯移动的路径-译者的音符),光束将再次变得比波浪更快,甚至更多的能量将从光束传输到波浪。 实际上,在每个计算周期上,都可以计算理想的管道轮廓。

我也有不愉快的发现。 通常,使用的方程实际上通常是更复杂的非线性方程的局部化。 通过大约第二十或五十步的计算,我可以评估非线性分量。 我发现,对某些项目的研究人员感到惊讶的是,估计的非线性分量大于计算的线性分量-从而扼杀了近似值并停止了无用的计算。

为什么要讲这个故事? 因为它清楚地表明,即使您与业余领域的专家一起工作,询问的思想也可以帮助建模。 您将用自己的双手去感受每个小细节,就有机会看到其他人没有注意到的东西,做出重大贡献,同时节省机器时间! 我多久发现用户不太可能发现的建模遗漏。

您必须采取一个重要步骤,我想强调这一点:掌握特殊行话。 每个专业都有自己的行话,这些行话试图向局外人(有时对局内人)隐藏正在发生的事情! 注意术语-学习将其识别为一种特殊的语言,以促进在事物或事件的狭窄区域进行交流。 但是,它会干扰原定目标范围之外的思考。 行话既是必要也是诅咒。 您必须了解,即使在您自己的知识领域,也需要竭尽全力来利用它并避免陷入陷阱!

在漫长的演变过程中,穴居人显然生活在25至100人的人群中。 通常,不欢迎来自外部的人,尽管我们认为这不适用于被绑架的妻子。 比较了多个世纪的穴居人进化与文明世纪(不到一万年),我们发现进化论选择我们的主要目的是隔离陌生人,而做到这一点的方法之一就是使用特殊的行话语言。盗贼的ar语,group语,夫妻的私人语言,手势甚至眉毛都是用私人语言隔离陌生人的例子。因此,当有局外人来时,这种本能地使用行话必须始终被有意识地抵制-我们现在的工作组比穴居人大得多,并且应该不断尝试重写我们发展初期的这一特征。

数学并不总是您所需要的神奇语言。为了说明这一点,让我们回到简要提到的海上拦截模拟中,该模拟等效于一个由28个一阶微分方程组成的系统。但是您需要显示情节。忽略除基本部分以外的所有内容,我们考虑解决| y |≤1的单个微分方程y'= f(x,y)的问题,请参见图18.III。

记住这个方程式,我将讨论真正的问题。我编写了一个实际问题,一个由28个微分方程组成的系统来找到一个解决方案,然后将某些值限制为1,就好像它是电压极限一样。尽管有顾问的阻挠,但我的朋友仍然坚决要求他与我一起完全参与该任务的二进制编程,同时我向他解释了每个阶段的情况。在他这样做之前,我一直拒绝计算-因此他别无选择!我们达到了程序中的限制,他说:“迪克,这是对稳定器的限制,而不是电压的限制”,要记住应该在计算的每个步骤而不是最后施加限制。这是我所知道的最好的例子,以展示我们俩如何理解数学符号的确切含义是什么(我们都毫无疑问),但事实证明,我们对这些符号的解释完全不同!

图片

图18.III。

如果我们没有发现这个错误,那么我怀疑任何涉及飞机的真实,真实实验都会揭示出机动性的降低,这是根据我的解释得出的。因此,到目前为止,我坚持认为,应该对应该建模的东西有深刻了解的人应该参与详细的编程。如果不这样做,那么当顾问和程序员都确切知道含义时,您可能会遇到类似的情况,但是它们的解释可能会如此不同,以致导致完全不同的结果!

您不应该循环表示建模是不时地针对功能进行的。我受委托使用差动分析仪进行调查的任务之一是计算中央办公室门锁的概率分布,该分析仪是从M9防空火控设备的旧零件组装而成的。没关系,它们给了我一个无穷无尽的互连线性微分方程组,每个方程组根据总负载设置呼叫中心局的次数的概率分布。我记得,必须以某种方式使用最终的机器,该机器只有12个集成器。

我将其用作电路的输入阻抗。利用最后两个计算出的概率之差,我假设它们与下两个概率之差成正比(我使用了从前两个函数的差中获得的合理比例常数)。因此,有可能从下一个尚未计算的方程式中正确获得贡献。交换部门对结果有需求,我相信我的老板印象深刻,他对计算机的看法仍然不高。

有水下建模,我特别提到我的朋友在巴哈马安装的声学阵列,当然,在严酷的冬天(作者开玩笑-大约是翻译),他经常不得不检查所有内容并进行新的测量。已经对晶体管的设计和行为进行了许多模拟。

模拟了带有中继喇叭的微波中继站,以及中继站链一端通过整个电路时脉冲对中继站整个系统稳定性的影响。即使每个站点从一时冲动中快速恢复,它的规模也可能随着跨大陆而增加。在每个中继站,就脉冲随时间的衰减而言,稳定性是稳定的,但是空间稳定性的问题仍然悬而未决-如果随机脉冲在穿越整个大陆时可以无限期增长怎么办?我称这个任务为“空间稳定”。我们必须知道可能发生或不可能发生的条件-因此,建模是必要的,因为除其他外,脉冲本身的形状随着穿过大陆而改变。

我希望您理解:从根本上可以模拟任何可能有助于某种数学描述的情况。但是实际上,在对不稳定情况进行建模时应该非常小心。尽管在第20章中,我会告诉您一个我必须解决的极端情况。这对贝尔电话实验室来说非常重要,至少对于我来说,这意味着我必须找到解决方案,无论我给自己什么借口说这都是不可能的。如果您决心接受重要的问题,总会有一些答案。他们可能不是理想的,但在无望的情况下,有事总比没有好-只要这是值得信赖的!

建模中的错误经常被迫放弃好主意!但是,在文献中几乎找不到这方面的内容,因为已经很少有报道。众所周知的一种错误模型,甚至在其他错误被发现之前就已被广泛宣布,它是由所谓的“罗马俱乐部”创建的整个世界的模型。事实证明,无论初始数据或大多数系数的选择如何,他们选择的方程式都将显示出巨灾!但是,当其他人得到这些方程式并尝试重复计算时,事实证明这些计算也存在严重的错误!在下一章中,我将继续进行建模的这方面的工作,因为这是一件非常严肃的事情-报告使人们相信他们想要相信的事情的东西,尽管这些事情根本不是那样,或者关于事物,这会使人们无法遵循自己的理想。

( 70- XX . « » (1971). , 20- . , . – , , , , . , . – .)

待续...

谁想帮助本书的翻译,排版和出版-用个人电子邮件或电子邮件magisterludi2016@yandex.ru撰写。

顺便说一句,我们还推出了另一本很酷的书的翻译- “梦想机器:计算机革命的历史”

书籍内容和翻译章节
前言
  1. 《科学与工程的艺术概论:学习学习》(1995年3月28日)翻译:第1章
  2. “数字(离散)革命的基础”(1995年3月30日)第2章。数字(离散)革命的基础
  3. «History of Computers — Hardware» (March 31, 1995) 3. —
  4. «History of Computers — Software» (April 4, 1995) 4. —
  5. «History of Computers — Applications» (April 6, 1995) 5. —
  6. «Artificial Intelligence — Part I» (April 7, 1995) 6. — 1
  7. «Artificial Intelligence — Part II» (April 11, 1995) 7. — II
  8. «Artificial Intelligence III» (April 13, 1995) 8. -III
  9. «n-Dimensional Space» (April 14, 1995) 9. N-
  10. «Coding Theory — The Representation of Information, Part I» (April 18, 1995) ( :((( )
  11. «Coding Theory — The Representation of Information, Part II» (April 20, 1995) 11. — II
  12. «Error-Correcting Codes» (April 21, 1995) 12.
  13. «Information Theory» (April 25, 1995) ( :((( )
  14. «Digital Filters, Part I» (April 27, 1995) 14. — 1
  15. «Digital Filters, Part II» (April 28, 1995) 15. — 2
  16. «Digital Filters, Part III» (May 2, 1995) 16. — 3
  17. «Digital Filters, Part IV» (May 4, 1995) 17. — IV
  18. «Simulation, Part I» (May 5, 1995) 18. — I
  19. «Simulation, Part II» (May 9, 1995) 19. — II
  20. «Simulation, Part III» (May 11, 1995)
  21. «Fiber Optics» (May 12, 1995) 21.
  22. «Computer Aided Instruction» (May 16, 1995) ( :((( )
  23. «Mathematics» (May 18, 1995) 23.
  24. «Quantum Mechanics» (May 19, 1995) 24.
  25. «Creativity» (May 23, 1995). : 25.
  26. «Experts» (May 25, 1995) 26.
  27. «Unreliable Data» (May 26, 1995) 27.
  28. «Systems Engineering» (May 30, 1995) 28.
  29. «You Get What You Measure» (June 1, 1995) 29. ,
  30. «How Do We Know What We Know» (June 2, 1995) :(((
  31. Hamming, «You and Your Research» (June 6, 1995). :

, — magisterludi2016@yandex.ru

Source: https://habr.com/ru/post/zh-CN415707/


All Articles