Modul 2 — Jembatan ke Jupyter
Modul 2 — Jembatan ke Jupyter
Padanan cerita, hitungan, dan kode (penjelasan tambahan)
| Bagian cerita | Langkah manual atau konsep | Perintah pada blok di bawah |
|---|---|---|
| Dahulukan struk Budi | Tukar baris | M[[0, 1]] = M[[1, 0]] |
| Hilangkan pensil pada baris bawah | Kurangi dua kali baris atas | M[1] = M[1] - 2 * M[0] |
| Baca harga buku langsung | Balik tanda baris kedua | M[1] = -M[1] |
| Baca harga pensil langsung | Kurangi baris buku dari baris atas | M[0] = M[0] - M[1] |
| Dua kartu operasi | Tukar dahulu, eliminasi kemudian | E2 @ E1 @ Q |
| Banyak informasi independen | Hitung banyak pivot | np.linalg.matrix_rank(Q) |
Tiga kolom M berarti pensil, buku, dan pembayaran. Setiap OBE mengubah seluruh baris termasuk pembayaran. Hasil akhir memberi harga 2 dan 3 ribu.
Kode mengikuti keempat langkah manual di atas. Salin baris jika ingin menyimpan keadaan lama; pembaruan baris berikut menggunakan keadaan matriks saat itu.
import numpy as np
M = np.array([[2., 1., 7.], [1., 1., 5.]])
M[[0, 1]] = M[[1, 0]] # tukar catatan
M[1] = M[1] - 2 * M[0] # [0, -1, -3]
print(M)
M[1] = -M[1]
M[0] = M[0] - M[1]
print(M) # [[1, 0, 2], [0, 1, 3]]
E1 = np.array([[0., 1.], [1., 0.]])
E2 = np.array([[1., 0.], [-2., 1.]])
Q = np.array([[2., 1.], [1., 1.]])
print(E2 @ E1 @ Q) # [[1, 1], [0, -1]]
assert np.linalg.matrix_rank(Q) == 2