Finne invertibel matrise med MATLAB

Her kan du stille spørsmål vedrørende problemer og oppgaver i matematikk på høyskolenivå. Alle som har kunnskapen er velkommen med et svar. Men, ikke forvent at admin i matematikk.net er spesielt aktive her.

Moderatorer: Vektormannen, espen180, Aleks855, Solar Plexsus, Gustav, Nebuchadnezzar, Janhaa

Svar
Flabbrø
Cayley
Cayley
Innlegg: 52
Registrert: 22/04-2013 19:00

Gitt matrisen [tex]A=\begin{pmatrix} 1 & 5 & 1\\ 2 & 1 & 2\\ 3 & 2 & 9\\ 4 & 3 & 1\\ \end{pmatrix}[/tex]

Bruk MATLAB til å finne en invertibel matrise B slik at multiplikasjon av A med B fra venstre bringer A på redusert trappeform.

Hvordan kan jeg gjøre det? Takk for alle svar.
Emilga
Riemann
Riemann
Innlegg: 1552
Registrert: 20/12-2006 19:21
Sted: NTNU

Bruk funksjonen lu.
Flabbrø
Cayley
Cayley
Innlegg: 52
Registrert: 22/04-2013 19:00

Må innrømme at jeg ikke ser helt hvordan det skal gjøres med lu. Kunne du utdypet litt?

Jeg tenkte at det kunne gjøres slik:

Kode: Velg alt

>> A = [1 5 1; 2 1 2; 3 2 9; 4 3 1];
>> B = sym(rref(A)/A)
 
B =
 
[ -25/141, 0, -2/141,  43/141]
[   11/47, 0,  -1/47,   -2/47]
[   1/141, 0, 17/141, -13/141]
[       0, 0,      0,       0]
 
>> B*A
 
ans =
 
[ 1, 0, 0]
[ 0, 1, 0]
[ 0, 0, 1]
[ 0, 0, 0]

>> rref(A)

ans =

     1     0     0
     0     1     0
     0     0     1
     0     0     0

Men denne matrisen B er jo åpenbart ikke invertibel: den har en søyle med bare nuller.
Emilga
Riemann
Riemann
Innlegg: 1552
Registrert: 20/12-2006 19:21
Sted: NTNU

Antar at matrisen B er definert. Kjør scriptet:

Kode: Velg alt

[L U] = lu(B);
Da er [tex]L^{-1}[/tex] matrisen du er ute etter, siden [tex]L^{-1}B = U[/tex].

Bruk "help lu" for å finne ut hvordan lu-funksjonen funker. :)
Flabbrø
Cayley
Cayley
Innlegg: 52
Registrert: 22/04-2013 19:00

Men L-en jeg får er ikke invertibel, og U er ikke den reduserte trapperformen av B (kalt A i åpningsinnlegget). Er det noe mer jeg skal gjøre?

Kode: Velg alt

>> B = [1 5 1; 2 1 2; 3 2 9; 4 3 1];
>> [L U] = lu(B)                    

L =

    0.2500    1.0000         0
    0.5000   -0.1176    0.1915
    0.7500   -0.0588    1.0000
    1.0000         0         0


U =

    4.0000    3.0000    1.0000
         0    4.2500    0.7500
         0         0    8.2941
Gustav
Tyrann
Tyrann
Innlegg: 4562
Registrert: 12/12-2008 12:44

Kode: Velg alt

>> B = [1 5 1; 2 1 2; 3 2 9; 4 3 1];
>> [L U]=lu(B);
>> C=pinv(L);
>> C*B

ans =

    4.0000    3.0000    1.0000
   -0.0000    4.2500    0.7500
   -0.0000   -0.0000    8.2941

>> U

U =

    4.0000    3.0000    1.0000
         0    4.2500    0.7500
         0         0    8.2941
Funksjonen pinv(L) er pseudoinversen av L. Det som gjenstår er å finne en matrise man kan gange U med fra høyre som bringer U på redusert form.
Flabbrø
Cayley
Cayley
Innlegg: 52
Registrert: 22/04-2013 19:00

Hvis vi kaller den matrisen X, så kan vel det gjøres slik:

Kode: Velg alt

>> B = [1 5 1; 2 1 2; 3 2 9; 4 3 1];
>> [L U]=lu(B);
>> C=pinv(L);
>> [V W]=lu(U) 

V =

     1     0     0
     0     1     0
     0     0     1


W =

    4.0000    3.0000    1.0000
         0    4.2500    0.7500
         0         0    8.2941

>> X = inv(W)

X =

    0.2500   -0.1765   -0.0142
         0    0.2353   -0.0213
         0         0    0.1206

>> U*X

ans =

    1.0000         0         0
         0    1.0000    0.0000
         0         0    1.0000

Men hvordan finner jeg så matrisen jeg kan multiplisere B (A i åpningsinnlegget) med fra venstre slik at jeg får [tex]\begin{pmatrix} 1 & 0 & 0\\ 0 & 1 & 0\\ 0 & 0 & 1\\ 0 & 0 & 0\\ \end{pmatrix}[/tex]? Beklager om jeg er treig eller har uttrykt meg uklart.

Jeg vet ikke om det kan være relevant, men første del av oppgaven var å finne en maksimal undermengde av søylevektorene i [tex]\begin{pmatrix} 1 & 5 & 1 & 5\\ 2 & 1 & 2 & 1\\ 3 & 2 & 9 & -4\\ 4 & 3 & 1 & 6\\ \end{pmatrix}[/tex] slik at disse er lineært uavhengige. Matrisen A (som skiftet navn til B innlegg #4) er den man får når den eller de overflødige søylene er fjernet. Min løsning var å ta bort den siste av søylene.
Flabbrø
Cayley
Cayley
Innlegg: 52
Registrert: 22/04-2013 19:00

Det ble til at jeg fant [tex]B^{-1}[/tex] for hånd, og brukte MATLAB for å invertere den.
Svar