Modul 5 — Jembatan ke Jupyter
Modul 5 — Jembatan ke Jupyter
Padanan cerita, hitungan, dan kode (penjelasan tambahan)
| Bagian cerita | Langkah manual atau konsep | Perintah pada blok di bawah |
|---|---|---|
| Dua meter kanan, satu meter depan | Gabungkan arah dasar | w = 2*e1 + e2 |
| Dua arah berbeda atau berulang | Periksa rank kolom arah | matrix_rank(column_stack(...)) |
| Basis memakai satuan kanan dua meter | Cari banyak satuan basis | np.linalg.solve(B, w[:2]) |
| Setengah perjalanan | Kalikan perpindahan penuh dengan 0.5 | a + .5*w |
| Titik pada lantai | Gabungkan arah kanan dan depan | a + 2*e1 + 1*e2 |
w[:2] mengambil komponen kanan dan depan karena B ditulis untuk lantai dua dimensi. Komponen vertikalnya nol. Rank membantu membaca kebebasan arah; uji ruang bagian tetap memerlukan sifat penutupan.
import numpy as np
e1 = np.array([1., 0., 0.])
e2 = np.array([0., 1., 0.])
w = 2*e1 + e2 # [2, 1, 0]
assert np.allclose(w, [2, 1, 0])
assert np.linalg.matrix_rank(np.column_stack((e1, e2))) == 2
assert np.linalg.matrix_rank(np.column_stack((e1, 2*e1))) == 1
B = np.array([[2., 0.], [0., 1.]])
print(np.linalg.solve(B, w[:2])) # [1, 1] dalam basis (2e1, e2)
a = np.zeros(3)
print(a + .5*w) # [1, 0.5, 0], tengah ruas
print(a + 2*e1 + 1*e2) # [2, 1, 0], titik pada bidang