Capitolo 2. Matrici e Determinanti.

Esercizio 4, Capitolo 2 (Abbena-Gianella). Data la matrice A nel parametro h:
             (1    -3   1    2 )   h    0    0    0   1    -1   0    0   0    0    0    h
determinare per quali valori di h è invertibile, e in questi casi scrivere l'inverso di A.

Suggerimenti. Ripulire (col comando Clear) la variabile h. Definire una matrice A e disegnarla per controllo (usare MatrixForm). Risolvere l'equazione (in h) Det[A]=0.

In[300]:=

Clear[h]

In[301]:=

A = {<br />     {1, -3, 1, 2}, <br />     {h, 0, 0, 0} ... sp;    {1, -1, 0, 0}, <br />     {0, 0, 0, h}} ; MatrixForm[A]

Out[302]//MatrixForm=

( 1    -3   1    2  )            h    0    0    0            1    -1   0    0            0    0    0    h

In[303]:=

Det[A]

Out[303]=

-h^2

In[304]:=

Solve[Det[A] == 0, h]

Out[304]=

{{h0}, {h0}}

La matrice risulta invertibile per i valori di h diversi da quelli trovati sopra. Usando il comando Inverse possiamo calcolare la formula per la matrice inversa (esistente, però, solo quando Det[A] è diverso da 0).

In[305]:=

A ' = Inverse[A] ; MatrixForm[A ']

Out[306]//MatrixForm=

(      1            )                -           0    h    0    0              ...     h    -3    h                           1                          -           0    0    0    h

Esercizio 15, Capitolo 2 (Abbena-Gianella). Data la matrice rettangolare e i vettori:
A = (2    -3   -2   1 )   4    -6   1    -2   6    -9   -1   -1, X = (x1)   x2   x3   x4
B1 = (1)   2   0, B2 = (1)   2   3, B3 = (0)   0   0
discutere e risolvere le equazioni AX=B1, AX=B2, AX=B3.

Suggerimenti. Ripulire x1, x2, x3, x4, e definire la matrice A e i vettori (liste) B, B1, B2, B3, controllando con MatrixForm i dati inseriti.

In[307]:=

Clear[x1, x2, x3, x4]

In[308]:=

A = {<br />         {2, -3, -2, 1}, <br />   ... , 0} ; MatrixForm[A] MatrixForm[A . X] MatrixForm[X] MatrixForm[B1] MatrixForm[B2] MatrixForm[B3]

Out[313]//MatrixForm=

( 2    -3   -2   1  )            4    -6   1    -2            6    -9   -1   -1

Out[314]//MatrixForm=

( 2 x1 - 3 x2 - 2 x3 + x4 )            4 x1 - 6 x2 + x3 - 2 x4            6 x1 - 9 x2 - x3 - x4

Out[315]//MatrixForm=

( x1 )            x2            x3            x4

Out[316]//MatrixForm=

( 1 )            2            0

Out[317]//MatrixForm=

( 1 )            2            3

Out[318]//MatrixForm=

( 0 )            0            0

Lo spazio delle soluzioni (qualora non sia vuoto), per matrici rettangolari ha dimensione pari al numero delle variabili (4, in questo caso) meno il rango (il numero di righe non tutte nulle) della forma ridotta di A. Calcoliamolo usando il comando RowReduce, che ci dà la forma ridotta di una matrice:

In[319]:=

MatrixForm[RowReduce[A]]

Out[319]//MatrixForm=

(        3           3  )                 --          ---           1      2   ...   4                             --           0     0     1      5              0     0     0     0

La dimensione dello spazio delle soluzioni (sempre qualora non sia vuoto) si può alternativamente calcolare come la lunghezza di una base dello spazio delle soluzioni di AX=0. Una tale base si può generare con il comando NullSpace, applicato alla matrice A.

In[320]:=

MatrixForm[NullSpace[A]] Length[NullSpace[A]]

Out[320]//MatrixForm=

( 3    0    8    10 )            3    2    0    0

Out[321]=

2

Risolviamo ora le equazioni AX = B1, B2, B3, e notiamo che lo spazio delle soluzioni (quando non è vuoto) ha sempre la soluzione calcolata in precedenza. Non c'è differenza, in questo caso, tra le risposte ottenute con Solve e Reduce, tranne che nella forma. Per esempio, AX=B1 non ha soluzioni. Quindi Solve ci risponderà {} (lista vuota di condizioni), mentre Reduce ci risponderà False (la costante logica che definisce appunto l'insieme vuoto).

In[322]:=

Solve[A . X == B1] Reduce[A . X == B1]

Out[322]=

{}

Out[323]=

False

In[324]:=

Solve[A . X == B2] Reduce[A . X == B2]

Solve :: svars : Equations may not give solutions for all \"solve\" variables.  More…

Out[324]=

{{x11/2 + (3 x2)/2 + (3 x4)/10, x3 (4 x4)/5}}

Out[325]=

x3 (4 x4)/5&&x11/2 + (3 x2)/2 + (3 x4)/10

In[326]:=

Solve[A . X == B3] Reduce[A . X == B3]

Solve :: svars : Equations may not give solutions for all \"solve\" variables.  More…

Out[326]=

{{x1 (3 x2)/2 + (3 x4)/10, x3 (4 x4)/5}}

Out[327]=

x3 (4 x4)/5&&x1 (3 x2)/2 + (3 x4)/10


Created by Mathematica  (August 4, 2004)