Pengalaman sehari-hari menunjukkan bahwa banyak persoalan kuantitatif akhirnya bermuara pada operasi matriks: membagi anggaran ke beberapa pos, mencari garis yang paling cocok dengan data penjualan, atau menghitung gaya pada sebuah konstruksi. Semua persoalan itu melibatkan variabel yang saling terkait, dan aljabar linear adalah bahasa untuk merapikan hubungan tersebut. NumPy menempatkan seluruh peralatannya dalam satu submodul bernama numpy.linalg.

Submodul ini bukan implementasi ulang yang ditulis dari nol di Python. numpy.linalg berdiri di atas pustaka LAPACK dan BLAS, pustaka numerik yang sudah dipakai dan diuji puluhan tahun di dunia sains dan rekayasa. Konsekuensinya, satu pemanggilan fungsi saja sudah mendapat manfaat algoritme yang cepat sekaligus terjaga stabilitasnya.

Bab ini memetakan tiga hal: fungsi-fungsi utama np.linalg, gaya pemanggilan yang benar, dan gambaran kapan alat-alat tersebut menjadi pilihan yang tepat.

Fungsi Utama numpy.linalg #

Tabel berikut merangkum delapan fungsi yang paling sering dipakai. Sepanjang section Linear Algebra, kita membahasnya satu per satu dengan contoh yang teruji.

FungsiKegunaan
np.linalg.solve(A, b)Menyelesaikan sistem persamaan linear Ax = b
np.linalg.inv(A)Menghitung inverse matriks persegi A
np.linalg.det(A)Menghitung determinant matriks persegi
np.linalg.eig(A)Menghitung eigenvalue dan eigenvector
np.linalg.svd(A)Memecah matriks menjadi tiga matriks (Singular Value Decomposition)
np.linalg.lstsq(A, b)Menyelesaikan sistem yang tidak punya solusi eksak; dasar regresi linear
np.linalg.norm(v)Menghitung panjang (magnitude) vektor, atau norm matriks
np.linalg.matrix_rank(A)Menghitung rank: banyaknya baris atau kolom yang saling bebas

Pemetaan ke bab berikutnya: solve dibahas di Penyelesaian Sistem Persamaan Linear, inv di Inverse Matriks, det di Determinant, eig di Eigenvalue dan Eigenvector, svd di Singular Value Decomposition, lstsq di Least Squares, dan matrix_rank di Matrix Rank. Fungsi norm sudah dibahas lebih dulu di bab Norm dan Magnitude pada section Operasi Matriks.

Satu Import untuk Semua #

Semua fungsi pada tabel di atas bisa langsung dipakai setelah import numpy as np. Submodul np.linalg ikut terpasang begitu NumPy diimpor, sehingga tidak ada baris import numpy.linalg yang wajib ditulis terpisah. Gaya from numpy.linalg import solve tetap sah, tetapi gaya yang paling umum adalah memanggil lengkap dengan awalannya supaya asal fungsi langsung terbaca saat kode ditinjau.

Contoh terkecil yang menunjukkan seluruh polanya: satu matriks koefisien, satu vektor konstanta, satu pemanggilan solve.

python
import numpy as np

A = np.array([[2.0, 1.0],
              [1.0, 3.0]])
b = np.array([5.0, 10.0])
x = np.linalg.solve(A, b)
print(x)

Output yang Dihasilkan:

text
[1. 3.]

Mari kita bedah baris demi baris:

  1. Baris 3-4 (A = np.array(...)): interpreter membuat array 2-D berbentuk (2, 2) sebagai matriks koefisien. Sistem yang direpresentasikan adalah 2x + y = 5 dan x + 3y = 10.
  2. Baris 5 (b = np.array(...)): array 1-D berbentuk (2,) menampung konstanta di ruas kanan tiap persamaan.
  3. Baris 6 (x = np.linalg.solve(A, b)): fungsi solve menyerahkan perhitungan ke rutin LAPACK yang memfaktorisasi A, lalu mengembalikan array float64 berbentuk (2,) berisi solusi.
  4. Baris 7 (print(x)): mencetak [1. 3.], artinya x = 1 dan y = 3. Cek cepat: 2(1) + 3 = 5 dan 1 + 3(3) = 10; kedua persamaan terpenuhi.

Kapan Linear Algebra Menjadi Alat yang Tepat #

Beberapa situasi yang hampir selalu berujung pada np.linalg:

  • Perencanaan anggaran: membagi anggaran ke beberapa pos dengan batasan jumlah dan proporsi tertentu membentuk sistem persamaan yang diselesaikan solve.
  • Regresi data: mencari garis yang paling mendekati titik-titik penjualan adalah persoalan least squares, yang seluruh mesinnya berupa operasi matriks.
  • Rekayasa: analisis gaya pada rangka, arus pada sirkuit, dan getaran mesin ditulis sebagai sistem persamaan atau persoalan eigenvalue.
  • Pengolahan data: memampatkan data dan mengukur banyaknya informasi bebas memakai svd dan matrix_rank.

Blok terakhir ini mencicipi tiga fungsi sekaligus pada matriks A yang sama dengan contoh di section Operasi Matriks, yaitu [[1, 2], [3, 4]]:

python
import numpy as np

A = np.array([[1.0, 2.0],
              [3.0, 4.0]])
v = np.array([3.0, 4.0])
print("det(A)  =", np.linalg.det(A))
print("norm(v) =", np.linalg.norm(v))
print("rank(A) =", np.linalg.matrix_rank(A))

Output yang Dihasilkan:

text
det(A)  = -2.0000000000000004
norm(v) = 5.0
rank(A) = 2

Tiga fungsi mengembalikan tiga jenis jawaban. det memberi satu bilangan float64, norm menghitung panjang vektor (tepat 5.0, sesuai teorema Pythagoras untuk vektor (3, 4)), dan matrix_rank memberi bilangan bulat 2 karena kedua baris A saling bebas. Perhatikan det(A) yang tercetak -2.0000000000000004, bukan -2 persis. Selisih 4e-16 itu adalah sisa pembulatan float64 dari perhitungan LAPACK, bukan salah hitung; bab Determinant membahasnya lebih jauh.