---soluzione esercizi asswgnati 26 Maggio 2020 ---Esercizio 1 ---abbiamo quattro punti, ciascuno con molteplicità 2 K[x]/(x+2)^2 R=QQ[x] f=((x+2)*(x+1)*(x-1)*(x-2))^2 g2=sub(f/(x-2)^2,R) g1=sub(f/(x-1)^2,R) gm1=sub(f/(x+1)^2,R) gm2=sub(f/(x+2)^2,R) bb=(quotientRemainder(matrix{{1_R}},matrix{{gm2,gm1,g1,g2}}))_0 ---a=(matrix{{gm2*(1+(x+2)),gm1*(-1-(x+1)),g1*(1+(x-1)),g2*(-1-(x-2))}}*bb)_(0,0) a=(matrix{{gm2*(1+(x+2)),gm1*(-1-(x+1)),g1*(1-(x-1)),g2*(-1+(x-2))}}*bb)_(0,0) aa=a%ideal(f) sub(aa,x=>-2) sub(diff(x,aa),x=>-2) toString(aa) ---esercizio 2 restart R=QQ[x] a=mutableMatrix(R,10,10) for i from 0 to 9 do for j from 0 to 9 do a_(i,j)=1/((i+1)^2+j+1) a=matrix a eigenvalues sub(a,CC) rank a det(a) discriminant(det(a-x*a^0),x)----e' non nullo ---in aritmetica esatta i dieci autovalori di a sono distinti !! ---quindi A è diagonalizzabile su C ---il polinomio minimo coincide col polinomio caratteristico f=det(a-x*a^0) I=ideal(f) bb=sub(basis (R/I),R) d=numcols bb --prima colonna della matrice compagna comp=sub(contract(transpose bb,(bb_(0,0))*x%I),x=>0_QQ) --aggiungo le colonne for i from 1 to (d-1) do comp=comp|sub(contract(transpose bb,(bb_(0,i))*x%I),x=>0_QQ) comp ---calcolo degli autovalori approssimati sol=eigenvalues comp ---costruzione della matrice bezoutiante (matrice della forma traccia) b=mutableMatrix(R,d,d) for i from 0 to d-1 do for j from 0 to d-1 do b_(i,j)=trace(comp^(i+j)) bez=matrix b bez_(0,1) for i from 1 to 9 do print(i,det submatrix(bez,{0..i},{0..i})) ------sono tutti positivi, quindi la bezoutiante è definita positiva, ---gli autovalori sono tutti reali, quindi A è diagonalizzabile sui reali b=mutableMatrix(R,d,d) for i from 0 to d-1 do for j from 0 to d-1 do b_(i,j)=trace(comp^(i+j+1)) bez=matrix b; ----se questa bez è definita positiva, allora le radici sono tutte reali positive ---quindi le radici reali sono positive ----come posso contare in aritmetica esatta le radici comprese ----nell'intervallo (0,1/10)---mi aspetto 8 radici in questo intervallo ----considero il polinomio h(x)=10x-1 b=mutableMatrix(R,d,d) for i from 0 to d-1 do for j from 0 to d-1 do b_(i,j)=trace(comp^(i+j)*(-10*comp+comp^0)) bez=matrix b; bez_(0,0)----è positivo---- eigenvalues sub(bez,CC) g=det(bez-x*bez^0);---ci sono esattamente 8 variazioni, quindi la segnatura è (8,2) for i from 0 to 10 do if sub(diff(x^i,g),x=>0)>0 then print(i,+1) else print(i,-1) ---pertanto ci sono 8 radici reali nell'intervallo (0,1/10) ---esercizio 3 restart R=QQ[a_(0,0)..a_(4,4),x] aa=transpose genericMatrix(R,a_(0,0),5,5) m=matrix{{-5/2,1/2,0,0,0},{-1/2,-3/2,0,0,0},{0,0,-2_R,1,0},{0,0,0,-2,0},{0,0,0,0,3}} discriminant(det(m-x*m^0),x) ---voglio trasformare la matrice 5x5 in un vettore con 25 componenti aux=diff(matrix{{a_(0,0)..a_(4,4)}},trace(aa*m^0)) for i from 1 to 5 do (aux=aux||diff(matrix{{a_(0,0)..a_(4,4)}},trace(aa*m^i)),print(i,rank aux)) ---il polinomio minimo ha grado 3, e divide il polinomio caratteristico ----m^0, m^1, m^2, m^3 sono dipendenti, la dipendenza lineare mi dà il polinomio ---minimo aux=diff(matrix{{a_(0,0)..a_(4,4)}},trace(aa*m^0)) for i from 1 to 3 do (aux=aux||diff(matrix{{a_(0,0)..a_(4,4)}},trace(aa*m^i)),print(i,rank aux)) aux minpoly=(matrix{{1,x,x^2,x^3}}*gens kernel transpose aux)_(0,0)---polinomio minimo discriminant(minpoly,x)---viene zero !! ---quindi il polinomio ha radici ripetute, la matrice non è diagonalizzabile, ---neanche su C factor minpoly factor det(m-x*m^0) ----autovalore -2 ha molt algebrica 4--- aux ----se le 6 righe sono indipendenti allora il polinomio minimo coincide col polinomio caratteristico ----sicuramente la matrice non è diagonalizzabile rank(aux)