Modul 6 — Jembatan ke Jupyter

Modul 6 — Jembatan ke Jupyter

Kembali ke bagian induk

Padanan cerita, hitungan, dan kode (penjelasan tambahan)

Bagian cerita Langkah manual atau konsep Perintah pada blok di bawah
Panjang lurus gerak 3 dan 4 Akar dari jumlah kuadrat np.linalg.norm(u)
Petunjuk arah satu satuan Bagi komponen dengan panjang u/np.linalg.norm(u)
Sudut terhadap arah kanan Kosinus 3/5, lalu cari sudut np.arccos(...), np.degrees(theta)
Bayangan pada penggaris Ambil bagian sejajar arah acuan proj = ((u @ v)/(v @ v))*v
Sisa tegak lurus Kurangi proyeksi dan periksa hasil titik u-proj, (u-proj) @ v
Normal dan luas lantai Silang dua sisi lalu hitung panjang np.cross(a, b), np.linalg.norm(n)
Titik memenuhi garis dan bidang Periksa perbandingan koordinat dan komponen normal Pemeriksaan point dan normal @ point

np.arccos memberi radian dan np.degrees mengubahnya menjadi derajat. np.clip menjaga kosinus tetap pada selang -1 sampai 1 akibat pembulatan. Panjang hasil silang dua sisi berunit meter menyatakan luas dalam meter persegi.

import numpy as np
u = np.array([3., 4., 0.])
v = np.array([1., 0., 0.])
print(np.linalg.norm(u), u/np.linalg.norm(u))  # 5; [0.6, 0.8, 0]
theta = np.arccos(np.clip((u @ v)/(np.linalg.norm(u)*np.linalg.norm(v)), -1, 1))
print(np.degrees(theta))                      # sekitar 53.1301 derajat
proj = ((u @ v)/(v @ v))*v
print(proj, u-proj)                           # [3,0,0]; [0,4,0]
assert np.isclose((u-proj) @ v, 0)
a = np.array([3., 0., 0.])
b = np.array([0., 4., 0.])
n = np.cross(a, b)
print(n, np.linalg.norm(n))                   # [0,0,12]; 12 m^2
assert np.isclose(n @ a, 0) and np.isclose(n @ b, 0)
c = np.array([0., 0., 2.])
print(a @ np.cross(b, c))                     # 24 m^3, produk campuran
assert np.isclose(a @ np.cross(b, c), 24)
point = .5*u                                 # [1.5, 2, 0]
assert np.isclose(point[0]/3, point[1]/4) and point[2] == 0
normal = np.array([0., 0., 1.])
assert np.isclose(normal @ point, 0)           # garis terletak pada lantai

Hubungan materi