Sistem linear mengelompokkan beberapa persamaan linear menjadi satu objek tunggal yang dapat ditulis sebagai perkalian matriks dan vektor. Topik ini membahas bentuk , dua cara membacanya secara geometris, dan cara memverifikasi kandidat solusi menggunakan NumPy. Seluruh contoh menggunakan sistem dua variabel dengan angka yang dapat dihitung ulang dengan tangan. Prosedur pencarian solusinya sendiri dibahas pada topik tentang penyelesaian sistem.
Bentuk matriks A x = b#
Sistem dua persamaan dua variabel dapat dituliskan satu per satu, sebagaimana contoh berikut.
Sistem yang sama dirapatkan menjadi satu persamaan matriks dengan menyusun koefisien menjadi matriks , variabel menjadi vektor , dan ruas kanan menjadi vektor .
Susunan matriks tersebut menyimpan dua jenis informasi sekaligus. Setiap baris mengumpulkan koefisien satu persamaan, sedangkan setiap kolom mengumpulkan koefisien satu variabel pada semua persamaan. Kolom pertama menyatakan sumbangan variabel terhadap kedua persamaan, yaitu satu pada persamaan pertama dan dua pada persamaan kedua. Perkalian menjumlahkan campuran kolom tersebut dan menghasilkan vektor yang dapat dibandingkan langsung dengan .
Dua cara membaca sistem yang sama#
Persamaan matriks yang sama memiliki dua pembacaan geometris yang setara. Pembacaan baris memandang setiap persamaan sebagai garis pada bidang, sehingga solusi sistem adalah titik yang dilalui semua garis tersebut sekaligus. Pembacaan ini cocok untuk sistem kecil karena garisnya masih dapat digambar.
Pembacaan kolom memandang sebagai permintaan kombinasi linear, yaitu campuran berbobot dari kolom-kolom . Vektor harus tercapai dengan mengatur berapa kali setiap kolom diambil, dan vektor adalah daftar banyaknya pengambilan itu. Untuk contoh di atas, sistem meminta pasangan yang memenuhi
Pembacaan kolom inilah yang mendasari cara komputer bekerja karena perkalian matriks-vektor dihitung sebagai jumlah berbobot kolom. Kedua pembacaan menghasilkan jawaban yang sama, tetapi pembacaan kolom tetap bermakna pada dimensi yang tidak dapat digambar lagi.
Geometri kombinasi kolom#
Gambar berikut memperlihatkan pembacaan kolom pada sistem kecil dengan kolom dan . Angkanya sengaja dibuat kecil agar panahnya mudah digambar. Vektor dilukiskan sebagai lompatan pertama, kemudian sebagai lompatan kedua, dan ujung lompatan kedua tiba di titik . Solusi sistemnya adalah pasangan , yaitu banyaknya pengambilan masing-masing kolom.
Perhitungan yang sama dijalankan oleh NumPy pada kode berikut.
import numpy as np
a1 = np.array([2.0, 1.0])
a2 = np.array([-1.0, 1.0])
x = np.array([2.0, 3.0])
b = x[0] * a1 + x[1] * a2
print("2*a1 + 3*a2 =", b)2*a1 + 3*a2 = [1. 5.]Keluaran [1. 5.] adalah vektor pada gambar, sehingga perhitungan dan gambar saling menguatkan. Setiap perkalian skalar-kolom memanjangkan kolomnya, dan penjumlahannya menghubungkan ujung lompatan pertama dengan ujung lompatan kedua. Pola inilah yang dibaca komputer ketika mengalikan dengan , hanya saja jumlah kolomnya dapat mencapai ribuan.
Memverifikasi kandidat solusi#
Memeriksa kandidat solusi tidak memerlukan prosedur penyelesaian apa pun. Kandidat cukup dikembalikan ke persamaan, yaitu dihitung lalu dibandingkan dengan . Berkas berikut memverifikasi pasangan untuk sistem dan .
import numpy as np
# sistem: x + y = 12 dan 2x + 5y = 45
A = np.array([[1.0, 1.0],
[2.0, 5.0]])
b = np.array([12.0, 45.0])
x = np.array([5.0, 7.0])
print("A @ x :", A @ x)
print("b :", b)
print("cocok :", np.allclose(A @ x, b))A @ x : [12. 45.]
b : [12. 45.]
cocok : TrueHasil identik dengan , sehingga pasangan benar merupakan solusi. Fungsi np.allclose yang mengembalikan True bekerja dengan toleransi, bukan dengan kesamaan persis, karena aritmetika pecahan biner sering meninggalkan sisa sangat kecil pada hasil perkalian matriks. Pemeriksaan yang lebih umum menghitung sisa , yaitu selisih ruas kiri terhadap ruas kanan. Sisa yang seluruh entrinya nol menyatakan setiap persamaan terpenuhi, dan pola ini berlaku untuk sistem berukuran apa pun karena vektor sisanya selalu dapat dihitung.
Tiga kemungkinan banyaknya solusi#
Banyaknya solusi sebuah sistem ditentukan oleh kedudukan kolom-kolom terhadap vektor . Tabel berikut merangkum ketiga kemungkinannya untuk matriks persegi dua kali dua.
| Kedudukan kolom | Bentuk geometrisnya | Banyaknya solusi |
|---|---|---|
| Tidak sejajar | dua garis berpotongan | tepat satu |
| Sejajar, di luar garisnya | dua garis sejajar | tidak ada |
| Sejajar, pada garis yang sama | dua garis berimpit | tak hingga |
Kasus pertama terjadi ketika kedua kolom tidak sejajar, sehingga kombinasi linear kedua kolom mengisi seluruh bidang dan selalu tercapai. Dua kasus lainnya terjadi ketika kolom-kolom sejajar, sehingga kombinasi linear hanya menyapu satu garis. Bila berada di luar garis itu, tidak ada campuran yang cocok, sedangkan bila terletak pada garis itu, tak hingga banyaknya pasangan menghasilkan titik yang sama. Sifat yang sama berlaku pada dimensi lebih tinggi dengan mengganti garis menjadi bidang.
Di mana hal ini ditemui dalam kode#
Bentuk muncul setiap kali beberapa kendala linear dipenuhi bersama. Pencampuran warna pada layar menyusun intensitas merah, hijau, dan biru sebagai tiga persamaan yang solusinya adalah dosis tiap komponen. Perencanaan jadwal piket menyusun total banyaknya tugas dan total jam kerja sebagai dua persamaan, dengan banyaknya tugas ringan dan tugas berat sebagai variabelnya. Pada kode nyata, pola pemeriksaan seperti np.allclose(A @ x, b) digunakan untuk menguji apakah keluaran sebuah pustaka benar-benar memenuhi persamaannya, misalnya pada unit test fungsi penyelesaian sistem. Pembacaan kolom juga menjadi dasar notasi pada dokumentasi regresi linear, yang menulis seluruh data sebagai dan menyelesaikannya dengan perkalian matriks yang sama.
Ringkasan#
- Bentuk merapatkan sistem persamaan linear menjadi satu perkalian matriks-vektor, dengan baris sebagai persamaan dan kolom sebagai variabel.
- Pembacaan baris menampilkannya sebagai perpotongan garis, sedangkan pembacaan kolom menampilkannya sebagai pencarian kombinasi linear kolom yang mencapai .
- Kandidat solusi diverifikasi dengan menghitung dan membandingkannya dengan menggunakan
np.allclose. - Banyaknya solusi ditentukan oleh kedudukan kolom-kolom , yaitu tepat satu, tidak ada, atau tak hingga.
Referensi#
- NumPy 2.1 documentation — NumPy
— Dokumentasi operator
@,np.allclose, dan operasi array lain yang digunakan pada contoh topik ini. - Mathematics for Machine Learning — Cambridge University Press — Buku terbuka yang memperkenalkan sistem linear dan kombinasi linear sebagai fondasi aljabar linear untuk machine learning.
- Khan Academy — Khan Academy — Materi kombinasi linear vektor dan sistem persamaan linear dengan penjelasan visual langkah demi langkah.