a = array([[2*R0*(Q0**2), 2*R1*(Q1**2), 2*R2*(Q2**2), 2*R3*(Q3**2), 2*R4*(Q4**2), 0, 0, 0],
[0, 0, 0, 2*R3*(Q3**2), 2*R4*(Q4**2), 0, 0, 0], [0, 2*R1*(Q1**2),0, 0, 0, 2*R5*(Q5**2), 2*R6*(Q6**2), 2*R7*(Q7**2)], [1, 1, 0, 0, 0, 0, 1], [0, 1, 1, 0, 0, 1, 0, 0, 0], [0, 0, 1, 1, 1, 0, 0, 0],
[0, 0, 0, 0, 0, 1, 0, 1], [0, 0, 0, 0, 0, 0, 0, 1, 1]])
b = array([[95-(R0*(Q0**3))-(R1*(Q1**3))-(R2*(Q2**3))-(R3*(Q3**3))-(R4*(Q4**3))], [-(R4*(Q4**3))-(R3*(Q3**3))],
[-(R6*(Q6**3))-(R7*(Q7**3))-(R1*(Q1**3))-(R5*(Q5**3))], [-Q0+Q1+Q6], [0.6-Q1+Q2+Q5], [-Q2+Q3+Q4], [1.4-Q7-Q5], [Q7-Q6]])
p = solve(a, b)
print ("deltaQ:", p)
求解(a,b)是一个高斯约旦消除函数,它解决了R0-R7和Q0-Q7是常数的线性方程!它适用于其他矩阵,但是对于这个矩阵我得到了一个错误。
答案 0 :(得分:1)
数组a
没有一致的行,因此numpy将数组初始化为包含不同“对象”而不是2D数组的1D数组。
>>>> print(a.dtype)
object
因此错误抱怨没有2D阵列而只有1D。
答案 1 :(得分:0)
当我遇到这个问题时,它是关于作为稀疏矩阵的拉普拉斯矩阵的特征向量生成。我不得不使用laplacian_matrix.todense()函数(laplacian_matrix来自包networkx),异常得到解决。