---------------------------------------------------------------------- -- ESERCIZIO 1 ---------------------------------------------------------------------- ---- (a) (-1)*(-2) + (-3)*(-6); -- il prodotto scalare e' 20 ---- (b) -- il prodotto dei moduli di u1 e u2 e' la radice di: (1+9) * (4+36); -- quindi u1 * u2 = |u1| |u2|. -- In generale u1 * u2 = |u1| |u2| * cos(angolo compreso); nel nostro -- caso i vettori sono paralleli (le loro componenti sono proporzionali) -- e quindi l'angolo compreso (0) ha coseno 1. ---- (c) MFE := Mat([ [-1,0], [-3,1] ]); -- Calcolo MEF, l'inversa di MFE E1:=Identity(2); E1[1,1]:=-1; E1 * MFE; E2:=Identity(2); E2[2,1]:=3; E2*E1*MFE; /* Mat([ [1, 0], [0, 1] ]) */ MEF := E2*E1; MEF; /* Mat([ [-1, 0], [-3, 1] ]) */ ---------------------------------------------------------------------- -- ESERCIZIO 2 ---------------------------------------------------------------------- ---- (a) Use Q[x]; --- vettore generico parallelo a u2: x * [1, -2, 3]; -- [x, -2x, 3x] --- quadrato della sua lunghezza: x^2 * (1 + 4 + 9); -- 14x^2 --- quindi, perche' w sia di lunghezza 16*rad(14), devo avere x^2 = 16^2 16 * [1, -2, 3]; -- [16, -32, 48] ---- (b) Use Q[x,y,z]; --- metto a sistema v*u1 = 0 e v*u2 = 0 e ottengo questa matrice completa B := Mat([ [1, -1, 1, 0], [1, -2, 3, 0] ]); --- risolvo il sistema: E1 := Identity(2); E1[2,1] := -1; E1 * B; E2 := Identity(2); E2[2,2] := -1; E2 * E1 * B; E3 := Identity(2); E3[1,2] := 1; E3 * E2 * E1 * B; --- quindi il sistema e' equivalente al sistema x-z=0, y-2z=0 --- e le soluzioni generali sono {(a, 2a, a) | a in R} --- allora, fissato a=1, ottengo un vettore che soddisfa le richieste: V := [1, 2, 1]; --- verifico: 1*1 + 2*(-1) + 1*1; 1*1 + 2*(-2) + 1*3; ---------------------------------------------------------------------- -- ESERCIZIO 3 ---------------------------------------------------------------------- Use Q[a,b,c,d,e]; A := Mat([ [1, 1, a], [1, a, 2], [a, 1, 2] ]); V := Mat([ [0], [0], [0] ]); B := BlockMatrix([[A, V]]); B; -- riduco la prima colonna E1 := Identity(3); E1[2,1] := -1; E2 := Identity(3); E2[3,1] := -a; E2 * E1 * B; /* Mat([ [1, 1, a, 0], [0, a - 1, -a + 2, 0], [0, -a + 1, -a^2 + 2, 0] ]) */ --devo distinguere due casi --(1) a=1 --(2) a<>1 --(1) a=1 BB:=Subst(E2*E1*B,[[a,1]]);--ho sostituito a=1 BB; /* Mat([ [1, 1, 1, 0], [0, 0, 1, 0], [0, 0, 1, 0] ]) */ --pongo y=b (diventa un parametro) Sol:=Mat([[-b],[b],[0]]); --verifico AA := Subst(A, [[a,1]]); AA; VV := Subst(V, [[a,1]]); VV; AA*Sol; --(2) a<>1 E2 * E1 * B; /* Mat([ [1, 1, a, 0], [0, a - 1, -a + 2, 0], [0, -a + 1, -a^2 + 2, 0] ]) */ -- posso dividere per (a-1): E3 := Identity(3); E3[2,2] := 1/(a-1); E4 := Identity(3); E4[3,2] := a-1; E4 * E3 * E2 * E1 * B; /* Mat([ [1, 1, a, 0], [0, 1, (-a + 2)/(a - 1), 0], [0, 0, -a^2 - a + 4, 0] ]) */ -- l'entrata in posizione (3,3) si annulla per a = (-1+/-(rad(17))/2 -- quindi non si annulla per nessun valore appartenente a Q; -- allora posso dividere: E5 := Identity(3); E5[3,3] := 1/(-a^2 - a + 4); E5 * E4 * E3 * E2 * E1 * B; /* Mat([ [1, 1, a, 0], [0, 1, (-a + 2)/(a - 1), 0], [0, 0, 1, 0] ]) */ E6 := Identity(3); E6[1,2] := -1; E6 * E5 * E4 * E3 * E2 * E1 * B; /* Mat([ [1, 0, (a^2 - 2)/(a - 1), 0], [0, 1, (-a + 2)/(a - 1), 0], [0, 0, 1, 0] ]) */ E7 := Identity(3); E7[1,3] := -(a^2 - 2)/(a - 1); E8 := Identity(3); E8[2,3] := -(-a + 2)/(a - 1); E8 * E7 * E6 * E5 * E4 * E3 * E2 * E1 * B; /* Mat([ [1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0] ]) */ Sol := Mat([[0],[0],[0]]); --verifico A*Sol; V; -- conclusione -- a=1: infinite soluzioni Mat([[-b],[b],[0]]) -- per tutti gli altri casi: unica soluzione Mat([[0],[0],[0]]) ---------------------------------------------------------------------- -- ESERCIZIO 4 ---------------------------------------------------------------------- ---- (a) -- moltiplico le due matrici: (proprieta' distributiva) -- (I+A) (I-A+A^2) = (I-A+A^2) + A (I-A+A^2) = I-A+A^2 + A-A^2+A^3 = I+A^3 -- e dall'ipotesi A^3=0 segue che il prodotto e' l'identita' e quindi -- le matrici sono una l'inversa dell'altra. ---- (b) -- (I+A) (I-A+A^2...+(-1)^(k-1)A^(k-1)) -- = I-A+A^2...+(-1)^(k-1)A^(k-1) + A-A^2+A^3...+(-1)^(k-1)A^k -- = I +(-1)^(k-1)A^k -- quindi, se A^k=0, I-A+A^2...+(-1)^(k-1)A^(k-1) e' l'inversa di I+A ---- (c) -- no: per esempio se A=-I, allora I+A e' la matrice nulla -- (che non e' invertibile) ---------------------------------------------------------------------- -- ESERCIZIO 5 ---------------------------------------------------------------------- A := Mat([ [5/3, 0, 3/2, 1], [-2/3, -3, -1/2, -1], [1/2, -2, 2, 1], [-1, 1/4, -1, -3/2] ]); --- riduco la prima colonna E1 := Identity(4); E1[1,1] := 3/5; E1 * A; E2 := Identity(4); E2[2,1] := 2/3; E3 := Identity(4); E3[3,1] := -1/2; E4 := Identity(4); E4[4,1] := 1; E4 * E3 * E2 * E1 * A; /* Mat([ [1, 0, 9/10, 3/5], [0, -3, 1/10, -3/5], [0, -2, 31/20, 7/10], [0, 1/4, -1/10, -9/10] ]) */ --- riduco la seconda colonna E5 := Identity(4); E5[2,2] := -1/3; E5 * E4 * E3 * E2 * E1 * A; E6 := Identity(4); E6[3,2] := 2; E7 := Identity(4); E7[4,2] := -1/4; E7 * E6 * E5 * E4 * E3 * E2 * E1 * A; /* Mat([ [1, 0, 9/10, 3/5], [0, 1, -1/30, 1/5], [0, 0, 89/60, 11/10], [0, 0, -11/120, -19/20] ]) */ --- riduco la terza colonna E8 := Identity(4); E8[3,3] := 60/89; E9 := Identity(4); E9[4,3] := 11/120; E9 * E8 * E7 * E6 * E5 * E4 * E3 * E2 * E1 * A; /* Mat([ [1, 0, 9/10, 3/5], [0, 1, -1/30, 1/5], [0, 0, 1, 66/89], [0, 0, 0, -157/178] ]) */ E10 := Identity(4); E10[4,4] := -178/157; E10 * E9 * E8 * E7 * E6 * E5 * E4 * E3 * E2 * E1 * A; /* Mat([ [1, 0, 9/10, 3/5], [0, 1, -1/30, 1/5], [0, 0, 1, 66/89], [0, 0, 0, 1] ]) */ EInf := E10 * E9 * E8 * E7 * E6 * E5 * E4 * E3 * E2 * E1; -- ho trovato la forma triangolere superiore -- ora riduco sopra la diagonale E1 := Identity(4); E1[1,3] := -9/10; E2 := Identity(4); E2[2,3] := 1/30; E2 * E1 * EInf * A; /* Mat([ [1, 0, 0, -6/89], [0, 1, 0, 20/89], [0, 0, 1, 66/89], [0, 0, 0, 1] ]) */ E3 := Identity(4); E3[1,4] := 6/89; E4 := Identity(4); E4[2,4] := -20/89; E5 := Identity(4); E5[3,4] := -66/89; E5 * E4 * E3 * E2 * E1 * EInf * A; /* Mat([ [1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1] ]) */ -- ho ottenuto la matrice identica InvA := E5 * E4 * E3 * E2 * E1 * EInf; InvA; -- InvA e' la matrice inversa --infatti: Identity(4) = InvA * A;