对于方程
(-w*M + K) * p = 0
求解向量p。它由 3 个彼此线性相关的值组成。为了解决这个问题,可以将其中一个值设置为 1。 所有值都等于 0 的解决方案是不需要的。
到目前为止我已经测试了以下代码。不幸的是,我只得到
[]
作为这个问题的解决方案
我正在使用 sympy (
sy
) 和 numpy (np
)。
w = 18.54876451
p1 = 1
p2 = sy.Symbol('p2')
p3 = sy.Symbol('p3')
p = np.array([[p1], [p2], [p3]])
equation_p = (-w * sy.Matrix(M) + sy.Matrix(K)) * sy.Matrix(p)
solutions_p = sy.solve(equation_p, (p1, p2, p3))
print(solutions_p)
M=
[[3000 0 0]
[ 0 2000 0]
[ 0 0 8000]]
K =
[[1077728.39506173 -682666.66666667 0. ]
[-682666.66666667 1365333.33333333 -682666.66666667]
[ 0. -682666.66666667 682666.66666667]]
数值求解也没有产生任何结果。
问题解决了。 可以使用线性代数来解决。