Nucleo di un app. lineare è l'insieme dei vettori del dominio che hanno come immagine, tramite l'app.lineare, il vettore nullo del codominio
\(Ker(F) := {{\textbf v} \in V : F({\textbf v}) = 0_W}\)
Per trovare il nucleo partendo dalla matrice che la definisce effettuare il prodotto matrice per colonna \(A{\textbf x} = 0\) ponendone il risultato (con \(x\) incognite) \(= 0\) in un sistema lineare. L'insieme delle soluzioni del sistema compongno il nucleo dell'app. lineare. Nel caso di app. lineari definite da polinomi si pongono direttamente i polinomi \(= 0\) nel sistema lineare.
Il nucleo di un ap. lineare \(V \to W\) è un sottospazio vettoriale di \(V\).
Nelle applicazioni lineare definite esplicitamente si pongono i termini di definizione in un sistema lineare omogeneo. L'insieme dei risultati del sistema è il nucleo dell'app.lineare \(F\).
x,y,z,t = sp.symbols("x y z t")
definizione = [x+3*z-t, x+y+z+t]
sol = sp.solve(definizione)
print(sol)
{t: -y/2 + z, x: -y/2 - 2*z}
Se l'app. lineare è definita dalla matrice (come nell'esempio \(A=\begin{bmatrix}1&5\\-3&4\end{bmatrix}\)) le soluzioni del derivante sistema lineare omogeneo costituiscono il nucleo.
x1,x2 = sp.symbols("x1 x2")
A = sp.Matrix([[1,5],[-3,4]])
vettore_x = sp.Matrix([[x1], [x2]])
Ax = A*vettore_x
sistema_lineare_omogeneo = []
for row in range(Ax.shape[0]):
sistema_lineare_omogeneo.append(list(Ax.row(row))[0])
print(sistema_lineare_omogeneo)
[x1 + 5*x2, -3*x1 + 4*x2]