我想通过计算等于零的矩阵(包括变量)的确定来计算变量(程序中的'w')。但我不知道为什么它不适用于l = 0.01但适用于l = 0.0。 我使用Sympy版本7.4.1,如果sombody回答我,我会非常高兴!
from sympy import *
import random as ra
w = Symbol('w')
l=0.01
d1=ra.uniform(-l,l)
d2=ra.uniform(-l,l)
d3=ra.uniform(-l,l)
d4=ra.uniform(-l,l)
d5=ra.uniform(-l,l)
d6=ra.uniform(-l,l)
S = Matrix([[ -d1*w**2 - w**2 + 2.,-1,0,0,0],
[-1.,-d2*w**2 - w**2 + 2.,-1,0,0],
[0,-1.,-d3*w**2 - w**2 + 2.,-1,0],
[0,0,-1.,-d4*w**2 - w**2 + 2.,-1],
[0,0,0,-1.,-d5*w**2 - w**2 + 2.]
])
determ = S.berkowitz_det()
wha = solve(determ,w)
print wha
答案 0 :(得分:1)
尝试使用solve(determ, w, rational=False)
。