修改之后还是会报错说: 'matrix' object has no attribute 'det'
时间: 2023-06-22 11:30:59 浏览: 157
非常抱歉,我的回答有误。`numpy.matrix` 对象确实有 `det` 方法,但是 `numpy` 库中的 `matrix` 函数已经被官方不推荐使用了,因为它不够灵活。现在推荐使用 `numpy.array` 数组来代替 `numpy.matrix` 矩阵。
因此,你需要使用 `numpy.linalg.det` 函数来计算数组的行列式,而不是使用 `matrix` 对象的 `det` 方法。
修改后的代码如下:
```
import numpy as np
def qr_decomposition(A):
n, p = A.shape
if n != p or np.linalg.det(A) == 0:
raise Exception("Les données ne sont pas correctes")
AA = A.copy()
Q = np.eye(n)
for i in range(n):
if not np.allclose(AA[i+1:, i], 0):
B = AA.copy()
for j in range(i):
B[j, i] = 0
Ci = np.array([int(k == i) for k in range(n)])
S = mat_simp(mat(Ci-B[:, i]/np.linalg.norm(B[:, i])))
Q = Q@S
AA = S@AA
R = AA
return Q.transpose(), R
```
相比之前的代码,主要修改了以下两个地方:
1. 将 `numpy.matrix` 改为 `numpy.array`,并使用 `numpy.linalg.det` 函数计算行列式。
2. 将 `numpy.all` 改为 `numpy.allclose`,因为在实际计算中,由于浮点数精度的原因,判断一个数是否为 0,不能直接用等于号,而是需要使用 `numpy.allclose` 函数来判断。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044937.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)