Kernel (álxebra linear)

En matemáticas, o **kernel** ou **núcleo** dun mapa linear, tamén coñecido como **espazo nulo**, é a parte do dominio que se asigna ao vector cero do codominio; o kernel é sempre un subespazo linear do dominio. É dicir, dado un mapa linear  entre dous espazos vectoriais  e , o kernel de  é o espazo vectorial de todos os elementos  de  tal que , onde  denota o vector cero en , ou máis simbólicamente : \ker(L) = \left\{ \mathbf{v} \in V \mid L(\mathbf{v})=\mathbf{0} \right\} = L^{-1}(\mathbf{0}).

## Propiedades 
miniatura|300x300px|Kernel e imaxe dun mapa linear  de  a
O kernel de  é un subespazo linear do dominio .   No mapa linear L : V \to W, dous elementos de  teñen a mesma imaxe en  se e só se a súa diferenza reside no kernel de , é dicir, 
:L\left(\mathbf{v}_1\right) = L\left(\mathbf{v}_2\right) \quad \text{ se e só se } \quad L\left(\mathbf{v}_1-\mathbf{v}_2\right) = \mathbf{0}.

A partir disto, despréndese que a imaxe de  é isomorfa ao cociente de  polo kernel: 
:\operatorname{im}(L) \cong V / \ker(L).
No caso de que  sexa de dimensión finita, isto implica o teorema do rango: 
:\dim(\ker L) + \dim(\operatorname{im} L) = \dim(V). 
onde o termo  indica a dimensión da imaxe de , \dim(\operatorname{im} L), mentres que ''* indica a dimensión do kernel de , \dim(\ker L).
 
Isto é,
:\operatorname{Rango}(L) = \dim(\operatorname{im} L) \qquad \text{ e } \qquad \operatorname{Nulidade}(L) = \dim(\ker L),
por tanto o teorema do rango pode reexpresarse como 
:\operatorname{Rango}(L) + \operatorname{Nulidade}(L) = \dim \left(\operatorname{dominio} L\right).

Cando  é un espazo prehilbertiano (espazo vectorial con produto escalar), o cociente V / \ker(L) pódese identificar co complemento ortogonal en  de \ker(L).

## En análise funcional 
Se  e  son espazos vectoriais topolóxicos tal que  é de dimensión finita, entón un operador linear  é continuo se e só se o kernel de  é un subespazo pechado de .

## Representación como multiplicación matricial 
Considere un mapa linear representado como unha matriz    con coeficientes nun corpo  (normalmente \mathbb{R} ou \mathbb{C}), que está operando en vectores columna  con  compoñentes sobre . O núcleo deste mapa linear é o conxunto de solucións da ecuación , onde  enténdese como o vector cero. A dimensión do núcleo de *A* chámase **nulidade** de *A*. Na notación de xeración de conxuntos, \operatorname{N}(A) = \operatorname{Null}(A) = \operatorname{ker}(A) = \left\{ \mathbf{x}\in K^n \mid A\mathbf{x} = \mathbf{0} \right\}.A ecuación matricial é equivalente a un sistema homoxéneo de ecuacións lineares: 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\ \;&&&  \\
a_{m1} x_1 &&\; + \;&& a_{m2} x_2 &&\; + \;\cdots\; + \;&& a_{mn} x_n &&\; = \;&&& 0\text{.}   \\
\end{alignat}Así, o núcleo de *A* é o mesmo que a solución estabelecida para as ecuacións homoxéneas anteriores.

### Propiedades do subespazo 
O núcleo dunha matriz    sobre un corpo  é un subespazo linear de . É dicir, o núcleo de , o conxunto , ten as seguintes tres propiedades:

#  sempre contén o vector cero, dado que .
# Se  e , daquela . Isto dedúcese da propiedade distributiva da múltiplicación de matrices sobre a suma.
# Se  e  é un scalar, , daquela , dado que .

### O espazo de filas dunha matriz 
O produto *A***x** pódese escribir en termos do produto escalar dos vectores do seguinte xeito: 
: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}.

Aquí,   denotan as filas da matriz . Dedúcese que  está no núcleo de , se e só se  é ortogonal (ou perpendicular) a cada un dos vectores fila de  (xa que a ortogonalidade defínese como un produto escalar de valor 0).

A dimensión do espazo de filas de  chámase rango de *A'', e a dimensión do núcleo de  denomínase **nulidade** de . Estas cantidades están relacionadas polo teorema do rango  \operatorname{rango}(A) + \operatorname{nulidade}(A) = n.

### Espazo nulo esquerdo 
O **espazo nulo esquerdo** ou cokernel dunha matriz  consta de todos os vectores columna  tal que , onde T denota a transposición dunha matriz. O espazo nulo esquerdo de  é o mesmo que o núcleo de . O espazo nulo esquerdo de  é o complemento ortogonal do espazo columna de , e é dual ao cokernel da transformación linear asociada. O núcleo, o espazo de filas, o espazo de columnas e o espazo nulo esquerdo de  son os **catro subespazos fundamentais** asociados a unha matriz .

### Sistemas non homoxéneos de ecuacións lineares 
O núcleo tamén xoga un papel na solución dun sistema non homoxéneo de ecuacións lineares: 
:A\mathbf{x} = \mathbf{b}\quad \text{ou} \quad \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\ \;&&&    \\
a_{m1} x_1 &&\; + \;&& a_{m2} x_2 &&\; + \;\cdots\; + \;&& a_{mn} x_n &&\; = \;&&& b_m   \\
\end{alignat}
Se  e  son dúas posíbeis solucións da ecuación anterior, entón 
:A(\mathbf{u} - \mathbf{v}) = A\mathbf{u} - A\mathbf{v} = \mathbf{b} - \mathbf{b} = \mathbf{0}
Así, a diferenza de dúas solucións calquera á ecuación  reside no núcleo de .

Do anterior dedúcese que calquera solución da ecuación  pode expresarse como a suma dunha solución fixa  e un elemento arbitrario do núcleo. É dicir, a conxunto de solucións para a ecuación  é 
:\left\{ \mathbf{v}+\mathbf{x} \mid A \mathbf{v}=\mathbf{b} \land \mathbf{x}\in\operatorname{Null}(A) \right\}.
Xeométricamente, isto di que o conxunto de solucións para  é a translación do núcleo de  polo vector . 

## Exemplo sinxelo detallado 
O seguinte é un exempliño sinxelo do cálculo do núcleo dunha matriz. O exemplo tamén toca o espazo de filas e a súa relación co núcleo.

Considere a matriz 
A = \begin{bmatrix} 2 & 3 & 5 \\ -4 & 2 & 3 \end{bmatrix}.

O núcleo desta matriz está formado por todos os vectores  para os que 
:\begin{bmatrix} 2 & 3 & 5 \\ -4 & 2 & 3 \end{bmatrix} \begin{bmatrix} x \\ y \\ z \end{bmatrix} = \begin{bmatrix} 0 \\ 0 \end{bmatrix},
que se pode expresar como un sistema homoxéneo de ecuacións lineares que inclúen ,  e : 
:\begin{align}
 2x + 3y + 5z &= 0, \\
-4x + 2y + 3z &= 0.
\end{align}

As mesmas ecuacións lineares tamén se poden escribir en forma matricial como: 
:
 \left[\begin{array}{ccc|c}
  2 & 3 & 5 & 0 \\
  -4 & 2 & 3 & 0
 \end{array}\right].

Mediante a eliminación de Gauss-Jordan, a matriz pódese reducir a: 
:
 \left[\begin{array}{ccc|c}
  1 & 0 & 1/16 & 0 \\
  0 & 1 & 13/8 & 0
 \end{array}\right].

Reescribindo a matriz en forma de ecuación obtemos: 
:\begin{align}
x &= -\frac{1}{16}z \\
y &= -\frac{13}{8}z.
\end{align}

Os elementos do núcleo pódense expresar tamén en forma vectorial paramétrica, como segue: 
:\begin{bmatrix} x \\ y \\ z\end{bmatrix} = c \begin{bmatrix} -1/16 \\ -13/8 \\ 1\end{bmatrix}\quad (\text{onde }c \in \mathbb{R})

Dado que  é unha variábel libre que vai sobre todos os números reais, isto pódese expresar igualmente como: 
:
\begin{bmatrix} x \\ y \\ z \end{bmatrix}
 = c \begin{bmatrix} -1 \\ -26 \\ 16 \end{bmatrix}.

O núcleo de  é precisamente o conxunto de solucións para estas ecuacións (neste caso, unha liña que pasa pola orixe en ). Aquí, posto que o vector  constitúe unha base do núcleo de , a nulidade de  vale 1.

Os seguintes produtos escalares son cero: 
:
 \begin{bmatrix} 2 & 3 & 5 \end{bmatrix}
 \begin{bmatrix} -1 \\ -26 \\ 16 \end{bmatrix}
= 0
\quad\mathrm{e}\quad
 \begin{bmatrix} -4 & 2 & 3 \end{bmatrix}
 \begin{bmatrix} -1 \\ -26 \\ 16 \end{bmatrix}
= 0 ,

que ilustra como os vectores do núcleo de  son ortogonais a cada un dos vectores fila de .

Estes dous vectores fila (linearmente independentes) abranguen o espazo de filas de , un plano ortogonal ao vector .

Co rango 2 de , a nulidade 1 de  e a dimensión 3 de , temos unha ilustración do teorema do rango.

## Outros exemplos 
* Se , entón o núcleo de  é o conxunto de solucións nun sistema homoxéneo de ecuacións lineares. Como no exempliño anterior, se  é o operador: 
: L(x_1, x_2, x_3) = (2 x_1 + 3 x_2 + 5 x_3,\; - 4 x_1 + 2 x_2 + 3 x_3)
:daquela o núcleo de  é o conxunto de solucións das ecuacións 
: \begin{alignat}{7}
  2x_1 &\;+\;& 3x_2 &\;+\;& 5x_3 &\;=\;& 0 \\
  -4x_1 &\;+\;& 2x_2 &\;+\;& 3x_3 &\;=\;& 0
\end{alignat}
* Denotamos como  o espazo vectorial de todas as funcións continuas de valores reais no intervalo [0,1], e definimos  pola regra 
:L(f) = f(0.3).
:Entón o núcleo de  consta de todas as funcións  para as que .
* Sexa  o espazo vectorial de todas as funcións infinitamente derivábeis , e sexa  o operador de diferenciación: 
:D(f) = \frac{df}{dx}.
:Daquela o núcleo de  consta de todas as funcións en  cuxas derivadas son cero, é dicir, o conxunto de todas as funcións constantes.
* Sexa  o produto directo de infinitas copias de , e sexa  o operador de desprazamento 
: s(x_1, x_2, x_3, x_4, \ldots) = (x_2, x_3, x_4, \ldots).
:Entón o núcleo de  é o subespazo unidimensional que consta de todos os vectores  .
* Se  é un espazo prehilbertiano e  é un subespazo, o núcleo da proxección ortogonal  é o complemento ortogonal de  en .

## Cálculo por eliminación gaussiana 
Unha base do núcleo dunha matriz pódese calcular mediante eliminación de Gauss.

Para este fin, dada unha matriz  , construímos primeiro a matriz aumentada por filas  \begin{bmatrix}A \\ \hline I \end{bmatrix}, onde  é a matriz de identidade .

Calculando a súa forma escalonada de columna mediante eliminación gaussiana (ou calquera outro método axeitado), obtemos unha matriz  \begin{bmatrix} B \\\hline C \end{bmatrix}. Unha base do núcleo de  consiste nas columnas distintas de cero de  de forma que a columna correspondente de  é unha columna cero.

De feito, o cálculo pode deterse en canto a matriz superior estea en forma de escada: o resto do cálculo consiste en mudar a base do espazo vectorial xerado polas columnas cuxa parte superior é cero.

Por exemplo, supoña que 
:A = \begin{bmatrix}
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{bmatrix}.  
Entón 
: \begin{bmatrix} A \\ \hline I \end{bmatrix} =
\begin{bmatrix}
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{bmatrix}. 

Poñendo a parte superior en escada de columnas mediante operacións de columna sobre toda a matriz dá 
: \begin{bmatrix} B \\ \hline C \end{bmatrix} =
\begin{bmatrix}
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{bmatrix}. 

As tres últimas columnas de  son columnas cerp. Polo tanto, os tres últimos vectores de , 
:\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]  
son unha base do núcleo de .

## Cálculo numérico 
O problema de calcular o kernel nun ordenador depende da natureza dos coeficientes.

### Coeficientes exactos 
Se os coeficientes da matriz son exactamente números dados, a forma escalonada de columnas da matriz pódese calcular co algoritmo de Bareiss de forma máis eficiente que coa eliminación gaussiana. É aínda máis eficiente empregar a  aritmética modular e o teorema do resto chinés, o que reduce o problema a varios problemas similares sobre corpos finitos (isto evita a sobrecarga inducida pola non linearidade da complexidade computacional da multiplicación de enteiros).

Para os coeficientes nun corpo finito, a eliminación de Gauss funciona ben, mais para as grandes matrices que ocorren na criptografía e no cálculo base de Gröbner, coñécense mellores algoritmos, que teñen aproximadamente a mesma complexidade computacional, mais son máis rápidos e compórtanse mellor co hardware moderno.

### Cálculo en coma flotante 
Para matrices cuxas entradas son números en coma flotante, o problema de calcular o kernel só ten sentido para matrices de tal forma que o número de filas é igual ao seu rango: debido aos erros de redondeo, unha matriz en coma flotante ten case sempre un rango completo, mesmo cando se trata dunha aproximación dunha matriz de rango moito menor. Mesmo para unha matriz de rango completo, é posíbel calcular o seu núcleo só se está ben condicionado, é dicir, ten un número de condición baixo.

Un software de última xeración para este fin é a biblioteca Lapack.
## Notas 
## Véxase tamén 
### Bibliografía 
* 
* 
* 
* 
* 
* 
* 
### Outros artigos 
* Kernel (álxebra).
* Sistema de ecuacións lineares
### Ligazóns externas 
* 
* Khan Academy, Introduction to the Null Space of a Matrix