You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python实现结构动力学中的杜哈梅积分(卷积积分)?

杜哈梅积分(卷积积分)的Python实现方案

你用sympy做符号积分时,被积函数是指数、双正弦项的乘积,符号解析解推导复杂度极高,sympy可能无法生成闭合解,或耗时极久。而你需要的是t=1时的数值结果,更适合用数值积分实现,以下是具体方案:

数值积分实现代码(基于scipy)

直接用scipy.integrate.quad计算定积分的数值结果,避开符号解析的瓶颈:

import numpy as np
from scipy.integrate import quad

# 系统参数
m = 6938.78
k = 379259
zeta = 0.05  # 阻尼比
wn = np.sqrt(k / m)
wd = wn * np.sqrt(1 - zeta**2)

# 定义杜哈梅积分的被积函数
def duhame_integrand(tau, t):
    eq1 = 900 * np.sin(5.3 * tau)
    eq2 = np.exp(-zeta * wn * (t - tau))
    eq3 = np.sin(wd * (t - tau))
    return eq1 * eq2 * eq3

# 计算t=1时的响应
t_target = 1
integral_result, _ = quad(duhame_integrand, 0, t_target, args=(t_target,))
y = integral_result / (m * wd)

print(f"t=1时的响应y: {y:.6f}")

运行这段代码后,会得到与Ti Nspire结果接近的数值(因浮点精度差异,可能有微小偏差)。

补充说明

符号积分仅适合结构简单的函数,这类包含多频率正弦项、指数项乘积的卷积积分,解析解表达式会异常冗长,sympy的符号引擎难以高效处理。而数值积分直接针对特定时间点计算定积分值,完全匹配你获取t=1时响应的需求。

内容的提问来源于stack exchange,提问作者SM KIM

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 18:31:03