Modul 1 — Jembatan ke Jupyter
Modul 1 — Jembatan ke Jupyter
Padanan cerita, hitungan, dan kode (penjelasan tambahan)
| Bagian cerita | Langkah manual atau konsep | Perintah pada blok di bawah |
|---|---|---|
| Jumlah barang Ani dan Budi | Baris pembeli, kolom barang | Q.shape, Q[0, 1] |
| Dua pesanan yang sama | Jumlah atau kali dua setiap kotak | Q + Q, 2 * Q |
| Biaya dari jumlah dan harga | Jumlahkan biaya pensil dan buku | Q @ h |
| Harga dari pembayaran | Kurangi struk lalu cari harga buku | Qinv @ b |
| Laporan dibaca per barang | Tukar baris dan kolom | Q.T |
| Aturan paket dua kali | Jalankan aturan pada hasil sebelumnya | T @ T |
Keluaran Q @ h dibaca per pembeli: 7 ribu untuk Ani dan 5 ribu untuk Budi. Bandingkan dengan biaya per barang pada cerita.
Blok ini menghubungkan ukuran, unsur, operasi, pangkat, invers, transpos, dan sifat operasi pada contoh manual yang sama. Hasil biaya dalam ribu rupiah; hasil pesanan dalam satuan barang.
import numpy as np
Q = np.array([[2., 1.], [1., 1.]])
h = np.array([[2.], [3.]])
b = np.array([[7.], [5.]])
print(Q.shape, Q[0, 1]) # (2, 2), 1 buku Ani
print(Q + Q, 2 * Q) # [[4, 2], [2, 2]]
print(Q @ h) # [[7], [5]]
Qinv = np.linalg.inv(Q)
print(Qinv, Qinv @ b) # invers manual; harga 2 dan 3
assert np.allclose(Q @ Qinv, np.eye(2))
assert np.allclose(Qinv @ Q, np.eye(2))
assert np.allclose(Q.T, Q)
assert np.allclose(Q @ (h + h), Q @ h + Q @ h)
T = np.array([[1, 1], [0, 1]])
N = np.array([[0, 1], [0, 0]])
print(T @ T) # [[1, 2], [0, 1]]
assert np.array_equal(N @ N, np.zeros((2, 2)))