python numpy逆_numpy.linalg.inv返回奇异矩阵的逆函数 - python
下面的矩陣是單數(shù),并且AFAIK嘗試將其求反應導致
numpy.linalg.linalg.LinAlgError: Singular matrix
但是我得到了一些輸出矩陣。請注意,輸出矩陣是無意義的結果,因為它具有一行0(這是不可能的,因為矩陣的逆本身應該是可逆的)!
我是否在這里缺少與浮點精度有關的東西,或者與真實逆相反的偽逆的計算?
$ np.__version__
'1.13.1'
$ np.linalg.inv(np.array([[2,7,7],[7,7,7],[8,7,7]]))
array([[ 0.00000000e+00, 0.00000000e+00, 0.00000000e+00],
[ 3.43131400e+15, -2.05878840e+16, 1.71565700e+16],
[ -3.43131400e+15, 2.05878840e+16, -1.71565700e+16]])```
參考方案
在后臺,NumPy和SciPy(以及許多其他軟件)都退回到線性方程求解器的LAPACK實現(xiàn)(或C轉換)(在本例中為GESV)。
由于GESV首先執(zhí)行LU分解,然后檢查U矩陣的對角線是否有確切的零,因此很難在分解中達到理想的零。這就是為什么您不會遇到奇異矩陣錯誤的原因。
除此之外,如果要與其他矩陣相乘,則永遠不要求逆矩陣,而是求解AX=B。
在SciPy自版本0.19起,scipy.linalg.solve使用GESVX的“專家”驅動程序GESV,該驅動程序還會報告條件編號并發(fā)出警告。如果缺少奇點,這類似于matlab的行為。
In [7]: sp.linalg.solve(np.array([[2,7,7],[7,7,7],[8,7,7]]), np.eye(3))
...\lib\site-packages\scipy\linalg\basic.py:223: RuntimeWarning: scipy.linalg.solve
Ill-conditioned matrix detected. Result is not guaranteed to be accurate.
Reciprocal condition number: 1.1564823173178713e-18
' condition number: {}'.format(rcond), RuntimeWarning)
Out[7]:
array([[ 0.00000000e+00, -1.00000000e+00, 1.50000000e+00],
[ 3.43131400e+15, -2.05878840e+16, 1.71565700e+16],
[ -3.43131400e+15, 2.05878840e+16, -1.71565700e+16]])
numpy.savetxt“元組索引超出范圍”? - python
我試圖在文本文件中寫幾行,這是我使用的代碼:import numpy as np # Generate some test data data = np.arange(0.0,1000.0,50.0) with file('test.txt', 'w') as outfile: outfile.write('…用Python計算稀疏矩陣的Cholesky分解 - python
我正在嘗試實現(xiàn)Reinsch's Algorithm(pp 4)。由于工作矩陣是稀疏的,所以我使用的是scipy.sparse模塊,但是正如您所看到的,Reinsch的算法需要稀疏矩陣的Cholesky分解(我們稱其為my_matrix)才能求解某些系統(tǒng),但是我不能找到與此有關的任何東西。當然,在同一算法中,我可以使用scipy.sparse.li…numpy loadtxt單行/行作為列表 - python
我只有一個數(shù)據文件,例如: 1.2 2.1 3.2 我使用numpy版本1.3.0 loadtxt加載它 a,b,c = loadtxt("data.dat", usecols(0,1,2), unpack=True) 輸出是浮點數(shù)而不是數(shù)組 a = 1.2 我希望它將是: a = array([1.2]) 如果我讀取了多行文件,則該文件…設置Jupyter筆記本電腦的最大內核數(shù) - python
我與同事共享一臺計算機。他們在那里運行并行計算,我需要運行Jupyter。我可能只使用幾個核心,而不是全部。但是,每次運行在Jupyter中使用numpy的單元時,它都會嘗試使用盡可能多的內核。在運行同事的計算時,Python占用了一半的內核。我試圖將Jupyter進程的nice設置為19,以便其Python子進程繼承niceness值,并且不嘗試使用所有內…Python輸出numpy數(shù)組作為base64編碼的字符串而不是jpg - python
我有一個簡單的Python3腳本,它使用以下命令從numpy數(shù)組創(chuàng)建圖像...cv2.imwrite("finalImage.jpg", numpyArray) 這可以正常工作,但是現(xiàn)在我希望輸出的是base64編碼的字符串,而不是jpg圖像。我知道我可以將輸出的jpg圖像轉換為base64字符串,但是有一種方法可以直接執(zhí)行此操作,因此我…
總結
以上是生活随笔為你收集整理的python numpy逆_numpy.linalg.inv返回奇异矩阵的逆函数 - python的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python messagebox弹窗退
- 下一篇: js监听iframe关闭_Node.js