Hạt nhân (đại số tuyến tính)

Trong toán học, **hạt nhân** (*kernel*) của một ánh xạ tuyến tính, còn gọi là **hạch** hay **không gian vô hiệu** (*null space*), là không gian vectơ con của nguồn được ánh xạ tới vectơ không. Tức là, cho một ánh xạ tuyến tính  giữa hai không gian vectơ  và , hạt nhân của  được định nghĩa là không gian vectơ con gồm các phần tử  trong  sao cho , trong đó  là vectơ không trong , hay dưới dạng ký hiệu:

: \ker(L) = \left\{ \mathbf{v} \in V \mid L(\mathbf{v})=\mathbf{0} \right\} .

## Các tính chất

Hạt nhân của L là không gian con của tập nguồnV . Với ánh xạ L: V \to W , hai phần tử của V có cùng ảnh trong W khi và chỉ khi hiệu của chúng thuộc hạt nhân của L:

: L(\mathbf{v}_1) = L(\mathbf{v}_2) \iff L(\mathbf{v}_1-\mathbf{v}_2)=\mathbf{0}. 

Từ đó, ảnh của  là đẳng cấu với không gian thương của  trên hạt nhân:

: \operatorname{im}(L) \cong V / \ker(L).

Trong trường hợp  là không gian hữu hạn chiều, điều này dẫn đến định lý về hạng và số vô hiệu (*rank–nullity theorem*):

: \dim(\ker L) + \dim(\operatorname{im} L) = \dim(V).

trong đó, hạng hay *rank* chính là số chiều của ảnh của , còn số vô hiệu hay *nullity* là số chiều của hạt nhân của .

Nếu  là một không gian tích trong, không gian thương  có thể được xác định là phần bù trực giao của  trong . Đây là sự tổng quát hóa cho toán tử tuyến tính của không gian hàng, hay đối ảnh của một ma trận.

## Áp dụng với mô đun
Khái niệm hạt nhân cũng có thể áp dụng được đối với các đồng cấu mô đun, là các tổng quát hóa của không gian vectơ khi các vô hướng là phần tử của một vành, thay vì là một trường. Tập nguồn của ánh xạ là một mô đun, và hạt nhân tạo nên một mô đun con. Ở đây, khái niệm về hạng và số vô hiệu không nhất thiết áp dụng được.

## Trong giải tích hàm
Nếu *V* và *W* là các không gian vectơ tô pô sao cho *W* hữu hạn chiều thì một toán tử tuyến tính *L*:&nbsp;*V*&nbsp;→&nbsp;*W* là liên tục khi và chỉ khi hạt nhân của *L* là một không gian con đóng của *V*.

## Biểu diễn dưới dạng phép nhân ma trận
Xét một biến đổi tuyến tính được biểu diễn bởi một ma trận *A* cỡ *m* × *n* với các hệ số trên một trường *K* (thường là \mathbb{R} hoặc \mathbb{C}), tức là tác động lên các vectơ cột *x* với *n* thành phần trên *K*. Hạt nhân của ánh xạ này là tập hợp các nghiệm của phương trình , với **0** được hiểu là vectơ không. Số chiều của hạt nhân của *A* được gọi là **số vô hiệu** của *A*. Dạng thức hóa như sau:

: \operatorname{N}(A)=\operatorname{Null}(A)=\operatorname{ker}(A) = \left\{ \mathbf{x}\in K^n | A\mathbf{x} = \mathbf{0} \right\}.

Phương trình ma trận trên là tương đương với hệ phương trình tuyến tính thuần nhất sau:

: A\mathbf{x}=\mathbf{0} \;\;\Leftrightarrow\;\;
\begin{alignat}{7}
a_{11} x_1 &&\; + \;&& a_{12} x_2 &&\; + \;\cdots\; + \;&& a_{1n} x_n &&\; = \;&&& 0      \\
a_{21} x_1 &&\; + \;&& a_{22} x_2 &&\; + \;\cdots\; + \;&& a_{2n} x_n &&\; = \;&&& 0      \\
\vdots\;\;\; &&     && \vdots\;\;\; &&              && \vdots\;\;\; &&     &&& \;\vdots \\
a_{m1} x_1 &&\; + \;&& a_{m2} x_2 &&\; + \;\cdots\; + \;&& a_{mn} x_n &&\; = \;&&& 0\text{.}      \\
\end{alignat}

Vì thế hạt nhân của *A* là chính là tập nghiệm của hệ phương trình tuyến tính thuần nhất trên.

### Các tính chất của không gian con
Hạt nhân của một ma trận *A* cỡ  trên một trường *K* là không gian con của **K***n*. Tức là, hạt nhân của *A* hay tập Null(*A*) có ba tính chất sau:

# Null(*A*) luôn chứa vectơ không, vì .
# Nếu  và , thì . Điều này là do tính phân phối của phép nhân ma trận đối với phép cộng.
# Nếu  và *c* là một vô hướng , thì  vì .

### Không gian hàng của một ma trận
Tích *A***x** có thể được viết dưới dạng tích vô hướng của các vectơ như sau:

: A\mathbf{x} = \begin{bmatrix} \mathbf{a}_1 \cdot \mathbf{x} \\ \mathbf{a}_2 \cdot \mathbf{x} \\ \vdots \\ \mathbf{a}_m \cdot \mathbf{x} \end{bmatrix}.

Ở đây **a**1,..., **a***m* chỉ các hàng của ma trận *A*. Suy ra rằng **x** thuộc hạt nhân của *A* khi và chỉ khi **x** trực giao (hay vuông góc) với từng vectơ hàng của *A* (vì trực giao được định nghĩa là có tích vô hướng bằng 0).

Không gian hàng, hay đối ảnh của ma trận *A* là span của các vectơ hàng của *A*. Bằng lập luận như trên, hạt nhân của *A* là phần bù trực giao của không gian hàng. Tức là, một vectơ **x** thuộc hạt nhân của *A*, khi và chỉ khi nó vuông góc với từng vectơ trong không gian hàng của *A*.

Số chiều của không gian hàng của *A* được gọi là hạng của *A*, còn số chiều của hạt nhân của *A* được gọi là **số vô hiệu** của *A*. Các đại lượng này được liên hệ bởi định lý hạng và số vô hiệu

: \operatorname{rank}(A) + \operatorname{nullity}(A) = n.

### Không gian hạt nhân trái
**Không gian hạt nhân trái**, hay đối hạch (cokernel), của một ma trận *A* gồm các vectơ **x** sao cho **x**T*A*&nbsp;=&nbsp;**0**T, trong đó T là ký hiệu cho chuyển vị của một ma trận. Không gian null trái chính là hạt nhân của *A*T, và là phần bù trực giao của không gian cột của *A*, và đối ngẫu với đối hạch của biến đổi tuyến tính tương ứng. Hạt nhân, không gian hàng, không gian cột và hạt nhân trái của *A* là **bốn không gian con cơ bản** liên quan tới ma trận *A.*

### Hệ phương trình tuyến tính không thuần nhất
Hạt nhân cũng có vai trò trong nghiệm của một hệ phương trình tuyến tính không thuần nhất:
:A\mathbf{x}=\mathbf{b}\;\;\;\;\;\;\text{or}\;\;\;\;\;\;\begin{alignat}{7}
a_{11} x_1 &&\; + \;&& a_{12} x_2 &&\; + \;\cdots\; + \;&& a_{1n} x_n &&\; = \;&&& b_1      \\
a_{21} x_1 &&\; + \;&& a_{22} x_2 &&\; + \;\cdots\; + \;&& a_{2n} x_n &&\; = \;&&& b_2      \\
\vdots\;\;\; &&     && \vdots\;\;\; &&              && \vdots\;\;\; &&     &&& \;\vdots \\
a_{m1} x_1 &&\; + \;&& a_{m2} x_2 &&\; + \;\cdots\; + \;&& a_{mn} x_n &&\; = \;&&& b_m      \\
\end{alignat}
Nếu **u** và **v** là hai nghiệm có thể của phương trình trên thì

: A(\mathbf{u}-\mathbf{v}) = A\mathbf{u} - A\mathbf{v} = \mathbf{b} - \mathbf{b} = \mathbf{0}\,

Vì vậy, hiệu của hai nghiệm bất kỳ của phương trình *A***x**&nbsp;=&nbsp;**b** nằm trong hạt nhân của *A*.

Từ đó suy ra rằng bất kỳ nghiệm nào của phương trình *A***x**&nbsp;=&nbsp;**b** có thể được biểu diễn dưới dạng tổng của một nghiệm cố định **v** và một phần tử bất kỳ của hạt nhân. Tức là, tập nghiệm của phương trình *A***x**&nbsp;=&nbsp;**b** là

: \left\{ \mathbf{v}+\mathbf{x} \mid A \mathbf{v}=\mathbf{b} \land \mathbf{x}\in\operatorname{Null}(A) \right\},

Một cách hình học, điều này nói rằng tập nghiệm của *A***x**&nbsp;=&nbsp;**b** là hạt nhân của *A* được tịnh tiến theo vectơ **v**.
## Ví dụ minh họa
Sau đây là một ví dụ đơn giản về tính toán hạt nhân của một ma trận (xem phần dưới về các phương pháp tốt hơn cho các tính toán phức tạp). Ví dụ minh họa cũng liên hệ đến không gian hàng và quan hệ của nó với hạt nhân.

Xét ma trận

: A = \begin{bmatrix}2 & 3 & 5 \\ -4 & 2 & 3\end{bmatrix}.

Hạt nhân của ma trận này chứa các vectơ  sao cho

: \begin{bmatrix}2 & 3 & 5 \\ -4 & 2 & 3\end{bmatrix}\begin{bmatrix} x \\ y \\ z\end{bmatrix} = \begin{bmatrix} 0 \\ 0 \end{bmatrix},

có thể biểu diễn phương trình trên dưới dạng một hệ phương trình tuyến tính thuần nhất liên hệ *x*, *y*, và *z*:

: \begin{align}
 2x + 3y + 5z &= 0, \\
-4x + 2y + 3z &= 0.
\end{align}

Hệ phương trình trên cũng có thể viết thành dạng ma trận như sau:

: 
  \left[\begin{array}{ccc|c}
    2 & 3 & 5 & 0 \\
    -4 & 2 & 3 & 0
  \end{array}\right].


Bằng phép khử Gauss-Jordan, ma trận có thể được rút gọn thành:

: 
  \left[\begin{array}{ccc|c}
    1 & 0 & 1/16 & 0 \\
    0 & 1 & 13/8 & 0
  \end{array}\right].


Viết lại ma trận dưới dạng phương trình ta được:

: \begin{align}
x &= -\frac{1}{16}z \\
y &= -\frac{13}{8}z.
\end{align}

Các phần tử của hạt nhân có thể được biểu diễn dưới dạng tham số như sau:

: \begin{bmatrix} x \\ y \\ z\end{bmatrix} = c \begin{bmatrix} -1/16 \\ -13/8 \\ 1\end{bmatrix}\quad (\text{where }c \in \mathbb{R})

Vì *c* là một biến tự do nhận giá trị trên mọi số thực, ta cũng có thể biểu diễn như sau:

: 
	\begin{bmatrix}
		x\\
		y\\
		z
	\end{bmatrix} = 
        c \begin{bmatrix}
		 -1\\
		-26\\
		 16
	\end{bmatrix}.


Hạt nhân của *A* chính là tập nghiệm của hệ phương trình trên (trong trường hợp này, là đường thẳng đi qua gốc tọa độ trong **R**3).  Ở đây, vì vectơ (−1,−26,16)T lập một cơ sở cho hạt nhân của *A* nên số vô hiệu của *A* bằng 1.

Các tích vô hướng sau là bằng 0:

: 
 \begin{bmatrix} 2 & 3 & 5 \end{bmatrix}
 \begin{bmatrix}
		 -1\\
		-26\\
		 16
 \end{bmatrix}
= 0
\quad\mathrm{and}\quad
 \begin{bmatrix} -4 & 2 & 3 \end{bmatrix}
 \begin{bmatrix}
		 -1\\
		-26\\
		 16
 \end{bmatrix}
= 0\mathrm{,}


cho thấy các vectơ trong hạt nhân của *A* trực giao với từng vectơ cột của *A.*

Hai vectơ hàng trong *A* (độc lập tuyến tính) span không gian hàng của *A* — một mặt phẳng trực giao với vectơ (−1,−26,16)T.

Với ma trận *A* có hạng 2, số vô hiệu 1 và kích thước bằng 3 của *A*, ta có một minh họa của định lý hạng-số vô hiệu.

## Ví dụ

* Nếu *L*:&nbsp;**R**m&nbsp;→&nbsp;**R**n, thì hạt nhân của *L* là tập nghiệm của một hệ phương trình tuyến tính thuần nhất. Trong ví dụ minh họa trên, nếu L là toán tử:

:: L(x_1,x_2,x_3) = (2x_1 + 3x_2 + 5x_3,\; -4x_1 + 2x_2 + 3x_3)
: thì hạt nhân của *L* là tập nghiệm của hệ phương trình
:: \begin{alignat}{7}
    2x_1 &\;+\;& 3x_2 &\;+\;& 5x_3 &\;=\;& 0 \\
   -4x_1 &\;+\;& 2x_2 &\;+\;& 3x_3 &\;=\;& 0
\end{alignat}

* Cho *C*[0,1] là không gian vectơ của tất cả các hàm giá trị thực trên đoạn [0,1], và định nghĩa *L*:&nbsp;*C*[0,1]&nbsp;→&nbsp;**R** bởi quy ước

:: L(f) = f(0.3)\text{.}\,
: Vậy thì hạt nhân của *L* chứa các hàm *f*&nbsp;∈&nbsp;*C*[0,1] sao cho *f*(0.3)&nbsp;=&nbsp;0.

* Cho *C*∞(**R**) là không gian vectơ của các hàm khả vi vô hạn lần **R**&nbsp;→&nbsp;**R**, và cho *D*:&nbsp;*C*∞(**R**)&nbsp;→&nbsp;*C*∞(**R**) là toán tử vi phân:

:: D(f) = \frac{df}{dx}\text{.}
: Vậy hạt nhân của *D* gồm tất cả các hàm số trong *C*∞(**R**) có đạo hàm bằng 0, tức là tập các hàm hằng.

* Cho **R**∞ là tích trực tiếp của vô hạn các bản sao của tập **R**, và cho *s*:&nbsp;**R**∞&nbsp;→&nbsp;**R**∞ là toán tử dịch chuyển

:: s(x_1,x_2,x_3,x_4,\ldots) = (x_2,x_3,x_4,\ldots)\text{.}
: Vậy thì hạt nhân của *s* là không gian một chiều chứa các vectơ (*x*1,&nbsp;0,&nbsp;0,&nbsp;...).

* Nếu *V* là một không gian tích trong và *W* là một không gian con, hạt nhân của phép chiếu trực giao  *V*&nbsp;→&nbsp;*W* là phần bù trực giao của *W* trong *V*.

## Tính toán bằng phép khử Gauss
Một cơ sở của hạt nhân của một ma trận có thể được tính nhờ phép khử Gauss.

Để làm điều này, cho một ma trận *A* cỡ *m* × *n*, trước hết ta xây dựng ma trận bổ sung trên hàng  \left[\begin{array}{c}A\\\hline I\end{array}\right], trong đó  là ma trận đơn vị *n* × *n*.

Tính toán dạng cột bậc thang rút gọn bằng phép khử Gauss (hay bất kỳ phương pháp phù hợp nào), ta có một ma trận  \left[\begin{array}{c}B\\\hline C\end{array}\right]. Một cơ sở của hạt nhân của *A* bao gồm các cột khác zero của *C* sao cho cột tương ứng của *B* là một cột zero.

Thực tế, tính toán có thể ngừng lại một khi ma trận phía trên mới chỉ được đưa về dạng cột bậc thang: những tính toán còn lại chỉ nhằm đổi cơ sở của không gian vectơ sinh bởi các cột mà phần thuộc ma trận trên là zero.

Ví dụ, giả sử

: A=\left[ \begin{array}{cccccc}
1 & 0 & -3 & 0 &  2 & -8 \\
0 & 1 &  5 & 0 & -1 & 4 \\
0 & 0 &  0 & 1 & 7 & -9 \\
0 & 0 & 0 & 0 & 0 & 0 \end{array} \,\right]. 

ta có

:  \left[\begin{array}{c}A\\\hline I\end{array}\right]=
\left[\begin{array}{cccccc}
1 & 0 & -3 & 0 &  2 & -8 \\
0 & 1 &  5 & 0 & -1 & 4 \\
0 & 0 &  0 & 1 & 7 & -9 \\
0 & 0 & 0 & 0 & 0 & 0 \\
\hline
1 & 0 & 0 & 0 & 0 & 0 \\
0 & 1 & 0 & 0 & 0 & 0 \\
0 & 0 & 1 & 0 & 0 & 0 \\
0 & 0 & 0 & 1 & 0 & 0 \\
0 & 0 & 0 & 0 & 1 & 0 \\
0 & 0 & 0 & 0 & 0 & 1
\end{array}\right]. 

Biến đổi phần trên của ma trận về dạng cột bậc thang bằng các biến đổi cột thực hiện trên toàn bộ ma trận để có

:  \left[\begin{array}{c}B\\\hline C\end{array}\right]=
\left[\begin{array}{cccccc}
1 & 0 &  0 & 0 &  0 & 0 \\
0 & 1 &  0 & 0 &  0 & 0 \\
0 & 0 &  1 & 0 &  0 & 0 \\
0 & 0 &  0 & 0 &  0 & 0 \\
\hline
1 & 0 &  0 & 3 & -2 & 8 \\
0 & 1 &  0 & -5 & 1 & -4 \\
0 & 0 &  0 & 1 & 0 & 0 \\
0 & 0 &  1 & 0 & -7 & 9 \\
0 & 0 &  0 & 0 & 1 & 0 \\
0 & 0 &  0 & 0 & 0 & 1
\end{array}\right]. 

Ta thấy ba cột cuối cùng của *B* là các cột zero, vì thế, ba cột cuối cùng của *C*,

: \left[\!\! \begin{array}{r} 3 \\ -5 \\ 1 \\ 0 \\ 0 \\ 0 \end{array} \right],\;
\left[\!\! \begin{array}{r} -2 \\ 1 \\ 0 \\ -7 \\ 1 \\ 0 \end{array} \right],\;
\left[\!\! \begin{array}{r} 8 \\ -4 \\ 0 \\ 9 \\ 0 \\ 1 \end{array} \right] 

là một cơ sở của hạt nhân của *A*.

Chứng minh rằng phương pháp này có thể tính toán ra hạt nhân: Bởi các biến đổi cột tương ứng với việc nhân các ma trận khả nghịch vào phía bên phải, nên ma trận  \left[\begin{array}{c}A\\\hline I\end{array}\right] giản ước về  \left[\begin{array}{c}B\\\hline C\end{array}\right] có nghĩa là tồn tại một ma trận khả nghịch P sao cho  \left[\begin{array}{c}A\\\hline I\end{array}\right] P = \left[\begin{array}{c}B\\\hline C\end{array}\right],  với B ở dạng cột bậc thang. Vì vậy AP=B, IP=C,  và  AC=B.  Một vectơ cột v thuộc hạt nhân của A (tức là Av=0) khi và chỉ khi Bw=0, với w=P^{-1}v=C^{-1}v. Vì B đang ở dạng cột bậc thang nên Bw=0 khi và chỉ khi các phần tử khác 0 của w tương ứng với các cột zero của B. Bằng việc nhân với C, ta có thể suy rằng điều này chỉ có thể khi và chỉ khi v=Cw là tổ hợp tuyến tính của các cột tương ứng trong C.

## Tính toán bằng số
Vấn đề tính toán hạt nhân của ma trận trên máy tính phụ thuộc vào bản chất của các hệ số trong ma trận

### Hệ số chính xác
Nếu các hệ số của ma trận được đưa chính xác là các con số nguyên, dạng cột bậc thang có thể được tính bằng thuật toán Bareiss hiệu quả hơn so với phép khử Gauss. Còn hiệu quả hơn nữa nếu sử dụng số học mô đun và định lý số dư Trung Hoa để đơn giản hóa về các bài toán tương tự trên trường hữu hạn (điều này để tránh tổn phí gây ra do sự phi tuyến tính của độ phức tạp tính toán của phép nhân số nguyên).

Đối với hệ số trong một trường hữu hạn, phép khử Gauss vẫn hoạt động tốt, nhưng đối với những ma trận cỡ lớn hơn thường gặp trong mã hóa và tính cơ sở Gröbner, các thuật toán tốt hơn khác đã được đưa ra, với độ phức tạp tính toán gần tương tự, nhưng nhanh hơn và hoạt động tốt hơn với phần cứng máy tính hiện đại.

### Tính toán với dấu phẩy động
Với các ma trận mà các phần tử là các số thực dấu phẩy động, vấn đề tính toán hạt nhân của ma trận chỉ có ý nghĩa đối với các ma trận sao cho số hàng của nó bằng hạng (tức là có hạng hàng đầy đủ): do lỗi làm tròn số, một ma trận với dấu phẩy động hầu như luôn luôn có hạng đầy đủ, ngay cả khi nó là một xấp xỉ của một ma trận với hạng nhỏ hơn nhiều. Thậm chí đối với một ma trận hạng đầy đủ, chỉ có thể tính được hạt nhân của nó chỉ khi có số điều kiện là nhỏ.

Phép khử Gauss không hoạt động chính xác đối với dấu phẩy động, ngay cả với ma trận hạng đầy đủ và đã được điều kiện; vì nó gây ra các lỗi làm tròn quá lớn để có một kết quả có nghĩa. Bởi vì tính toán hạt nhân của ma trận là một trường hợp đặc biệt của giải hệ tuyến tính thuần nhất, ta có thể sử dụng các thuật toán thay thế được thiết kế chuyên biệt để giải hệ phương trình tuyến tính thuần nhất. Một phần mềm hiện đại cho mục đích này là thư viện Lapack.

## Xem thêm

* Hạt nhân (đại số)
* Tập không
* Hệ phương trình tuyến tính
* Không gian hàng và cột
* Tối giản hàng
* Không gian vectơ
* Không gian con tuyến tính
* Toán tử tuyến tính
* Không gian hàm

## Chú thích và tham khảo

## Tham khảo sách

* 
* 
* 
* 
* 
* 
* 
* 

## Liên kết ngoài

* 
* Khan Academy, Introduction to the Null Space of a Matrix