Dalam aljabar linear, matriks identitas memegang peran seperti angka 1 pada perkalian biasa: matriks apa pun yang dikalikan identitas tetap menghasilkan dirinya sendiri. Struktur ini muncul di banyak tempat — sebagai nilai awal iterasi, penanda “tidak ada transformasi”, atau komponen perhitungan invers. NumPy menyediakan np.eye dan np.identity untuk membuatnya, serta np.diag yang bekerja dua arah: membangun matriks diagonal dari vector, atau mengambil vector diagonal dari matriks.
Bab ini membahas:
- Membuat matriks identitas dengan
np.eyedannp.identity. - Perilaku ganda
np.diaguntuk membangun dan mengambil diagonal. - Menggunakan identitas pada perkalian matriks dengan operator
@.
eye dan identity: matriks identitas #
Fungsi np.eye(n) menghasilkan matriks n × n bernilai satu pada diagonal utama dan nol di luar diagonal. Fungsi np.identity(n) menghasilkan hal yang sama:
import numpy as np
i3 = np.eye(3)
print(i3)
print("identity sama dengan eye:", np.array_equal(np.identity(3), i3))Output yang Dihasilkan:
[[1. 0. 0.]
[0. 1. 0.]
[0. 0. 1.]]
identity sama dengan eye: True- Baris 3 (
np.eye(3)): matriks 3 × 3 dengan diagonal utama berisi satu; nilai lainnya nol. - Baris 5 (
np.array_equal(...)):np.identity(3)menghasilkan matriks yang persis sama, sehingga perbandingannya bernilaiTrue. Keduanya terpisah hanya karena alasan historis;np.eyelebih umum karena menerima parameter tambahan.
Perhatikan bahwa hasilnya bertipe float64 (angka 1. dengan tanda titik). np.eye juga menerima parameter k untuk menggeser posisi diagonal: np.eye(3, k=1) menaruh angka satu pada diagonal tepat di atas diagonal utama.
diag: dua arah dalam satu fungsi #
Fungsi np.diag menyesuaikan diri dengan masukannya. Diberikan vector 1-D, np.diag membangun matriks diagonal; diberikan matriks 2-D, fungsi yang sama justru mengambil diagonal utamanya:
import numpy as np
v = np.array([2, 7, 4])
d = np.diag(v)
print(d)
m = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(np.diag(m))Output yang Dihasilkan:
[[2 0 0]
[0 7 0]
[0 0 4]]
[1 5 9]- Baris 3-4 (
np.diag(v)): vector[2 7 4]menjadi diagonal utama; seluruh posisi lain diisi nol, menghasilkan matriks 3 × 3. - Baris 6 (
np.diag(m)): arah sebaliknya — fungsi membaca diagonal utama matriks dan mengembalikan array 1-D[1 5 9]. - Nilai kembaliannya berbeda bentuk: satu panggilan menghasilkan matriks, panggilan lainnya menghasilkan vector; NumPy menentukannya dari
ndimargumen.
Identitas pada perkalian matriks #
Operator @ mengalikan dua matriks. Mengalikan matriks apa pun dengan identitas berukuran cocok akan mengembalikan matriks aslinya:
import numpy as np
A = np.array([[3, 1], [2, 4]])
hasil = A @ np.eye(2)
print(hasil)
print("hasil sama dengan A:", np.array_equal(hasil, A))Output yang Dihasilkan:
[[3. 1.]
[2. 4.]]
hasil sama dengan A: True- Baris 4 (
A @ np.eye(2)): perkalian matriks 2 × 2 dengan identitas 2 × 2. - Baris 6 (
print(hasil)): nilainya sama denganA, tetapi tampil dengan tanda titik karena identitas bertipefloat64dan hasil perkalian mengikuti tipe yang lebih umum. - Baris 7 (
np.array_equal(hasil, A)): perbandingan nilai menghasilkanTrue—array_equalmembandingkan nilai, bukandtype.
Tabel berikut merangkum ketiga fungsi pada bab ini:
| Fungsi | Masukan | Keluaran |
|---|---|---|
np.eye(n) | ukuran n | matriks identitas n × n (float64, diagonal dapat digeser dengan k) |
np.identity(n) | ukuran n | matriks identitas n × n, setara np.eye(n) |
np.diag(v) | array 1-D | matriks diagonal dengan v sebagai diagonal utama |
np.diag(m) | array 2-D | array 1-D berisi diagonal utama m |