Sistem Linear

Bentuk Ax = b dan interpretasi geometrisnya.

Daftar isi

Sistem linear mengelompokkan beberapa persamaan linear menjadi satu objek tunggal yang dapat ditulis sebagai perkalian matriks dan vektor. Topik ini membahas bentuk Ax=bA x = b, 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.

x+y=122x+5y=45 \begin{aligned} x + y &= 12 \\ 2x + 5y &= 45 \end{aligned}

Sistem yang sama dirapatkan menjadi satu persamaan matriks Ax=bA x = b dengan menyusun koefisien menjadi matriks AA, variabel menjadi vektor xx, dan ruas kanan menjadi vektor bb.

(1125)(xy)=(1245) \begin{aligned} \begin{pmatrix} 1 & 1 \\ 2 & 5 \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} &= \begin{pmatrix} 12 \\ 45 \end{pmatrix} \end{aligned}

Susunan matriks tersebut menyimpan dua jenis informasi sekaligus. Setiap baris AA mengumpulkan koefisien satu persamaan, sedangkan setiap kolom AA mengumpulkan koefisien satu variabel pada semua persamaan. Kolom pertama (1,2)(1, 2) menyatakan sumbangan variabel xx terhadap kedua persamaan, yaitu satu pada persamaan pertama dan dua pada persamaan kedua. Perkalian AxA x menjumlahkan campuran kolom tersebut dan menghasilkan vektor yang dapat dibandingkan langsung dengan bb.

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 Ax=bA x = b sebagai permintaan kombinasi linear, yaitu campuran berbobot dari kolom-kolom AA. Vektor bb harus tercapai dengan mengatur berapa kali setiap kolom diambil, dan vektor xx adalah daftar banyaknya pengambilan itu. Untuk contoh di atas, sistem meminta pasangan (x,y)(x, y) yang memenuhi

x(12)+y(15)=(1245). \begin{aligned} x \begin{pmatrix} 1 \\ 2 \end{pmatrix} + y \begin{pmatrix} 1 \\ 5 \end{pmatrix} &= \begin{pmatrix} 12 \\ 45 \end{pmatrix}. \end{aligned}

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 a1=(2,1)a_1 = (2, 1) dan a2=(−1,1)a_2 = (-1, 1). Angkanya sengaja dibuat kecil agar panahnya mudah digambar. Vektor 2a12a_1 dilukiskan sebagai lompatan pertama, kemudian 3a23a_2 sebagai lompatan kedua, dan ujung lompatan kedua tiba di titik b=(1,5)b = (1, 5). Solusi sistemnya adalah pasangan (2,3)(2, 3), yaitu banyaknya pengambilan masing-masing kolom.

Kombinasi linear 2a1 + 3a2 mencapai b pada bidang

Perhitungan yang sama dijalankan oleh NumPy pada kode berikut.

python Contoh: menghitung kombinasi linear kolom
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)
text Keluaran
2*a1 + 3*a2 = [1. 5.]

Keluaran [1. 5.] adalah vektor bb 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 AA dengan xx, 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 AxA x dihitung lalu dibandingkan dengan bb. Berkas berikut memverifikasi pasangan (5,7)(5, 7) untuk sistem x+y=12x + y = 12 dan 2x+5y=452x + 5y = 45.

python verifikasi_solusi.py
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))
text Keluaran
A @ x : [12. 45.]
b     : [12. 45.]
cocok : True

Hasil AxA x identik dengan bb, sehingga pasangan (5,7)(5, 7) 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 Ax−bA x - b, 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 Ax=bA x = b ditentukan oleh kedudukan kolom-kolom AA terhadap vektor bb. Tabel berikut merangkum ketiga kemungkinannya untuk matriks persegi dua kali dua.

Kedudukan kolom AABentuk geometrisnyaBanyaknya solusi
Tidak sejajardua garis berpotongantepat satu
Sejajar, bb di luar garisnyadua garis sejajartidak ada
Sejajar, bb pada garis yang samadua garis berimpittak hingga

Kasus pertama terjadi ketika kedua kolom tidak sejajar, sehingga kombinasi linear kedua kolom mengisi seluruh bidang dan bb selalu tercapai. Dua kasus lainnya terjadi ketika kolom-kolom sejajar, sehingga kombinasi linear hanya menyapu satu garis. Bila bb berada di luar garis itu, tidak ada campuran yang cocok, sedangkan bila bb terletak pada garis itu, tak hingga banyaknya pasangan (x,y)(x, y) 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 Ax=bA x = b 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 Xβ=yX \beta = y dan menyelesaikannya dengan perkalian matriks yang sama.

Ringkasan#

  • Bentuk Ax=bA x = b merapatkan sistem persamaan linear menjadi satu perkalian matriks-vektor, dengan baris AA sebagai persamaan dan kolom AA sebagai variabel.
  • Pembacaan baris menampilkannya sebagai perpotongan garis, sedangkan pembacaan kolom menampilkannya sebagai pencarian kombinasi linear kolom yang mencapai bb.
  • Kandidat solusi diverifikasi dengan menghitung AxA x dan membandingkannya dengan bb menggunakan np.allclose.
  • Banyaknya solusi ditentukan oleh kedudukan kolom-kolom AA, yaitu tepat satu, tidak ada, atau tak hingga.

Referensi#