Modul 3 — Jembatan ke Jupyter
Modul 3 — Jembatan ke Jupyter
Padanan cerita, hitungan, dan kode (penjelasan tambahan)
| Bagian cerita | Langkah manual atau konsep | Perintah pada blok di bawah |
|---|---|---|
| Harga memenuhi dua struk | Selesaikan koefisien dan pembayaran | np.linalg.solve(A, b) |
| Memeriksa harga | Masukkan harga ke dua struk | A @ x |
| Catatan berulang atau bertentangan | Bandingkan rank koefisien dan lengkap | matrix_rank(R) dan rank column_stack((R, rhs)) |
| Harga buku bebas dipilih | Pilih t lalu tentukan harga pensil | [(7-t)/2, t] |
| Harga berubah, total tetap | Perubahan naik 1 dan turun 2 | R @ np.array([1., -2.]) |
Variabel kode x menyimpan seluruh pasangan harga; x[0] harga pensil dan x[1] harga buku. Ini berbeda dari huruf x pada cerita yang hanya menamai harga pensil.
Blok menguji kasus unik, catatan berulang, dan catatan bertentangan dengan angka yang telah dibahas.
import numpy as np
A = np.array([[2., 1.], [1., 1.]])
b = np.array([7., 5.])
x = np.linalg.solve(A, b)
print(x) # [2, 3], ribu rupiah
assert np.allclose(A @ x, b)
R = np.array([[2., 1.], [4., 2.]])
for rhs in (np.array([7., 14.]), np.array([7., 15.])):
print(np.linalg.matrix_rank(R),
np.linalg.matrix_rank(np.column_stack((R, rhs))))
# Pasangan rank: (1, 1) tak hingga; (1, 2) tidak ada
t = 3.
assert np.allclose(R @ np.array([(7-t)/2, t]), [7, 14])
assert np.allclose(R @ np.array([1., -2.]), [0, 0])