项目主题

计算科学 优化
2021-12-08 13:15:02

在我的计算机编程课程介绍中,我被分配了一个项目。目标是为某些工程或物理/科学问题实施数值模型。该课程使用Java。

一个例子可能是足球的飞行。我正在寻找比仅仅模拟重力、空气阻力……和使用欧拉求解更有趣的东西。

我对数值优化很感兴趣,我查看了一些算法,但找不到任何可以应用它们的主题。

你能给我一些想法吗?

谢谢你。

3个回答

有许多有趣的常微分方程 (ODE) 构成了有趣的模型案例。例如,Lotka 和 Volterra 的捕食者-猎物模型提供了有趣的案例,并且可以很容易地推广到模拟多个相互作用物种的动态。

同样,对多个物体的引力相互作用进行建模可以拍出漂亮的照片。

随意使用我在数学建模入门课程中获得的片段来获得灵感:http: //www.math.tamu.edu/~bangerth/teaching.html#2010-fall-442

扩展 Wolfgang 的答案,您可以找到 ODE 的另一个地方是化学。一个 0-D 模型,假设 Arrhenius 速率为Aninj将导致一组非线性 ODE。设置并运行求解器后,您可以轻松扩展它以包含更多物种和更多反应,直到您创建足够有趣的东西以满足您的目的。

但是有一个警告,根据系统的不同,系统最终可能会变得僵硬,因此需要一个隐式求解器。我将假设实现这样的求解器超出了您的课程范围,但是,如果您正在编造虚构的费率,您应该能够避免这种情况。如果允许并且您愿意,您可以从netlib下载 Java 的开源隐式库注意:我没有亲自使用过这个库,只是阅读了自述文件,它看起来有据可查并且相当完整。

在您的问题中,您提到了优化,但这可能比 ODE 求解器稍微复杂一些。但是,如果您确实想走这条路,则可以研究诸如找到许多变量的标量函数的局部最小值(y=f(x))。同样,很难知道这对于您的技能水平来说是否太多或太微不足道。作为参考,我希望在工程师的第二个“编程”课程中,这可能是在第二年或第三年学习并在 matlab 中实现。

旅行商问题是一个很好的优化问题。这也是一个需要全局优化的NP-hard问题。为了解决这个问题,您必须尝试几种启发式优化算法,例如模拟退火和进化算法,这使您熟悉全局优化的思想。