Julia编程语言应对微分方程挑战

导读 新兴的开源编程语言 Julia 旨在快速且易于使用。由于它特别适用于数值应用,例如微分方程,德国科学家正在使用它来探索过渡到全可再生能

新兴的开源编程语言 Julia 旨在快速且易于使用。由于它特别适用于数值应用,例如微分方程,德国科学家正在使用它来探索过渡到全可再生能源发电所涉及的挑战。

脱碳意味着电网的彻底重组,电网是一个巨大的复杂系统,具有各种各样的约束、不确定性和异质性。未来电网将变得更加复杂,因此需要新的计算工具。

在Chaos 中,波茨坦气候影响研究所 (PIK) 的科学家们描述了他们构建的一个软件包,用于模拟复杂网络上的一般动力系统。

他们想要构建一个开源工具——这样任何人都可以验证其软件结构和算法——使工程师和物理学家可以轻松访问 Julia 生态系统中的所有最先进算法。他们的包名为 NetworkDynamics.jl,最初是作为另一个包 PowerDynamics.jl 的计算后端。

PIK 的博士后研究员 Michael Lindner 说:“我们意识到我们的计算后端对动力系统社区中的其他研究人员也很有用。”

他们工作的两个理论支柱是微分方程和复杂网络。

“例如,通过构建电网或大脑模型,就网络上的微分方程而言,我们为它们提供了清晰的底层结构,”他说。“网络编码局部性,什么与什么相互作用,微分方程编码动态,事物如何随时间变化。”

这使研究人员能够获得最先进的模拟速度。

“我们首先计算网络组件之间的所有交互,然后计算各个组件对该交互的反向反应。这使我们能够在两个易于并行化的循环中计算系统的整个演变,”Lindner 说。

由于 Julia 编写速度快且易于编写,并且有一个用于求解微分方程的库(DifferentialEquations.jl),研究人员可以在一天内实现和模拟复杂的模型——而不是过去使用其他语言需要一个月的时间。

“它消除了一些限制科学创造力的障碍,”林德纳说。“之前我什至没有考虑过某些模型和重要问题,只是因为在我给定的时间限制和编程技能下,它们似乎完全无法实现。”

高性能算法的良好、直观的界面“对当今的科学很重要,”他说,“因为它们使科学家能够专注于他们的研究问题和模型,而不是代码和实现细节。”

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时候联系我们修改或删除,多谢