📐 Tích vô hướng và góc giữa hai vector

By Better Wise

Mở màn: phép nhân biến hai vector thành một con số

Bài trước ta đã cộng hai vector và nhân vector với một số, cả hai phép đó đều trả về vector. Bài này có một phép khác hẳn: tích vô hướng (dot product) nhận vào hai vector nhưng chỉ trả về một con số duy nhất. Con số đó là chìa khóa để đo góc, tức là đo xem hai vector cùng hướng đến mức nào. Trên bảng, tôi hay vẽ hai mũi tên rồi hỏi: "Chúng lệch nhau bao nhiêu độ?". Tích vô hướng chính là công cụ trả lời câu hỏi đó.

Sau bài này, bạn có thể:

  • Viết được hai công thức của tích vô hướng: theo tọa độ và theo độ dài cùng góc.
  • Tính tích vô hướng của một cặp vector bất kỳ.
  • Dùng tích vô hướng để suy ra góc giữa hai vector qua cos.
  • Đọc dấu của tích vô hướng để biết hai vector tạo góc nhọn, vuông góc hay góc tù.
  • Giải thích vì sao phải chia cho độ dài khi so sánh "mức độ cùng hướng".

Hai cách viết của cùng một tích vô hướng

Cách thứ nhất là cách hình học, nhìn bằng mắt: chiếu vector $\vec{a}$ lên phương của $\vec{b}$, rồi nhân độ dài hình chiếu với độ dài $\vec{b}$.

$$ \vec{a} \cdot \vec{b} = |\vec{a}|,|\vec{b}|\cos\theta $$

Cách thứ hai là cách tọa độ, dùng khi bạn có số trong tay. Với $\vec{a} = (a_1, a_2)$ và $\vec{b} = (b_1, b_2)$:

$$ \vec{a} \cdot \vec{b} = a_1b_1 + a_2b_2 $$

Ví dụ: $\vec{a} = (3, 1)$ và $\vec{b} = (2, 4)$ thì $\vec{a} \cdot \vec{b} = 3\cdot2 + 1\cdot4 = 10$.

Vài tính chất dùng hoài: phép này giao hoán ($\vec{a}\cdot\vec{b} = \vec{b}\cdot\vec{a}$), phân phối với phép cộng, và đặc biệt $\vec{a}\cdot\vec{a} = |\vec{a}|^2$, tức bình phương độ dài.

Luyện ngay 1. Tính $(1, 2) \cdot (3, -1)$ và $(2, -5) \cdot (4, 0)$.

Xem đáp án

$(1)(3) + (2)(-1) = 3 - 2 = 1$. Và $(2)(4) + (-5)(0) = 8$.

Lưu ý cặp thứ hai: chỉ cần một tọa độ bằng 0 là một số hạng biến mất, nên kết quả dễ tính hơn bạn tưởng.

Từ tích vô hướng đến góc

Từ công thức hình học, chỉ cần chia hai vế cho tích độ dài là góc lộ ra:

$$ \cos\theta = \frac{\vec{a} \cdot \vec{b}}{|\vec{a}|,|\vec{b}|} $$

Quy trình bấm máy:

  1. Tính tích vô hướng: a·b = a1b1 + a2b2
  2. Tính độ dài: |a| = căn(a1² + a2²), tương tự cho |b|
  3. Chia: cos góc = (a·b) chia cho (|a| nhân |b|)
  4. Bấm arccos (cos⁻¹) để đổi ra góc, nhớ xem máy đang ở độ hay radian

Làm trọn vẹn với $\vec{a} = (3, 1)$, $\vec{b} = (2, 4)$: tích vô hướng là 10, $|\vec{a}| = \sqrt{10}$, $|\vec{b}| = \sqrt{20}$, nên $\cos\theta = 10/\sqrt{200} = 1/\sqrt{2}$. Vậy $\theta = 45°$. Đúng bằng góc nhìn thấy khi vẽ hai mũi tên ấy trên giấy kẻ ô.

Luyện ngay 2. Tính góc giữa $\vec{a} = (2, 0)$ và $\vec{b} = (1, \sqrt{3})$.

Xem đáp án

Tích vô hướng: $2\cdot1 + 0\cdot\sqrt{3} = 2$. Độ dài: $|\vec{a}| = 2$, $|\vec{b}| = \sqrt{1 + 3} = 2$. Vậy $\cos\theta = 2/4 = 0.5$, suy ra $\theta = 60°$.

Dấu của tích vô hướng nói gì về hướng

Bạn không cần tính góc vẫn đoán được hướng, chỉ cần nhìn dấu.

flowchart TD
    A["🧮<br/>Tính a·b"] --> B{"Dấu của a·b"}
    B -->|"dương"| C["🔺<br/>Góc nhọn, dưới 90°"]
    B -->|"bằng 0"| D["📐<br/>Vuông góc, đúng 90°"]
    B -->|"âm"| E["🔻<br/>Góc tù, trên 90°"]

Trường hợp đẹp nhất là $\vec{a}\cdot\vec{b} = 0$: hai vector vuông góc. Đây là cách kiểm tra vuông góc nhanh nhất trong toàn bộ môn học, nhanh hơn nhiều so với vẽ hình. Ngược lại, nếu hai vector cùng hướng thì $\cos\theta = 1$ và tích vô hướng đạt giá trị lớn nhất $|\vec{a}||\vec{b}|$; ngược hướng thì $\cos\theta = -1$ và tích đạt giá trị nhỏ nhất $-|\vec{a}||\vec{b}|$.

Điền nhanh để tự kiểm tra:

Tích vô hướng của hai vector vuông góc bằng _____. Công thức tính cos góc giữa hai vector là _____. Nếu tích vô hướng âm thì góc giữa hai vector là góc _____. Bình phương độ dài vector bằng _____. Góc giữa hai vector cùng hướng bằng _____.

Luyện ngay 3. Không tính góc, cho biết dấu tích vô hướng của $(1, 1)$ với $(-1, 1)$, và của $(2, 3)$ với $(-4, 1)$.

Xem đáp án

Cặp đầu: $1\cdot(-1) + 1\cdot1 = 0$, vuông góc. Cặp sau: $2\cdot(-4) + 3\cdot1 = -5$, âm nên góc tù.

Một ví dụ thực tế: hai vector sở thích

Giả sử mỗi người dùng được biểu diễn bằng một vector sở thích phim: bạn A là $(3, 1)$, bạn B là $(6, 2)$. Tích vô hướng là $18 + 2 = 20$, khá lớn. Nhưng bạn C có vector $(3, 0)$ cũng cho tích vô hướng $18 + 0 = 18$, gần bằng. Nếu chỉ nhìn tích vô hướng, ta dễ kết luận A giống C hơn giống B, trong khi thực ra A và B cùng hướng tuyệt đối ($0°$), còn A và C lệch khoảng $18.4°$. Lý do: tích vô hướng bị độ dài vector thổi phồng. Cách sửa là chia cho tích độ dài, tức dùng $\cos\theta$, và đó chính là cosine similarity mà Module 3 sẽ khai thác.

Mẹo tính nhanh và lỗi hay gặp

  • Đừng nhầm tích vô hướng với góc. Bản thân con số 10 chưa nói gì, phải chia cho $|\vec{a}||\vec{b}|$ mới ra góc.
  • Tích vô hướng bằng 0 nghĩa là vuông góc, không phải song song. Song song cùng chiều cho tích bằng $|\vec{a}||\vec{b}|$.
  • Kết quả $\cos\theta$ phải nằm trong $[-1, 1]$. Ra ngoài khoảng này là bạn tính sai độ dài hoặc bấm nhầm dấu.
  • Đừng lấy trị tuyệt đối của $\cos$ cho "đẹp". Dấu âm là thông tin thật: góc tù.
  • Vector zero không có góc xác định, vì mẫu số $|\vec{a}||\vec{b}|$ bằng 0.
  • Kiểm tra máy tính đang ở độ hay radian trước khi bấm arccos. Cùng một $\cos$ mà ra $0.785$ hay $45$ là hai chế độ khác nhau.

Chốt lại và bước tiếp theo

Ba điều cần mang theo: tích vô hướng có hai công thức, tọa độ và hình học, và chúng luôn cho cùng kết quả; chia tích vô hướng cho tích hai độ dài thì được $\cos\theta$, từ đó ra góc; dấu của tích vô hướng đọc được hướng ngay lập tức, dương là nhọn, không là vuông góc, âm là tù.

Thẻ ôn tập nhanh

Front: Tích vô hướng theo tọa độ được tính thế nào? Back: a1b1 + a2b2, cộng từng cặp tọa độ nhân với nhau.

Front: Công thức hình học của tích vô hướng là gì? Back: a·b = |a| |b| cos(góc giữa hai vector).

Front: Tích vô hướng trả về vector hay một con số? Back: Một số vô hướng (scalar), không phải vector.

Front: Nếu a·b = 0 thì kết luận gì về hai vector? Back: Chúng vuông góc (trừ khi một vector là vector zero).

Front: Công thức tính cos góc giữa hai vector? Back: cos(góc) = (a·b) chia cho (|a| nhân |b|).

Front: Tích vô hướng âm cho biết gì về góc? Back: Góc tù, lớn hơn 90 độ.

Front: Độ dài vector (a1, a2) tính thế nào? Back: Căn bậc hai của (a1² + a2²).

Front: Góc giữa hai vector cùng hướng bằng bao nhiêu? Back: 0 độ, cos bằng 1, tích vô hướng đạt |a| |b|.

Front: Góc giữa hai vector ngược hướng bằng bao nhiêu? Back: 180 độ, cos bằng -1, tích vô hướng đạt -|a| |b|.

Front: a·a bằng gì? Back: Bình phương độ dài của a, tức |a|².

Front: Tích vô hướng có giao hoán không? Back: Có, a·b luôn bằng b·a.

Front: Vì sao không xác định được góc khi có vector zero? Back: Mẫu số |a| |b| bằng 0, phép chia không xác định.

Front: Vì sao so sánh mức độ cùng hướng phải chia cho độ dài? Back: Vì tích vô hướng bị độ dài vector thổi phồng; chia đi thì chỉ còn hướng.

Bài tới là checkpoint của Module 1: bạn sẽ gặp bài tập tổng hợp trộn biểu diễn vector, cộng, nhân vô hướng và chính tích vô hướng ở đây, nên hãy tự làm lại ba bài luyện ngay phía trên trước khi sang đó.