python - 让龙格库塔更快
问题描述
尝试在给定 2D 流体场的情况下加快拉格朗日轨迹的计算。
到目前为止,使用 4 阶 RK,有:
for n in range(tau):
t=2*n
[x1,z1]=[x+0.5*U_xz[t](x0,z0),z+0.5*W_xz[t](x0,z0)]
t+=1
[x2,z2]=[x+0.5*U_xz[t](x1,z1),z+0.5*W_xz[t](x1,z1)]
[x3,z3]=[x+U_xz[t](x2,z2),z+W_xz[t](x2,z2)]
t+=1
[x4,z4]=[x+U_xz[t](x3,z3),z+W_xz[t](x3,z3)]
[x0,z0]=[(x1+2*x2+2*x3+x4)/6.0,(z1+2*z2+2*z3+z4)/6.0]
x=x%nx
最后几行不是那么重要。U_xz 和 W_xz 是函数(从离散时间步长的数据线性插值)。
想加快速度,有什么建议吗,@jit 可能吗?
解决方案
推荐阅读
- php - 使用 htaccess 删除 index.php
- selenium-ide - 无法单击 Selenium IDE 中的工具栏选项
- html - 如何使用 CSS 在块元素中居中内联元素?
- docker - go-docker 客户端每秒获取容器日志不返回任何内容
- c# - XAML 中的 Bindingerror 和 UWP 中的 MVVM(使用 C#)
- amazon-dynamodb - 如何使用 CloudFormation 在 DynamoDB 上启用静态加密
- javascript - 使用 `\n` 复制字符串,使用 document.execCommand("copy")
- javascript - 知道两种型号的区别吗?
- angularjs - 材料2 md表按日期排序不起作用
- arrays - 如何将 map 函数应用于 Kotlin 中的数组并更改其值?