Matriks identitas dan invers melengkapi gambaran matriks sebagai transformasi. Matriks identitas membiarkan setiap titik tetap di tempatnya, sedangkan invers membatalkan kerja sebuah transformasi sehingga titik kembali ke posisi semula. Topik ini membahas keduanya, syarat kemunculan invers, serta cara menghitung dan memeriksanya menggunakan NumPy. Setelah topik ini selesai, hubungan dapat dijelaskan sekaligus diverifikasi dalam kode.
Matriks identitas#
Matriks identitas (identity matrix) adalah matriks persegi dengan angka 1 pada diagonal utama dan angka 0 pada posisi lainnya. Notasinya adalah untuk ukuran , dan yang terkecil ditulis sebagai berikut.
Perkalian sembarang matriks dengan identitas menghasilkan matriks semula, yaitu dan selama ukurannya cocok. Peran ini sama dengan bilangan 1 pada perkalian bilangan biasa, yang tidak mengubah nilai apa pun yang dikalikannya. Pada konteks transformasi, berarti transformasi tanpa kerja, yaitu setiap titik dibiarkan pada posisinya. Dalam kode, identitas dibuat dengan fungsi np.eye yang menerima banyak baris sebagai argumennya.
Invers sebagai pembatalan transformasi#
Invers dari matriks , ditulis , adalah matriks yang membatalkan kerja . Hubungannya ditetapkan sebagai berikut.
Maknanya paling mudah dilihat pada transformasi. Memutar sebuah titik 90 derajat berlawanan arah jarum jam lalu memutarnya lagi 90 derajat searah jarum jam mengembalikan titik ke posisi awal, sehingga invers dari matriks rotasi 90 derajat adalah matriks rotasi derajat. Diagram berikut memperlihatkan urutan tersebut.
Untuk matriks , invers dapat dihitung dengan rumus tertutup yang membagi dengan nilai , yaitu determinan matriks tersebut.
Pada matriks , nilai determinannya adalah , sehingga inversnya adalah . Nilai ini dapat diperiksa ulang dengan mengalikan kedua matriks secara manual, dan hasilnya diharapkan sama persis dengan identitas.
Memeriksa invers di NumPy#
Fungsi np.linalg.inv menghitung invers, sedangkan kesamaan hasil kali dengan identitas diperiksa menggunakan np.allclose karena komputasi pecahan dapat menyisakan angka kecil di belakang koma. Kode berikut membangun identitas, memverifikasi sifat netralnya, lalu menghitung dan memeriksa invers dari contoh di atas.
import numpy as np
# matriks identitas 2x2: diagonal utama 1, sisanya 0
I = np.eye(2)
print("Matriks identitas 2x2:")
print(I)
A = np.array([
[2.0, 1.0],
[5.0, 3.0],
])
print(f"A @ I sama dengan A ? {np.array_equal(A @ I, A)}")
invers_A = np.linalg.inv(A)
print("Invers A:")
print(invers_A)
print("A @ invers(A):")
print(A @ invers_A)
print(f"A @ invers(A) mendekati I ? {np.allclose(A @ invers_A, I)}")
# matriks singular: baris keduanya dua kali baris pertama, invers tidak ada
B = np.array([
[1.0, 2.0],
[2.0, 4.0],
])
try:
np.linalg.inv(B)
except np.linalg.LinAlgError as e:
print(f"Invers B gagal dihitung: {e}")Matriks identitas 2x2:
[[1. 0.]
[0. 1.]]
A @ I sama dengan A ? True
Invers A:
[[ 3. -1.]
[-5. 2.]]
A @ invers(A):
[[ 1.00000000e+00 2.22044605e-16]
[-8.88178420e-16 1.00000000e+00]]
A @ invers(A) mendekati I ? True
Invers B gagal dihitung: Singular matrixHasil kali A @ invers(A) pada keluaran tidak persis sama dengan identitas, melainkan menyisakan angka sekecil pada posisi di luar diagonal. Sisa ini berasal dari pembulatan pecahan biner pada proses internal pustaka, bukan dari kesalahan rumus. Fungsi np.allclose membandingkan dengan toleransi sehingga mengembalikan True, dan kebiasaan inilah yang digunakan setiap kali kesamaan pecahan diperiksa dalam kode. Nilai invers yang dicetak juga sama dengan hasil rumus manual di atas, yaitu .
Kapan invers tidak ada#
Tidak semua matriks memiliki invers. Rumus di atas membagi dengan , sehingga invers tidak terdefinisi apabila nilai itu nol. Matriks semacam ini disebut singular (singular), dan cirinya yang paling mudah dilihat adalah adanya baris yang merupakan kelipatan baris lain, sebagaimana matriks pada contoh kode yang baris keduanya dua kali baris pertamanya. NumPy memberitahukan keadaan ini melalui exception LinAlgError dengan pesan Singular matrix, sebagaimana terlihat pada baris terakhir keluaran.
Secara geometris, matriks singular memadatkan bidang dua dimensi ke dalam satu garis, sehingga informasi arah hilang dan tidak ada transformasi yang mampu memulihkan keadaan semula. Kehilangan informasi inilah yang membuat pembatalan menjadi mustahil, bukan keterbatasan algoritma penghitungnya. Kode yang baik menyiapkan penanganan untuk keadaan ini alih-alih mengasumsikan setiap matriks pasti memiliki invers.
Di mana hal ini ditemui dalam kode#
Pembatalan transformasi dan pencarian invers matriks muncul pada kode yang perlu memulihkan keadaan semula atau membalik arah pemetaan. Bentuk yang paling akrab adalah tombol urungkan (undo) pada aplikasi gambar, sedangkan bentuk lanjutannya tersebar pada pustaka numerik dan pengolahan data. Beberapa contoh yang mudah dikenali adalah sebagai berikut:
- Fitur urungkan pada editor gambar membatalkan rotasi dan penskalaan sebelumnya melalui logika pembatalan yang ditulis sebagai perkalian dengan invers transformasi.
- Kalibrasi kamera menghitung invers matriks parameter untuk memetakan titik pada foto kembali ke koordinat aslinya.
- Pra-pemrosesan data pada machine learning kadang memutihkan data dengan mengalikannya dengan invers matriks kovarians, yaitu pembatalan korelasi antarfitur.
- Pustaka numerik menyarankan
np.linalg.solveuntuk sistem persamaan dan menyimpannp.linalg.invuntuk kasus yang memang memerlukan matriks balikannya berulang kali.
Kebalikan dari contoh pertama juga patut dicatat, yaitu permainan digital yang menyimpan riwayat transformasi sebagai matriks agar setiap langkah dapat dibatalkan satu per satu. Matriks identitas dan invers memberikan kerangka yang sama untuk kedua arah tersebut. Riwayat semacam itu pada praktiknya berupa tumpukan matriks yang teratasnya dibatalkan lebih dahulu.
Ringkasan#
- Matriks identitas tidak mengubah matriks maupun titik apa pun yang dikalikannya, sebagaimana bilangan 1 pada perkalian biasa.
- Invers membatalkan kerja karena , sebagaimana rotasi balik mengembalikan titik ke posisi semula.
- Invers hanya ada apabila , dan matriks dengan nilai nol disebut singular.
- NumPy menghitung invers dengan
np.linalg.inv, memeriksa kesamaannya dengannp.allclose, dan menyelesaikan sistem persamaan dengannp.linalg.solve.
Referensi#
- NumPy 2.1 documentation — NumPy project
— Dokumentasi
np.eye,np.linalg.inv,np.linalg.solve, dannp.allcloseyang digunakan pada contoh topik ini. - Mathematics for Machine Learning — Cambridge University Press — Bab aljabar linear membahas matriks invers beserta hubungannya dengan penyelesaian sistem linear.
- Khan Academy — Khan Academy — Materi invers matriks dua kali dua beserta syarat determinannya.