使用 numpy.linalg.solve 求解线性代数方程,但接收 _assertNdSquareness 和数组的最后 2 个维度必须是平方误差:
感谢任何帮助,这是我的代码:
c = array([[1, 1, 1], [.07, .08, .09]])
d = array([24000, 1870])
z = linalg.solve(c, d)
print(z)
最佳答案
您不能将 numpy.linalg.solve
用于非方阵,如 documentation 中所述。 ,a 必须是平方且满秩的,即所有行(或等效的列)必须是线性独立的
。您的矩阵不是方形的,但文档也提到了这一点,如果其中一个不成立,请使用 lstsq 作为系统/方程的最小二乘最佳“解”。
下面是一个示例,应该适合您;
c = array([[1, 1, 1], [.07, .08, .09]])
d = array([24000, 1870])
z = linalg.lstsq(c, d)[0]
print(z)
# compare d and c*z to be sure
print(numpy.allclose(d,numpy.dot(c,z))) # should be true
关于python - Numpy 求解数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51227943/