Applicazioni lineari con spazi matrici

E' sufficiente usare le funzioni già scritte (vedi "Matrice associata da applicazione lineare" e "Dimensione e base di nucleo e immagine") semplicemente mettendo le matrici in riga (convertire spazio \(Mat(m,n)\) in \(\mathbb{R}^{m \times n}\).

Calcolo matrice associata

Esempio 1 applicazione lineare definita in spazio matriciale esplicitamente

\(F(x,y,z)=(\begin{bmatrix}y&x+2y\\3x-y&x+z\end{bmatrix})\) Rispetto alle basi canoniche dei rispettivi spazi (\(\mathbb{R}^3\) e \(Mat(2,2,\mathbb{R})\)) deve risultare come matrice associata \(\begin{bmatrix}0&1&0\\1&2&0\\3&-1&0\\1&0&1\end{bmatrix}\):

base_dominio = sp.eye(3)
"""Base canonica 'appiattita' su righe"""
base_codominio = sp.eye(4)

x,y,z = sp.symbols("x y z")
definizione = [y, x+2*y, 3*x-y, x+z]

A = matriceAssociataDaFormaEsplicita(definizione, base_dominio, base_codominio, [x,y,z])
print(sp.latex(A))

\(\left[\begin{matrix}0 & 1 & 0\\1 & 2 & 0\\3 & -1 & 0\\1 & 0 & 1\end{matrix}\right]\)

Come da esercizio.

Esempio 2 applicazione lineare definita in spazio matriciale esplicitamente

base_dominio = sp.eye(6)
base_codominio = sp.Matrix([[1,1],[0,2]])

a,b,c,d,e,f = sp.symbols("a b c d e f")
definizione = [a+2*b+3*c,d+4*e-2*f]

A = matriceAssociataDaFormaEsplicita(definizione, base_dominio, base_codominio, [a,b,c,d,e,f])
print(A)

\(\left[\begin{matrix}1 & 2 & 3 & 0 & 0 & 0\\- \frac{1}{2} & -1 & - \frac{3}{2} & \frac{1}{2} & 2 & -1\end{matrix}\right]\)

Come da esercizio.

Calcolo dimensione/base nucleo/immagine

Esempio base nucleo di applicazione lineare definita in spazio matriciale esplicitamente

x,y,z = sp.symbols("x y z")
definizione = [y, x+2*y, 3*x-y,x+z]
b_v = sp.eye(3)
b_w = sp.eye(4)

print(baseNucleo(b_v, b_w, definizione=definizione, incognite=[x,y,z]))

Non ammette soluzioni

Come da esercizio.

Esempio base immagine di applicazione lineare definita in spazio matriciale esplicitamente

x,y,z = sp.symbols("x y z")
definizione = [y, x+2*y, 3*x-y,x+z]
b_v = sp.eye(3)
b_w = sp.eye(4)

base_immagine = baseImmagine(b_v, b_w, definizione=definizione, incognite=[x,y,z])
print(sp.latex(base_immagine))

\(\left[\begin{matrix}0 & 1 & 3 & 1\\1 & 2 & -1 & 0\\0 & 0 & 0 & 1\end{matrix}\right]\)

Come da esercizio.

Esempio base nucleo di applicazione lineare definita in spazio matriciale da immagini

x,y = sp.symbols("x y")

preimmagini = [sp.Matrix([[1,0,2]]), sp.Matrix([[1,-1,0]])]
immagini = [sp.Matrix([[2,4,4,0]]), sp.Matrix([[1,2,2,0]])]

b_v = sp.Matrix([[1,0,2],[1,-1,0]])
b_w = sp.Matrix([[1,0,0,0],[0,1,1,0],[0,0,0,1]])

base_nucleo = baseNucleo(b_v, b_w, preimmagini=preimmagini, immagini=immagini, incognite=[x,y])
print(sp.latex(base_nucleo))

\(\left[\begin{matrix}-1 & 2 & 2\end{matrix}\right]\)

Esempio base immagine di applicazione lineare definita in spazio matriciale da immagini

x,y = sp.symbols("x y")

preimmagini = [sp.Matrix([[1,0,2]]), sp.Matrix([[1,-1,0]])]
immagini = [sp.Matrix([[2,4,4,0]]), sp.Matrix([[1,2,2,0]])]

b_v = sp.Matrix([[1,0,2],[1,-1,0]])
b_w = sp.Matrix([[1,0,0,0],[0,1,1,0],[0,0,0,1]])

base_immagine = baseImmagine(b_v, b_w, preimmagini=preimmagini, immagini=immagini, incognite=[x,y])
print(sp.latex(base_immagine))

\(\left[\begin{matrix}2 & 4 & 4 & 0\end{matrix}\right]\)

La soluzione differisce dall'esercizio perchè ha scelto una base di \(C\) diversa, ma è comunque coerente.

Riferimenti

  • https://www.youmath.it/lezioni/algebra-lineare/applicazioni-lineari/766-applicazioni-lineari-su-spazi-di-matrici.html