Cara memperbaiki: numpy.linalg.linalgerror: matriks tunggal
Kesalahan yang mungkin Anda temui di Python adalah:
numpy.linalg.LinAlgError: Singular matrix
Kesalahan ini terjadi ketika Anda mencoba membalikkan matriks tunggal, yang menurut definisinya adalah matriks yang determinannya nol dan tidak dapat dibalik.
Tutorial ini menjelaskan cara mengatasi kesalahan ini dalam praktiknya.
Bagaimana cara mereproduksi kesalahan tersebut
Misalkan kita membuat matriks berikut menggunakan NumPy:
import numpy as np
#create 2x2 matrix
my_matrix = np. array ([[1., 1.], [1., 1.]])
#display matrix
print (my_matrix)
[[1. 1.]
[1. 1.]]
Sekarang misalkan kita mencoba menggunakan fungsi inv() NumPy untuk menghitung invers matriks:
from numpy import inv
#attempt to invert matrix
inv(my_matrix)
numpy.linalg.LinAlgError: Singular matrix
Kita mendapatkan error karena matriks yang kita buat tidak mempunyai matriks invers.
Catatan : Lihat halaman ini dari Wolfram MathWorld yang menunjukkan 10 contoh matriks berbeda yang tidak memiliki matriks invers.
Menurut definisinya, suatu matriks adalah tunggal dan tidak dapat dibalik jika mempunyai determinan nol.
Anda dapat menggunakan fungsi det() NumPy untuk menghitung determinan matriks tertentu sebelum mencoba membalikkannya:
from numpy import det
#calculate determinant of matrix
det(my_matrix)
0.0
Penentu matriks kita adalah nol, yang menjelaskan mengapa kita mengalami kesalahan.
Bagaimana cara memperbaiki kesalahan tersebut
Satu-satunya cara untuk mengatasi kesalahan ini adalah dengan membuat matriks yang tidak tunggal.
Misalnya, kita menggunakan fungsi inv() untuk membalikkan matriks berikut:
import numpy as np
from numpy. linalg import inv, det
#create 2x2 matrix that is not singular
my_matrix = np. array ([[1., 7.], [4., 2.]])
#display matrix
print (my_matrix)
[[1. 7.]
[4. 2.]]
#calculate determinant of matrix
print (det(my_matrix))
-25.9999999993
#calculate inverse of matrix
print (inv(my_matrix))
[[-0.07692308 0.26923077]
[0.15384615 -0.03846154]]
Kami tidak menerima kesalahan apa pun saat membalik matriks karena matriksnya tidak tunggal.
Sumber daya tambahan
Tutorial berikut menjelaskan cara memperbaiki kesalahan umum lainnya dengan Python:
Cara Memperbaiki: Objek ‘numpy.float64’ tidak dapat dipanggil
Cara Memperbaiki: Objek ‘numpy.ndarray’ tidak dapat dipanggil
Cara Memperbaiki: Objek ‘numpy.float64’ tidak dapat diartikan sebagai bilangan bulat