Mint tudjuk, az inverz mátrixot a numpy segítségével a következőképpen számíthatjuk ki.
matrix1 = np.matrix([[8,2,5],[7,3,1],[4,9,6]])
inverse_matrix1 = matrix1.I
result = np.matmul(matrix1, inverse_matrix1)
Az eredmény a következő, és könnyen ellenőrizhetjük a pontosságot egyszerűen az np.matmul végrehajtásával.
matrix([[ 0.03585657, 0.1314741 , -0.05179283],
[-0.15139442, 0.11155378, 0.10756972],
[ 0.20318725, -0.25498008, 0.03984064]])
Az ellenőrzött eredmény a következő.
matrix([[ 1.00000000e+00, 0.00000000e+00, 2.77555756e-17],
[ 0.00000000e+00, 1.00000000e+00, 3.46944695e-17],
[-2.22044605e-16, 0.00000000e+00, 1.00000000e+00]])
Ez az eset azonban nagyon kicsi. A gyakorlatban ugyan kerülni kell az inverz mátrix kiszámítását a nagy mátrixhoz, de néha ezt kell tennünk. Azt találtam, hogy a mátrix. Nem tudok viszonylag pontos inverz mátrixot megadni, ha a mátrix viszonylag nagy. A példa a következőképpen látható. Egy (300, 300) alakú Gauss-kernelmátrix inverz mátrixát szeretném kiszámítani.
point = np.reshape(np.linspace(-5.0, 5.0, 300), (300, 1))
kernel_matrix_np = np.exp(-(point - np.transpose(point))**2 / (2 * 2**2))
Nem tudom, hogyan tudnék ilyen mátrixot kiszámítani. Nagyon szépen köszönöm!