0

一点背景知识:我正在为大学做一个项目。现在,我需要创建剪切力图。这是通过整合沿感兴趣的梁作用的载荷来完成的。这一切都很好,我认为这很简单。我正在使用Integrate.quad 函数,另请参阅下面的代码。

def ShearIntegral(z):
    result = np.zeros_like(z)
    for i, val in enumerate(z):
        q,error = integrate.quad(Loading, 0, val)
        y = -q + 22028.2 + 68351.55 - L/2 #numerical terms take into account the reaction force at the root
        result[i] = y
    return result

在这段代码中,z 是一个 np.arange(0,18,0.25) 形式的数组(例如,我感兴趣的光束从 0 米延伸到 18 米)。加载是几个函数的组合,但我认为它在这里并不重要,因为计算每次迭代的值所需的时间可以忽略不计。

如果您愿意,我的主要“问题”是计算结果所需的时间。总共需要 71 次迭代才能找到结果。在这些迭代中,前 30 次左右总共只需要 30 秒。然而,剩下的 41 次迭代开始花费更长的时间,给我的总程序运行时间为 4 分 30 秒。

是否有任何计算增强功能可用于加速此过程?

4

0 回答 0