Se \(V = S \oplus T\) allora \(S\) e \(T\) sono sottospazi supplementari in \(V\). Per determinare se \(S\) e \(T\) sono supplementari bisogna verificare che \(V\) è somma diretta di \(S\) e \(T\) (vedi sezione precedente "Somma diretta di sottospazi vettoriali")
Trovare un sottospazio supplementare di \(S = \{(x,y,z) \in \mathbb{R}^3 \quad | \quad x+3y+2z=0\}\) Prima cosa: ricavare una base di \(S\) per comprenderne la dimensione:
x,y,z = sp.symbols("x y z")
syms = [x,y,z]
system = [
x+3*y-2*z
]
baseDaSpazioSoluzioniSistema(system, syms, [y, z])
Base trovata: Matrix([[-3, 1, 0], [2, 0, 1]])
Quindi \(dim(S) < dim(V)\) e \(dim(T)\) = 1. Si procede con il completamento a base:
"""Integra la base di S con la base canonica di R^3"""
completamento = []
completamento.append(base_S.row(0))
completamento.append(base_S.row(1))
completamento.append(sp.Matrix([[1,0,0]]))
completamento.append(sp.Matrix([[0,1,0]]))
completamento.append(sp.Matrix([[0,0,1]]))
print("Completamento: ", completamento)
base_ScT = estrapolaLinearmenteIndipendenti(completamento)
print("base ottenuta:", base_ScT)
Completamento: [Matrix([[-3, 1, 0]]), Matrix([[2, 0, 1]]), Matrix([[1, 0, 0]]), Matrix([[0, 1, 0]]), Matrix([[0, 0, 1]])] ... base ottenuta: [Matrix([[-3, 1, 0]]), Matrix([[2, 0, 1]]), Matrix([[1, 0, 0]])]
""" Rimuovendo i vettori della base S si ottengono i generatori di T """
generatore_T = base_ScT
generatore_T.remove(base_S.row(0))
generatore_T.remove(base_S.row(1))
print("generatore di T: ", generatore_T)
generatore di T: [Matrix([[1, 0, 0]])]
Come nell'esercizio, la base che conferma la dimensione 1 di \(T\).
def complementareS(incognite, sistema=None, parametri_liberi=None, base_S=None):
dimensione_V = len(incognite)
if base_S is None and sistema is not None:
base_S = baseDaSpazioSoluzioniSistema(sistema, incognite, parametri_liberi)
""" Se dimensione dim(S)=dim(V) non si procede, altrimenti dim(T) = dim(V)-dim(S) """
dimensione_S = base_S.shape[0]
print("Dimensione S: ", dimensione_S)
if dimensione_S < dimensione_V:
dimensione_T = dimensione_V-dimensione_S
print("Dimensione T: ", dimensione_T)
"""Completamento: integra la base di S con la base canonica di R^3"""
base_ScT = completamentoABase([base_S], dimensione_V)
print("base ottenuta:", base_ScT)
""" Rimuovendo i vettori della base S si ottengono i generatori di T """
generatore_T = []
for i in range(base_ScT.shape[0]):
generatore_T.append(base_ScT.row(i))
for i in range (dimensione_V - dimensione_T):
generatore_T.remove(base_S.row(i))
print("generatore di T: ", generatore_T)
return generatore_T
Trovare un sottospazio supplementare di \(S = \{(x,y,z) \in \mathbb{R}^3 \quad | \quad x+3y+2z=0\}\). Soluzione: \(T=Span((1,0,0))\).
x,y,z = sp.symbols("x y z")
incognite = [x,y,z]
sistema = [
x+3*y-2*z
]
complementareS(incognite, sistema=sistema, parametri_liberi=[y,z])
Base trovata: Matrix([[-3, 1, 0], [2, 0, 1]]) Dimensione S: 2 Dimensione T: 1 base ottenuta: Matrix([[-3, 1, 0], [2, 0, 1], [1, 0, 0]]) generatore t init [Matrix([[-3, 1, 0]]), Matrix([[2, 0, 1]]), Matrix([[1, 0, 0]])] generatore di T: [Matrix([[1, 0, 0]])]
Come da esercizio.
Trovare un sottospazio supplementare di \(S = Span(1-x+x^2)\). Soluzione: \(T=Span(1,x^2)\)
t, x, x2 = sp.symbols("t x x2")
incognite = [t, x, x2]
complementareS(incognite, base_S=sp.Matrix([[1,-1,1]]))
Dimensione S: 1 Dimensione T: 2 base ottenuta: Matrix([[1, -1, 1], [1, 0, 0], [0, 1, 0]]) generatore di T: [Matrix([[1, 0, 0]]), Matrix([[0, 1, 0]])]
Come nell'esercizio (\(T'=Span((1,0,0),(0,1,0))\)), in quanto i polinomi di \(\mathbb{R}_2[x]\) i cui coefficienti sono le componenti dei vettori che generano \(T'\) formano un sottospazio supplementare di \(S\) cioè: \(T=Span(1,x^2)\)
\(S=Span(\begin{bmatrix}0&0\\0&4\end{bmatrix},\begin{bmatrix}0&-1\\0&3\end{bmatrix},\begin{bmatrix}0&0\\-2&5\end{bmatrix},\begin{bmatrix}1&0\\0&-8\end{bmatrix})\)
a,b,c,d = sp.symbols("a b c d")
base_S = estrapolaLinearmenteIndipendenti(sp.Matrix([
[0,0,0,4],
[0,-1,0,3],
[0,0,-2,5],
[1,0,0,-8]
])
)
complementareS([a,b], base_S=base_S)
Dimensione S: 4
Che è pari alla dimensione di \(\mathbb{R}^4\) spazio vettoriale in cui ci si è spostati per il calcolo.