# Phân tích QR: tách ma trận thành hướng vuông góc và hệ số pha trộn


Sau khi học Gram-Schmidt, có một câu hỏi rất tự nhiên:

> Nếu các cột của một ma trận là những hướng độc lập nhưng chưa vuông góc, liệu ta có thể tách chúng thành một phần “hướng vuông góc sạch sẽ” và một phần “hệ số pha trộn” hay không?

Câu trả lời là có. Đó chính là **phân tích QR**.

## 1. Trực giác của QR

Hãy tưởng tượng bạn đang có một bộ trục xiên trong không gian. Bộ trục này vẫn dùng được, nhưng khó nhìn và khó tính. Bạn muốn thay nó bằng một bộ trục vuông góc hơn, dễ làm việc hơn, nhưng vẫn mô tả cùng không gian đó.

Phân tích QR làm đúng việc ấy.

Nếu ma trận $A$ có các cột độc lập tuyến tính, thì ta có thể viết
$$
A=QR,
$$
trong đó:

- $Q$ chứa các cột trực chuẩn, tức là các hướng mới sạch và vuông góc nhau;
- $R$ là ma trận tam giác trên, chứa thông tin về cách các cột cũ được pha từ các hướng mới ấy.

Nói ngắn gọn:

> $Q$ cho ta hình học đẹp hơn, còn $R$ giữ lại công thức để quay về dữ liệu ban đầu.

## 2. $Q$ và $R$ thực sự là gì?

### 2.1 Ma trận $Q$

Ma trận $Q$ có các cột trực chuẩn:
$$
Q=\begin{bmatrix}q_1 & q_2 & \cdots & q_n\end{bmatrix}.
$$

Điều này có nghĩa là:

- mỗi cột có độ dài bằng $1$;
- các cột vuông góc đôi một.

Do đó
$$
Q^TQ=I.
$$

### 2.2 Ma trận $R$

Ma trận $R$ là ma trận tam giác trên:
$$
R=
\begin{bmatrix}
r_{11} & r_{12} & \cdots & r_{1n}\\
0 & r_{22} & \cdots & r_{2n}\\
\vdots & \ddots & \ddots & \vdots\\
0 & \cdots & 0 & r_{nn}
\end{bmatrix}.
$$

Tam giác trên ở đây không phải là chuyện ngẫu nhiên. Nó phản ánh đúng logic của Gram-Schmidt:

- cột thứ nhất chỉ cần hướng thứ nhất;
- cột thứ hai chỉ cần hai hướng đầu;
- cột thứ ba chỉ cần ba hướng đầu;
- cứ như vậy.

## 3. QR đến từ Gram-Schmidt như thế nào?

Giả sử ma trận
$$
A=\begin{bmatrix}u_1 & u_2 & \cdots & u_n\end{bmatrix}
$$
có các cột độc lập tuyến tính.

Ta áp dụng Gram-Schmidt lên các cột $u_1,\dots,u_n$, thu được hệ trực chuẩn
$$
q_1,\dots,q_n.
$$

Khi đó, mỗi cột $u_j$ có thể viết thành tổ hợp tuyến tính của $q_1,\dots,q_j$:
$$
u_j=r_{1j}q_1+r_{2j}q_2+\cdots+r_{jj}q_j.
$$

Gom tất cả lại, ta được
$$
A=QR.
$$

Đây là nguồn gốc của phân tích QR.

## 4. Một ví dụ cụ thể

Xét ma trận
$$
A=
\begin{bmatrix}
1 & 1\\
1 & 0
\end{bmatrix}.
$$

Các cột của nó là
$$
u_1=\begin{bmatrix}1\\1\end{bmatrix},
\qquad
u_2=\begin{bmatrix}1\\0\end{bmatrix}.
$$

Ta sẽ phân tích $A$ thành $QR$.

### 4.1 Tìm cột đầu tiên của $Q$

Lấy
$$
q_1=\frac{u_1}{\|u_1\|}.
$$

Vì
$$
\|u_1\|=\sqrt{1^2+1^2}=\sqrt2,
$$
ta được
$$
q_1=\frac{1}{\sqrt2}\begin{bmatrix}1\\1\end{bmatrix}.
$$

Đồng thời
$$
r_{11}=\|u_1\|=\sqrt2.
$$

### 4.2 Tìm cột thứ hai của $Q$

Ta cần loại khỏi $u_2$ phần bóng của nó trên $q_1$:
$$
r_{12}=\langle u_2,q_1\rangle
=
\left\langle
\begin{bmatrix}1\\0\end{bmatrix},
\frac{1}{\sqrt2}\begin{bmatrix}1\\1\end{bmatrix}
\right\rangle
=\frac{1}{\sqrt2}.
$$

Do đó
$$
u_2-r_{12}q_1
=
\begin{bmatrix}1\\0\end{bmatrix}
-
\frac{1}{\sqrt2}\cdot
\frac{1}{\sqrt2}
\begin{bmatrix}1\\1\end{bmatrix}
=
\begin{bmatrix}1\\0\end{bmatrix}
-
\frac12\begin{bmatrix}1\\1\end{bmatrix}
=
\begin{bmatrix}\frac12\\-\frac12\end{bmatrix}.
$$

Chuẩn của vectơ này là
$$
\sqrt{\left(\frac12\right)^2+\left(-\frac12\right)^2}
=\frac{1}{\sqrt2}.
$$

Vì vậy
$$
q_2=
\frac{1}{1/\sqrt2}
\begin{bmatrix}\frac12\\-\frac12\end{bmatrix}
=
\frac{1}{\sqrt2}\begin{bmatrix}1\\-1\end{bmatrix}.
$$

Đồng thời
$$
r_{22}=\frac{1}{\sqrt2}.
$$

### 4.3 Kết quả

Ta thu được
$$
Q=
\begin{bmatrix}
\frac{1}{\sqrt2} & \frac{1}{\sqrt2}\\
\frac{1}{\sqrt2} & -\frac{1}{\sqrt2}
\end{bmatrix},
\qquad
R=
\begin{bmatrix}
\sqrt2 & \frac{1}{\sqrt2}\\
0 & \frac{1}{\sqrt2}
\end{bmatrix}.
$$

Và thật vậy,
$$
A=QR.
$$

## 5. Ý nghĩa hình học của ví dụ trên

Hai cột ban đầu của $A$ là
$$
u_1=\begin{bmatrix}1\\1\end{bmatrix},
\qquad
u_2=\begin{bmatrix}1\\0\end{bmatrix}.
$$

Chúng độc lập tuyến tính, nhưng không vuông góc. Phân tích QR thay chúng bằng hai hướng trực chuẩn
$$
q_1,\qquad q_2,
$$
rồi dùng $R$ để ghi lại cách dựng $u_1,u_2$ từ $q_1,q_2$.

Tức là:

- $Q$ làm cho hình học gọn hơn;
- $R$ lưu lại công thức để không mất thông tin.

## 6. Vì sao QR hữu ích?

### 6.1 Dễ làm việc với cơ sở trực chuẩn

Khi các cột trực chuẩn, việc tính toán trở nên rất sạch:

- chiếu dễ hơn;
- tọa độ dễ hơn;
- sai số số học cũng thường ổn hơn.

### 6.2 Bài toán bình phương tối thiểu

Trong rất nhiều bài toán dữ liệu, ta cần giải xấp xỉ hệ
$$
Ax\approx b
$$
khi hệ không có nghiệm đúng.

QR đặc biệt hữu ích vì nếu
$$
A=QR,
$$
thì bài toán trở thành
$$
QRx\approx b.
$$

Nhân hai vế với $Q^T$ cho ta
$$
Rx\approx Q^Tb,
$$
và vì $R$ tam giác trên, việc giải tiếp trở nên dễ hơn nhiều.

### 6.3 Tính trị riêng và giải tích số

QR còn xuất hiện trong các thuật toán trị riêng hiện đại. Dù lúc mới học chưa cần đi xa đến đó, bạn nên biết rằng đây không chỉ là một phép biến đổi hình thức, mà là một công cụ trung tâm của giải tích số.

## 7. Mối liên hệ với Gram-Schmidt

Nhiều người học Gram-Schmidt xong thấy nó như một thủ tục hơi máy móc. QR chính là lý do thủ tục ấy quan trọng.

Gram-Schmidt không chỉ tạo ra một hệ trực chuẩn đẹp mắt. Nó còn cho ta ngay cách tách một ma trận thành:

- phần hình học sạch sẽ $Q$;
- phần hệ số tam giác $R$.

Nói cách khác:

> Gram-Schmidt là động cơ, còn QR là sản phẩm hoàn chỉnh.

## 8. Kết luận

Phân tích QR là cách viết
$$
A=QR
$$
để tách một ma trận thành hai phần:

1. $Q$: các hướng trực chuẩn;
2. $R$: hệ số pha trộn theo dạng tam giác trên.

Về trực giác, QR cho phép ta thay một bộ hướng xiên bằng một bộ hướng vuông góc mà không làm mất thông tin. Đó là lý do nó đẹp cả về hình học lẫn mạnh về tính toán.

Nếu nhớ được câu “$Q$ là hình học sạch, $R$ là công thức pha trộn”, thì bạn đã nắm được tinh thần của phân tích QR.

## Đọc tiếp


- [Trực giao và trực chuẩn hoá Gram-Schmidt]({{< relref "orthogonality-and-gram-schmidt.md" >}}): vì QR sinh ra trực tiếp từ việc trực chuẩn hoá các cột của ma trận.
- [Hồi quy tuyến tính, ma trận thiết kế và OLS: từ dữ liệu đến bài toán bình phương tối thiểu](/posts/math/stats/linear-regression-design-matrix-and-ols/): để thấy vì sao QR xuất hiện rất tự nhiên khi giải bài toán least squares.
- [Chéo hoá trực giao: khi ma trận đối xứng để lộ các trục chính]({{< relref "orthogonal-diagonalization.md" >}}): cả hai bài đều xoay quanh việc thay một hệ trục xiên bằng một hệ trục trực chuẩn.
- [Phép biến đổi tuyến tính, ma trận biểu diễn và đổi cơ sở]({{< relref "linear-transformations-matrix-representation-and-change-of-basis.md" >}}): để quay lại bức tranh lớn hơn về ma trận như cách ghi lại một phép biến đổi tuyến tính.

