科学计算机模拟(一)
计算机模拟在第二次世界大战第II第二次世界大战前期的时期作为气象学和核物理学的科学工具开创,从而在越来越多的学科中变得不可或缺。 使计算机模拟广泛使用的科学列表已经增长,包括天体物理学,粒子物理学,材料科学,工程,流体力学,气候科学,进化生物学,生态学,经济学,决策理论,医学,社会学,流行病学和许多其他人。 甚至有一些学科,例如混乱理论和复杂性理论,其非常存在的情况与他们学习的计算模型的发展一起出现。
在开始缓慢之后,科学的哲学家已经开始更加关注计算机模拟在科学中的作用。 有几个哲学兴趣的计算机模拟领域已经出现:计算机模拟认识论的结构是什么? 计算机仿真与实验之间的关系是什么? 计算机模拟是否提出了近期在型号的哲学哲学更普遍覆盖的哲学问题? 计算机模拟教我们关于出现的东西是什么? 关于科学理论的结构? 关于科学建模中的虚构的角色(如果有的话)?
1.什么是计算机模拟?
1.1一个狭隘的定义
1.2广泛的定义
1.3另一种观点
2.计算机模拟类型
2.1基于等式的模拟
2.2基于代理的模拟
2.3多尺度模拟
2.4蒙特卡罗模拟
3.模拟的目的
4.计算机模拟的认识论
4.1 EOC的新功能
4.2 EOCs和实验的认识学
4.3验证和验证
4.4 EOC和认知权利
4.5务实的EOCs方法
5.模拟和实验
6.计算机仿真与科学理论的结构
7.出现
8.小说
参考书目
学术工具
其他互联网资源
相关条目
1.什么是计算机模拟?
没有单一的计算机模拟定义是合适的。 首先,该术语在狭窄和广义上使用。 在第二个地方,人们可能希望从一个以上的角度来理解这个词。
1.1一个狭隘的定义
在最狭隘的意义上,计算机模拟是在计算机上运行的程序,并使用逐步方法来探索数学模型的近似行为。 通常这是一个真实世界系统的模型(尽管有问题的系统可能是虚构或假设的一个)。 这种计算机程序是计算机仿真模型。 计算机上的一个程序是系统的计算机仿真。 该算法在某个时间t时,作为其输入系统的状态(所有变量的值)的输入。 然后它在时间t + 1计算系统的状态。 从表征第二状态的值,它可以在时间t + 2,依此类推计算系统的状态。 在计算机上运行时,该算法因此产生了系统状态的演变的数值图片,因为它在模型中概念化。
模型变量的这种值序列可以保存为大量的“数据”集合,并且通常使用可视化方法在计算机屏幕上查看。 通常,但肯定并不总是,可视化方法旨在模仿一些科学仪器的输出 - 因此仿真似乎是测量感兴趣的系统。
有时,使用计算机仿真的逐步方法,因为感兴趣的模型包含连续(差分)方程(指定不能在实践中分析或许的连续变化率)。 这封信由Paul Humphreys提供以下定义的精神:“任何计算机实现的方法,用于探索分析方法不可用的数学模型的属性”(1991,500)。 但即使作为一个狭隘的定义,也应该仔细阅读这个,并且不得认为只有在模型中存在分析无法解决的方程时才使用模拟。 计算机模拟通常是因为原始模型本身包含离散方程 - 可以以适合于模拟的算法直接实现 - 或者原始模型由更好地描述为进化规则的东西而不是等式。
在前一种情况下,当方程被“离散化”(描述了描述了离散方程的连续变化率的方程式)时,应该强调的是,虽然谈论模拟“解决”这些方程,但可分散化才能享受找到近似于连续方程的解决方案的东西,以某种所需的准确度。 最后,当在最狭隘的意义上讲“计算机模拟”时,我们应该谈论在特定数字计算机上以特定语言写入的特定数字计算机上的特定实现,使用特定编译器等。存在可能在任何情况下获得不同结果的情况这些细节。
1.2广泛的定义
更广泛地,我们可以考虑计算机模拟作为学习系统的综合方法。 在这个术语的更广泛的意义上,它指的是整个过程。 这个过程包括选择模型; 找到一种以可以在计算机上运行的形式实现该模型的方法; 计算算法的输出; 并可视化和研究所得到的数据。 该方法包括这种整个过程 - 用于对目标系统推断出一个试图模拟 - 以及用于制裁那些推论的程序。 这或多或少是Winsberg 2003(111)中计算机仿真研究的定义。 “成功的模拟研究比计算数字更多。 它们利用各种技术来吸引这些数字的推论。 模拟使得创造性地使用计算技术,这些技术只能在理论上跨越数学和额外的方式。 因此,与可以在计算机上执行的简单计算不同,模拟结果不会自动可靠。 大量努力和专业知识决定决定哪种仿真结果是可靠的,哪些仿真结果不是。“ 当科学哲学家写下计算机仿真时,并使声明关于什么宣传或方法的“计算机模拟”,它们通常意味着在这种广泛的计算机模拟研究中可以理解的术语。
1.3另一种观点
上述两个定义都采取计算机模拟,基本上使用计算机来解决或大致解决,该模型的数学方程意味着代表一些系统 - 无论是真实的还是假设。 另一种方法是尝试独立于计算机模拟的概念定义“仿真”,然后以编程数字计算机执行“计算机仿真”。作为编程数字计算机执行的模拟。 在这种方法上,模拟是据信或希望的任何系统,以具有与其他一些系统类似的动态行为,使得前者可以被研究以了解后者。
例如,如果我们研究一些物体,因为我们认为它足够地动态地类似于我们通过研究它来学习流体盆地的流体,因此它提供了流体盆地的模拟。 这符合我们在Hartmann中找到的模拟定义:它是“通过另一个进程模仿一个过程。 在这个定义中,术语“进程”仅指其状态变化的某些对象或系统“(1996,83)。 Hughes(1999)反对哈特曼的定义排除了模拟模拟系统结构而不是动态的模拟。 Humphreys修改了他对模拟的定义,符合Hartmann和Hughes的言论,如下所示:
System S提供的物体或过程B的核心模拟,以便在案例S是一个具体计算设备,通过时间过程,计算模型的解决方案可以正确地或静态地代表B.正确代表B. 如果另外,如果S正确地表示的计算模型表示真实系统R的结构,则S提供了关于B的系统R的核心模拟。(2004,第110页)
(请注意,Humphreys在这里定义计算机仿真,通常不会模拟,但他本着定义组成术语的精神。)应该指出,Humphreys'定义使模拟出来是一个成功术语,这似乎是不幸的。 更好的定义将是一个像上一节中的那样,包括像“相信”或“希望”这样的词来解决这个问题。
在计算机仿真的大多数哲学讨论中,更有用的概念是1.2中定义的概念。 例外是明确讨论的目标,以了解计算机仿真更通常是模拟的示例(参见第5节)。 不是计算机模拟的模拟的例子包括旧金山湾的着名物理模型(Huggins&Schultz 1973)。 这是旧金山湾和萨克拉门托 - 三何奎河三角洲制造的工作液压级模型,建于20世纪50年代的工程师军团,研究了湾的可能的工程干预措施。 另一个漂亮的例子,它是广泛讨论的(Dardashti等,2015,2019)是使用由Bose-Einstein冷凝水制成的声学“哑铃”来研究黑洞的行为。 物理学家Bill Unuh注意到,在某些液体中,如果有液体的液体的区域,那么移动的流体的区域会产生比声速快(他们不能做的东西)的速度移动(他们不能做的东西)(unruh 1981)。 这些地区实际上有声音事件视野。 Unruh称这样的物理设置为“哑铃”(“哑铃”,如“静音”),并提出可以研究它以便学习我们不了解黑洞的东西。 有一段时间,这个提议被视为一个聪明的想法,但物理学家最近实现了,使用Bose-Einstein凝聚液,他们实际上可以在实验室中建立和研究愚蠢的漏洞。 很明显为什么我们应该将这种设置视为模拟:哑孔模拟黑洞。 代替找到计算机程序来模拟黑洞,物理学家发现流体动态设置,他们认为它们具有良好的模型,并且该模型与感兴趣系统的模型具有基础的数学相似之处。 他们遵守实验室中的流体设置的行为,以便对黑洞进行推断。 此部分仿真定义的重点是尝试在什么意义的计算机模拟中理解,这些活动是相同属的种类。 然后,我们可能处于更好的情况,了解为什么要在1.3的意义上进行模拟,这恰好在计算机上与1.2意义上的模拟重叠。 我们将在第5节中回到这一点。
Barberousse等。 然而,(2009年),这一直对这个类比批评。 他们指出,计算机模拟不起作用的方式不起作用的方式。 并非计算机作为材料对象和目标系统遵循相同的微分方程。 关于不是计算机模拟的模拟的良好参考是Trenholme 1994。
2.计算机模拟类型
通常区分两种类型的计算机模拟:基于方程式的模拟和基于代理(或基于个人的)模拟。 两种类型的计算机模拟用于三种不同的常规目的:预测(既时和全球/定性),理解和探索性或启发式目的。
2.1基于等式的模拟
基于等式的模拟最常用于物理科学和其他科学,其中可以指导基于微分方程的数学模型构建。 我在这里使用术语“方程”术语来基于与物理理论相关的全局方程的仿真 - 而不是“进化规则”(在下一节中讨论。)基于方程式的模拟可以是基于粒子的,其中有很多用于控制其相互作用的离散体和一组微分方程,或者它们可以是基于现场的,其中有一组用于连续培养基或场的时间演变的方程。 前者的一个例子是星系形成的模拟,其中在时间和空间中离散体的有限收集之间的重力相互作用。 后者的一个例子是模拟流体,例如像严重风暴一样的气象系统。 这里,该系统被视为连续介质 - 流体 - 表示其在空间中的相关变量的分布的场在空间中被离散化,然后以离散的时间间隔更新。
2.2基于代理的模拟
基于代理的模拟是社会和行为科学中最常见的,尽管我们也在这样的学科中发现它们是人工生命,流行病学,生态学以及许多人的网络相互作用的任何学科。 基于代理的仿真类似于基于粒子的模拟,因为它们代表了n多个离散的个体的行为。 但是与基于方程式粒子的模拟不同,没有全局微分方程来控制个人的运动。 相反,在基于代理的模拟中,个人的行为由自己的本地规则决定
举一个例子:基于突破性的代理的仿真是托马斯·斯科林(1971)的“隔离”模型 他模拟中的代理人是在棋盘上“住”的个人。 这些人分为社会中的两组(例如,两场不同的种族,男孩和女孩,吸烟者和非吸烟者等)董事会的每个广场都代表了一所房子,每房间都有一个人。 如果他/她拥有他/她自己的群体的一定邻居,个人很高兴。 快乐的代理人留在他们所在的地方,不快乐的代理商搬到自由地点。 斯科林发现,如果指定了代理商的“幸福规则”,则董事会迅速发展成为一个强烈的隔离地点模式,以便隔离受到重视。 然而,令人惊讶的是,他还发现,即使代理商的幸福规则只表达了对其自己类型的邻居的温和偏好,即使代理人的幸福偏好也是一个完全分离的集成板。
2.3多尺度模拟
在第2.1节中,我们讨论了基于粒子方法的基于方程式的模型和基于现场方法的模型。 但一些模拟模型是不同种类的模型方法的混合动力。 多尺度仿真模型,特别是从不同的描述中耦合在一起建模元素。 一个很好的例子是一种模型,它是通过将材料作为在相对粗略的描述中作为遭受压力和应变的场地来模拟散装物质的动态,而是放大到发生重要小规模效应的材料的特定区域,并且相对地模拟那些较小的区域更细粒度的建模方法。 这些方法可以依赖于分子动力学,或者量子力学,或两者的两者都是通过将材料作为领域的材料提供的更细粒物质描述。 多尺度仿真方法可以进一步分解为串行多尺度和并行多尺度方法。 更传统的方法是串行多尺度建模。 这里的想法是选择一个区域,在较低的描述级别模拟它,将结果汇总为较高级别模型可消化的一组参数,并将其传递到在更高级别计算的算法的一部分中。
当不同的尺度强烈耦合在一起时,串行多尺度方法无效。 当不同的尺度相互作用时强烈地产生观察到的行为,所需的方法是同时模拟每个区域的方法。 这称为并行多尺度建模。 并行多尺度建模是近乎无处不在的仿真方法的基础:所谓的“子网”建模。 子网格建模是指在长度尺度上发生的重要小型物理过程的表示,其在特定模拟的网格尺寸上不能充分解决。 (记住,许多模拟离散方程,因此它们具有相对任意的有限“网格尺寸”。例如,在流体中的湍流研究中,例如,计算的常见实际策略是考虑丢失的小规模涡旋(或漩涡)落在网格细胞内。 这是通过添加到大规模运动的涡粘度来完成的,该涡流表征在较小尺度的流动中的能量的传输和耗散的粘度或任何这样的特征,这些特征在太小的范围内被栅格捕获。
在气候科学和科属学科中,子网格建模称为“参数化” 此外,再次是指替换太小或复杂的过程的方法,以在模型中物理地表示 - 通过更简单的数学描述。 这与其他过程相反 - 例如,大气的大规模流动 - 根据基本理论在网格水平上计算。 它被称为“参数化”,因为需要各种非物理参数来驱动计算子网格值的高近似算法。 气候模拟中参数化的例子包括雨滴的下降率,大气辐射转移的速率和云层的速率。 例如,100 km2网格箱上的平均云度与盒子上的平均湿度无效。 尽管如此,随着平均湿度的增加,平均浑浊也将增加 - 因此可以将平均云度与网格箱内的平均湿度连接到平均云。 尽管云形成的现代参数比这更复杂,但是该示例的基本思想很好地说明。 在模拟中使用子网格建模方法对了解模拟认识论结构具有重要影响。 这将在第4节中更详细地讨论。
子网格建模方法可以与另一种平行的多尺度模型形成对比,其中子网格算法在理论上是理论上的原则性的,而是通过在不同的描述水平的理论上激励。 在上述散装物质的模拟的示例中,例如,驱动较小水平的描述的算法不是由裤子构建的。 驱动较小级别的算法实际上比较高度更高的原则,因为物理学更为基础:量子力学或分子动力学与连续体力学。 这些种类的多尺度模型,换句话说,将不同层次的理论资源划成不同的描述。 因此,他们为挑起了我们对思想际关系的思考,并挑战了广泛持有人的思考,以至于不一致的法律可能没有模型的思考。
2.4蒙特卡罗模拟
在科学文献中,还有另一大类电脑模拟称为蒙特卡罗(MC)模拟。 MC仿真是计算机算法,用于计算数学模型的属性以及算法的随机性不是目标模型的特征。 一个很好的例子是使用随机算法来计算π的值。 如果在一张纸上绘制单位正方形并在其中题列圈子,然后随机丢弃正方形内部的物体集合,围绕圆圈的物体的比例大致等于π/ 4。 计算机模拟,用于模拟这样的过程,该过程将被称为计算π的MC仿真。
许多科学哲学家在这里偏离了普通的科学语言,并避开了MC模拟的思考作为真正的模拟。 GÜNE-yanoff和Weirich(2010)提供以下推理:“蒙特卡罗方法没有模仿的目的:它模仿确定性系统,以便作为替代品在其纯粹调查的替代品,但仅用于提供确定性系统的属性的替代计算”(第30页)。 这表明MC模拟不适合任何上述定义。 另一方面,哲学家和普通语言之间的划分可能是通过注意到MC仿真模拟了可能用于计算与研究其他进程相关的东西的虚构过程来平衡。 假设我正在建模行星轨道和我的计算,我需要知道π的值。 如果我在最后一段中提到的MC模拟,我正在模拟随机将物体随机丢弃到广场中的过程,但我的建模是行星轨道。 这是MC仿真是模拟的意义,但它们不是模拟他们用于学习的系统。 然而,正如Beisbart和Norton(2012年)所指出的那样,一些MC仿真(viz那些使用MC技术来求解物理系统的随机动态方程的那些)实际上是他们研究的系统的模拟。
3.模拟的目的
可以放置计算机仿真的三种一般的目的。 模拟可用于启发式目的,以便预测我们没有的数据,并为我们已经拥有的数据生成了解。
在启发式模型的类别下,仿真可以进一步细分为用于向他人传达知识的那些,以及用于代表我们自己的信息的人。 当沃森和克里克用锡盘和电线玩时,他们起初就在做了后者,当他们向他人展示了结果时,前者。 当陆军军团建造了旧金山湾的模型时,说服投票人口,特定干预是危险的,他们正在为这种启发式目的使用它。 计算机模拟可用于这两种目的 - 探索可能的代表结构的特征; 或向他人传达知识。 例如:计算机模拟自然过程,如细菌繁殖,构造转移,化学反应和进化中都被用于课堂环境中,以帮助学生在现象和过程中可视化隐藏的结构,这是不切实际的,不可能的,或昂贵来说明“湿”实验室设置。
可以放置计算机模拟的另一个广泛的目的是告诉我们我们如何在现实世界中期望某些系统在特定的情况下表现。 松散地说:计算机仿真可用于预测。 我们可以使用模型来预测未来,或者修改过去; 我们可以用它们来制作精确的预测或松散和一般的预测。 关于我们用仿真制作的预测的相对精度,我们可以在我们的分类学中稍微细粒度稍微细粒度。 有一个)点预测:星球火星在哪里是2300年10月21日? b)“定性”或全球或全身预测:这个星球的轨道稳定吗? 这些系统中出现了什么缩放法案? 这种吸引子的分形维数是什么? C)范围预测:全球平均表面温度在2100年的2-5摄氏度之间增加了66%; 海拔至少两英尺,这是“很可能”; 它是“难以置信的”,热羊貂在未来50年内将关闭。
最后,仿真可用于理解系统及其行为。 如果我们已经有数据告诉我们某些系统的行为方式,我们可以使用计算机模拟来回答有关如何发生这些事件的问题; 或者关于那些实际情况的事件如何发生。
在思考下一节的主题时,计算机模拟的认识论,我们还应该记住,制裁模拟结果所需的程序通常取决于大部分目的或目的,模拟将被放置。
4.计算机模拟的认识论
随着计算机仿真方法在越来越多的学科中获得了重要性,他们对产生新知识的可靠性产生的问题已经发展,特别是当预计仿真被视为具有实验和传统分析理论方法的认识同龄人时。 相关问题始终是特定计算机模拟的结果是否足以满足其预期目的。 如果用于预测天气的模拟,它是否预测了我们对符合其消费者需求的准确度的变量的变量? 如果模拟中西部平原上方的大气层被用来了解严重雷暴的结构,我们是否有信心在流动中的结构 - 在我们的说明风暴中有时会在两个中分裂的原因,或者为什么它有时会发挥解释作用龙卷风 - 正准确地描绘,足以支持我们对解释的信心? 如果在工程设计中使用模拟,是通过模拟的预测,可以足够可靠地制定特定选择的设计参数,或者制裁我们的信念,即飞机翼的特定设计将运作? 假设这些问题的答案有时是“是”,即,这些类型的推论至少有时是合理的,中央哲学问题是:他们证明了什么? 更一般地说,索赔如何为其预期目的进行仿真足够好? 这些是计算机模拟(EoCs)认识学的中心问题。