首页 > 解决方案 > 让龙格库塔更快

问题描述

尝试在给定 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 可能吗?

标签: pythonnumerical-methods

解决方案


推荐阅读