Dimensione e base del sottospazio

Superandri91
Ciao a tutti. Mi sono appena iscritto... Ho trovato questo forum molto interessante e utile e ho deciso di scrivere per risolvere i miei dubbi (dato che tra poco ho un esame di algebra lineare) :)
Sto cercando di risolvere un esercizio ma non riesco proprio a capire come si fa...
Ecco il testo:
"Determinare la dimensione ed una base del sottospazio vettoriale
$ V={ (x,y,z) \in R^3 | x - 2y + z =0, x+y=0} $
Le soluzioni sono dim=1, base : (1,-1,-3).
Grazie in anticipo

Risposte
Superandri91
ah ok! allora adesso vado a mangiare dopo con carta e penna ti dico la base :) grazie per l'aiuto!

Superandri91
allora il primo lo prendo, il secondo anche perchè non è proporzionale al primo, il terzo faccio una combinazione lineare tra i primi 3 e la pongo uguale a 0,0,0,0. se l'unica sol. possibile è a=b=c=0 allora sono l.i.... stessa cosa per l'ultimo... giusto?

maurer
Sì il metodo il linea di principio è corretto. Ma io sinceramente non ho ancora capito se hai dimestichezza con questi conti o no. Mi scrivi esplicitamente una base di quel sottospazio? Cioè, puoi provare a fare tutti i conti necessari?

Superandri91
sinceramente neanch'io ho capito se ho dimestichezza... qui non riesco a fare i conti... comunque li ho fatti su un foglio! i primi 3 sono l.i., ho difficoltà con l'ultimo perchè se faccio una combinazione lineare con i primi 4 mi vengono fuori tantissimi conti!

maurer
Ecco appunto. Lo ripeto ancora una volta: per me non ha senso che provi a fare esercizi più complessi quando non hai dimestichezza con questi argomenti basilari.

Ti spiego il metodo, poi però dovresti farne un po' per conto tuo, fintanto che il procedimento non diventa una macchinetta.

Metti le componenti dei vettori in riga a formare una matrice.
[tex]\left( \begin{matrix} 1 & 0 & 2 & 0 \\ 3 & 4 & 4 & -1 \\ 1 & 4 & 0 & -1 \\ 0 & 4 & -2 & -1 \end{matrix} \right)[/tex]
Il rango di questa matrice coincide con la dimensione di quel sottospazio. Le sue righe linearmente indipendenti corrispondono ad una base di quel sottospazio.
Per ricavare entrambe queste informazioni, bisogna ridurre con il metodo di Gauss. Con le operazioni [tex]R_2 \to R_2 - 3R_1[/tex] e [tex]R_3 \to R_3 - R_1[/tex]ti riduci alla matrice
[tex]\left( \begin{matrix} 1 & 0 & 2 & 0 \\ 0 & 4 & -2 & -1 \\ 0 & 4 & -2 & -1 \\ 0 & 4 & -2 & -1 \end{matrix} \right)[/tex]
e adesso ti rendi conto che le ultime tre righe sono tutte uguali, sicché le operazioni [tex]R_3 \to R_3 - R_2[/tex] e [tex]R_4 \to R_4 - R_2[/tex] ti portano alla matrice ridotta per righe
[tex]\left( \begin{matrix} 1 & 0 & 2 & 0 \\ 0 & 4 & -2 & -1 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \end{matrix} \right)[/tex]
E pertanto la dimensione è 2 e una base è [tex]\mathcal B = ((1,0,2,0),(0,4,-2,-1))[/tex].

Ora, ti sembra che io abbia fatto una quantità esorbitante di conti??

Superandri91
no! però con il metodo di gauss non sono abituato! sono stato abituato a usare cramer, mi sa di scomodo! comunque ho capito! sai aiutarmi per l'ultimo esercizio che ho postato?

maurer
La seconda parte dell'ultimo esercizio si basa su un ulteriore algoritmo: l'algoritmo di completamento della base.

Teoricamente si fa così: si prende la base del sottospazio; ci si aggiungono i vettori della base canonica e si applica l'algoritmo di estrazione di una base, tenendo tutti i vettori del sottospazio di partenza.

Ora, procedere in quel modo è assai macchinoso. E', ancora una volta, più conveniente applicare in maniera intelligente l'algoritmo di Gauss. Scrivi le componenti dei vettori della base sotto forma di matrice:
[tex]\left( \begin{matrix} 1 & - 1 & 2 & 0 \\ 3 & 1 & 0 & 1 \\ 1 & 0 & 0 & 0 \end{matrix} \right)[/tex]
Ora, siamo fortunati, perché la matrice è già ridotta per righe. Se non fosse così dovresti applicare l'algoritmo di Gauss per ridurre la matrice per righe. A questo punto aggiungi un'ulteriore riga inventata da te in modo da aumentare il rango di uno. Ad esempio la riga [tex](0,0,0,1)[/tex] va bene, perché, senza ulteriori conti, la matrice
[tex]\left( \begin{matrix} 1 & -1 & 2 & 0 \\ 3 & 1 & 0 & 1 \\ 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 1 \end{matrix} \right)[/tex]
è ridotta per righe. Pertanto se [tex]W[/tex] è il sottospazio di partenza, denotiamo con [tex]V = \langle (0,0,0,1) \rangle[/tex]. Per quanto appena visto [tex]W + V = \mathbb R^4[/tex]. Inoltre [tex]W \cap V = \langle \mathbf 0 \rangle[/tex]. Questa mia "rapida" affermazione, tu sapresti giustificarla?
A questo punto è chiaro che [tex]W \oplus V = \mathbb R^4[/tex].

Superandri91
no! non ho capito perchè è cosi... e sinceramente al momento posso anche capire cosa hai fatto, ma non capendolo fino in fondo quasi sicuramente non saprei riapplicarlo! uff! quanto è difficile algebra :(

maurer
Non è difficile, ma devi studiarla dall'inizio.
Bisogna imparare tanti algoritmi diversi, tutti molto simili tra loro (perché sostanzialmente quasi tutti basati sul metodo di Gauss) e ognuno ha il suo scopo e bisogna sapere quando e come applicarli. In altre parole, a te sembra difficile perché non hai le basi.
Prova a seguire il mio consiglio: chiudi tutto, azzera e riparti con un sacco di esercizi sul metodo di Gauss. Poi procedi pian piano verso mete più ardue. E studia la teoria; è un esame in cui teoria e pratica vanno sviluppati contemporaneamente. Ad esempio sapresti dimostrare che due sottospazi sono in somma diretta se e solo se la loro intersezione si riduce al solo vettore nullo?

Sk_Anonymous
"Superandri91":
sinceramente neanch'io ho capito se ho dimestichezza... qui non riesco a fare i conti... comunque li ho fatti su un foglio! i primi 3 sono l.i., ho difficoltà con l'ultimo perchè se faccio una combinazione lineare con i primi 4 mi vengono fuori tantissimi conti!

Allora, visto che anche io mi sono dato da fare con algebra lineare, e ora ho terminato lo studio, mi permetto di darti alcuni consigli.
Un mese fa io stavo nella stessa tua situazione, e cioè mi impuntavo nel fare qualsiasi cosa, anche risolvere sistemi lineari banali. Stanco di questo, ho preso il libro delle superiori, ho fatto esercizi ed esercizi su sistemi lineari, matrici, calcolo vettoriale ecc...in modo tale da avere delle solide basi di calcolo. Poi ho studiato attentamente la teoria, soprattutto quella sugli spazi vettoriali e seguire altrimenti se non si sa bene la teoria non si va da nessuna parte. Poi mi sono fatto molti esercizi di questo eserciziario (http://www.science.unitn.it/~carrara/ES ... unisci.pdf), che mi hanno aiutato non poco nel fissare per bene la teoria. Poi ho fatto degli esercizi d'esame. Questo in circa un mese. Ti ripeto, io fino a qualche settimana fa non sapevo neanche cos'era una matrice, poi mi son dato da fare sui libri delle superiori, perchè mi mancavano proprio le basi di calcolo. Se non sai applicare l'algoritmo di Gauss, fidati di me, avrai molte difficoltà, perchè tutto sta a risolvere sistemi lineari su sistemi lineari: pensa se un meccanico avesse a disposizione solo un cacciavite per lavorare, come farebbe a svitare un bullone?

Superandri91
Maurer mi hai messo la pulce nell'orecchio e sto cercando di capire come funziona veramente il metodo di gauss ma non riesco... È davvero cosi importante? Su internet non trovo esercizi spiegati con questo metodo uff

maurer
Finalmente...

Allora, il metodo di Gauss è il metodo di riduzione per righe. Puoi chiamarlo come vuoi. L'idea è di combinare tre operazioni elementari sulle righe (che non alterano l'insieme delle soluzioni) per portare la matrice in una forma in cui è facile leggere il rango ed in cui, se la matrice corrisponde ad un sistema, puoi facilmente leggere le soluzioni. Le operazioni consentite sono
    1. scambiare due righe tra di loro. Convenzionalmente si denota con [tex]R_i \leftrightarrow R_j[/tex].
    2. moltiplicare una riga per uno scalare non nullo. Si scrive [tex]R_i \to cR_i[/tex] con [tex]c \ne 0[/tex].
    3. sommare ad una riga un multiplo di un'altra: [tex]R_i \to R_i + a R_j[/tex] (qui non serve chiedere [tex]a \ne 0[/tex]).

    Il metodo di Gauss è davvero semplice. Si procede così: al primo passo ci si assicura, tramite un eventuale scambio di righe, di avere in posizione [tex](1,1)[/tex] un elemento non nullo. Possibilmente, cerchi sempre di avere un 1 in prima posizione. L'elemento in posizione [tex](1,1)[/tex] prende il nome di pivot. A questo punto si usa il pivot per far comparire zeri in tutta la prima colonna, al di fuori del primo posto.
    A questo punto si itera, solo che ci concentreremo sulla posizione [tex](2,2)[/tex] ed faremo venire gli zeri nelle posizioni [tex](i,2)[/tex] con [tex]i > 2[/tex]. Eccetera, fintanto che non arrivi in fondo alla matrice.

    Esempio: Consideriamo la matrice
    [tex]\left( \begin{matrix} 1 & 3 & 4 \\ 3 & 6 & 5 \\ -1 & -2 & 2 \end{matrix} \right)[/tex]
    In posizione [tex](1,1)[/tex] c'è già un 1. Quindi non facciamo scambi di righe. Per far venire lo zero in posizione [tex](2,1)[/tex] con un'operazione del tipo [tex]R_2 \to R_2 + \lambda R_1[/tex] (ricorda vogliamo far venire 0, ma solo con un'operazione di quel tipo, in cui la seconda riga è proprio [tex]R_1[/tex]!!!), siamo obbligati a scegliere [tex]\lambda = -3[/tex], perché [tex]3 + (-3)\cdot 1 = 0[/tex]. Operiamo quindi [tex]R_2 \to R_2 - 3 R_1[/tex]. Quindi otteniamo
    [tex]\left( \begin{matrix} 1 & 3 & 4 \\ 0 & -3 & -7 \\ -1 & -2 & 2 \end{matrix} \right)[/tex]
    Adesso vogliamo far venire [tex]0[/tex] in posizione [tex](3,1)[/tex] con un'operazione del tipo [tex]R_3 \to R_3 \to \lambda R_1[/tex]. Quindi [tex]\lambda = 1[/tex]. Operiamo [tex]R_3 \to R_3 + R_1[/tex], ottenendo:
    [tex]\left( \begin{matrix} 1 & 3 & 4 \\ 0 & -3 & -7 \\ 0 & 1 & 6 \end{matrix} \right)[/tex]
    Molto bene. Adesso abbiamo finito di trattare la prima colonna, quindi passiamo alla seconda. Il pivot "attivo" diventa [tex](2,2)[/tex], quindi d'ora in poi vorremo eliminare le righe sottostanti alla seconda con operazioni del tipo [tex]R_i \to R_i + \lambda R_2[/tex] (osserva che d'ora in poi non utilizzeremo mai più la prima riga!). Siccome [tex]-3 \ne 0[/tex], possiamo evitare uno scambio di righe. Per annullare la posizione [tex](3,2)[/tex] con [tex]R_3 \to R_3 + \lambda R_2[/tex] dobbiamo scegliere [tex]\lambda[/tex] in modo che [tex]-3\lambda + 1 = 0[/tex], ossia [tex]\lambda = \frac{1}{3}[/tex]. Adesso [tex]R_3 \to R_3 + \frac{1}{3} R_2[/tex] trasforma la matrice in
    [tex]\left( \begin{matrix} 1 & 3 & 4 \\ 0 & -3 & -7 \\ 0 & 0 & \frac{11}{3} \end{matrix} \right)[/tex]
    Adesso la matrice è ridotta per righe (perché in ogni riga c'è un elemento non nullo al di sotto del quale ci sono solo zeri) e quindi possiamo leggere il rango: il rango è il numero di righe non nulle, quindi 3.

Superandri91
Grazie mille per tutti i calcoli... Cmq mi sembra piu veloce kronecker... Ma per calcolare le soluzioni di un sistema? Dove è l'utilità di gauss? A me interessa piu per le soluzioni! :)

maurer
Quando il sistema è ridotto in forma triangolare superiore tramite l'algoritmo di Gauss, lo puoi risolvere "a cascata", partendo dall'ultima equazione. L'ultima equazione contiene solo una variabile pivot (solo una variabile tout-court se il rango è massimo) che puoi ricavare immediatamente (è un'equazione di primo grado!). Poi sostituisci nelle righe precedenti e ricavi la penultima e così via.

Sei libero, naturalmente, di usare Kronecker, ma ti consiglio di provare a farli gli esercizi.

Superandri91
Li ho fatti... Comunque non ho ancora capito come si calcola la base di una somma di sottospazi... Grazie per tutto l'aouto che mi stai fornendo! :)

maurer
Per la somma è molto facile, a differenza dell'intersezione.
Semplicemente, prendi una base del primo sottospazio, una base del secondo sottospazio, metti tutti i vettori insieme ed applichi l'algoritmo di estrazione di una base. I vettori che ti rimangono forniscono una base della somma.

Superandri91
ok! ma non ho capito due cose rileggendo i vecchi post:
1. quando mi hai scritto la matrice per la risoluzione... le incognite sono 4 ma la base che devo trovare è formata da 3 elementi, non 4!
2. alla pagina precedente del thread, parli di matriche che sarebbe già "ridotta per righe". cosa intendi? e come faccio ad aggiungere una riga a caso per aumentare di uno il rango? ti è andata di fortuna?
grazie ancora!

maurer
Non ho capito qual è il tuo primo dubbio.

Per il secondo, diciamo che una matrice è ridotta per righe se per ogni riga non nulla [tex]R_i[/tex] esiste un elemento [tex]a_{ij} \ne 0[/tex] tale che per ogni [tex]k > j[/tex] si abbia [tex]a_{ik} = 0[/tex]. Prova ad applicare questa definizione e vedrai che quella matrice era effettivamente ridotta per righe.
Ora, si dimostra che il rango di una matrice ridotta per righe è esattamente il numero di righe non nulle. Oppure si definisce il rango in quel modo e si dimostrano le altre formulazioni. Comunque sia il concetto non cambia...

Quindi la mia "magia" si basa su questo trucco: aggiungo una riga in modo che la matrice continui a rimanere ridotta per righe. In questo modo il rango aumenta per forza di uno.

Superandri91
Allora, nella prima cosa che mi hai scritto, l'intersezione dei sottospazi, sei giunto ad un sistema in 4 incognite trasformato in matrice... Bene... Le incognite sono quattro ma la base è formata da tre elementi! Come si risolve?

Superandri91
E tra l'altro non ho ancora capito perchè quella matrice è ridotta per righe, perchè ad esempio nella seconda riga quella ha 0 e poi un numero diverso da zero...

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.