高斯积分是常见的数值积分方法,是有限元计算中常用的数学工具。对于简化积分运算大有裨益。现在将其推广到结构力学,在计算结构位移时,用高斯积分来替代图乘法,同时用Python的sympy模块编程计算。
在结构力学中,计算梁的挠度时,其莫尔积分公式为:
其中:
当
高斯积分的基本思想是:在积分区间内,精心选择一些非等距的积分点(高斯点),用这些点上的函数值乘以相应的权重系数后求和,来近似积分值。
对于一个在标准区间
其中:
重要特性:对于
根据被积函数
常用高斯点与权重表(
用高斯积分法计算位移的步骤:
于是位移积分变为:
这里
一根简支梁,长
被积函数最高次为3次,故选择2个高斯点。
python代码
import sympy as sp
x, EI, xi, L1, w = sp.symbols('x EI xi L1 w')
Mx = 20*x - 5*x**2
mx = 0.5*x
f_x = (L1/(2*EI)) * Mx * mx * w # 被积函数
f_xi = f_x.subs( x, L1/2 * (1 + xi) ) # 将 x 用xi替换
# Gauss-Legendre 积分点(-0.57735 ≈ -1/√3, 1/0.57735 ≈ 1/√3)
points = [-0.57735, 0.57735]
weight = [1.0, 1.0]
delta = 0
for i in range(2):
# 同时代入当前积分点的 xi 和权重 w
delta += f_xi.subs({ xi: points[i], w: weight[i]} )
r = delta.subs({EI: 1.6e4, L1: 2})
2*r #对称性,左右半跨结果一样,故乘以2