python求解结构力学矩阵案例
力法求解超静定结构
题目(来自于玲玲-结构力学考研辅导丛书)
解析过程
求解方程
高斯消元法求解线性方程组 [a]{x} = b
{
3
l
4
E
I
X
1
=
0
l
2
E
I
X
2
−
q
l
3
48
E
I
=
0
3
l
4
E
I
X
3
+
q
l
3
48
E
I
=
0
\begin{equation} \left\{\begin{array}{l} \frac{3 l}{4 E I} X_1=0 \\ \frac{l}{2 E I} X_2-\frac{q l^3}{48 E I}=0 \\ \frac{3 l}{4 E I} X_3+\frac{q l^3}{48 E I}=0 \end{array}\right. \end{equation}
⎩
⎨
⎧4EI3lX1=02EIlX2−48EIql3=04EI3lX3+48EIql3=0
其中
a = np.array([ [3/4,0,0] , [0,1/2,0] ,[0,0, 3/4 ]])
b = np.array([ 0,1/48,-1/48 ]) .reshape(3,1)
from fractions import Fraction
import numpy as np
# 定义线性方程组的系数矩阵和常数向量
a = np.array([ [3/4,0,0] , [0,1/2,0] ,[0,0, 3/4 ]])
b = np.array([ 0,1/48,-1/48 ]) .reshape(3,1)
# 求解线性方程组
x = np.linalg.solve(a, b)
# 将解向量转换为分数表示
x_str = np.squeeze(x).astype(float)
x_frac = [Fraction(str(x_str[i])).limit_denominator() for i in range(len(x_str))]
# 打印分数表示的解向量
print("分数表示的解向量为:", x_frac)
结果
分数表示的解向量为: [Fraction(0, 1), Fraction(1, 24), Fraction(-1, 36)]
对比算例,计算一致