verzija: SageMath 9.4
load('MMZI.sage')
%display latex
Neka su $U$ i $V$ vektorski prostori nad istim poljem $F$, a $f:U\to V$ preslikavanje. Kažemo da je $f$ linearni operator ako za svaki $\alpha,\beta\in F$ i za sve $a,b\in U$ vrijedi $f(\alpha a+\beta b)=\alpha f(a)+\beta f(b)$.
Jesu li sljedeća preslikavanja linearni operatori?
Moramo provjeriti da vrijedi jednakost iz definicije linearnog operatora. U tu svrhu posebno ćemo raspisati lijevu i desnu stranu te jednakosti i provjeriti jesu li one jednake.
var("x_1 x_2 x_3 y_1 y_2 y_3 k l")
a) dio
a=vector((x_1,x_2,x_3))
b=vector((y_1,y_2,y_3))
f(x_1,x_2,x_3)=x_1
lijeva strana
f(*(k*a+l*b))
desna strana
k*f(*a)+l*f(*b)
Kako su lijeva i desna strana jednake, zaključujemo da je $f$ linearni operator.
b) dio
a=vector((x_1,x_2))
b=vector((y_1,y_2))
g(x_1,x_2)=x_1*x_2
lijeva strana
g(*(k*a+l*b))
expand(g(*(k*a+l*b)))
desna strana
k*g(*a)+l*g(*b)
Kako su lijeva i desna strana općenito različite, zaključujemo da $g$ nije linearni operator.
c) dio
a=vector((x_1,x_2,x_3))
b=vector((y_1,y_2,y_3))
h(x_1,x_2,x_3)=(2*x_1+x_2-x_3,x_3,x_1+x_2)
lijeva strana
lijevo=h(*(k*a+l*b)); lijevo
desna strana
desno=k*h(*a)+l*h(*b); desno
razlika lijeve i desne strane je nulvektor pa je $h$ linearni operator
lijevo-desno
vector(lijevo-desno).apply_map(lambda t: expand(t))
U datoteci OPM.sage implementirane su četiri funkcije koje će ubrzavati rad s linearnim operatorima preko njihovih matričnih zapisa. U zadacima budu pokazane primjene tih funkcija, a ovdje dajemo samo kratki opis tih funkcija.
Neka je $f:\mathbb{R}^3\to\mathbb{R}^3$ operator zadan s $f(x,y,z)=(2x,4x-y,2x+3y-z)$.
var("x_1 y_1 z_1 x_2 y_2 z_2 k l")
def f(x,y,z):
return (2*x,4*x-y,2*x+3*y-z)
a) dio
a=vector((x_1,y_1,z_1))
b=vector((x_2,y_2,z_2))
lijevo=f(*(k*a+l*b))
desno=k*vector(f(*a))+l*vector(f(*b))
vector(lijevo)-desno
vector(lijevo).apply_map(lambda t: expand(t))-desno.apply_map(lambda t: expand(t))
b) dio
operator_kan(f)
operator_kan(lambda x,y,z:(2*x,4*x-y,2*x+3*y-z))
c) dio
pomoću formule
f(4,3,1)
pomoću matričnog zapisa u kanonskoj bazi
operator_kan(f)*vector((4,3,1))
d) dio
M=operator_kanbaza(f,[(1,0,0),(1,1,0),(3,4,5)]); M
Možemo i matricu $M$ iskoristiti kod računanja slike vektora $(4,3,1)$ za b) dio zadatka, no moramo biti oprezni. U nastavku opisujemo detalje tog računa ako koristimo matricu $M$.
Najprije moramo pronaći koordinate vektora $(4,3,1)$ u bazi $\mathcal{B}$.
V=VectorSpace(QQ,3).span_of_basis([(1,0,0),(1,1,0),(3,4,5)])
w=V.coordinates((4,3,1)); w
Nakon toga pomnožimo matricu $M$ s koordinatnom matricom vektora $(4,3,1)$ u bazi $\mathcal{B}$. Dobivamo koordinate slike vektora $(4,3,1)$, ali u bazi $\mathcal{B}$.
slika=M*vector(w); slika
Nije problem dobiti koordinate te slike u kanonskoj bazi i vidimo da se radi o istom vektoru kojeg smo dobili i u b) dijelu zadatka, samo što smo ovdje radili u drugoj bazi.
V.linear_combination_of_basis(slika)
Odredite matricu linearnog operatora $f:\mathbb{R}^2\to\mathbb{R}^3$ zadanog s $f(x,y)=(x+y, x-2y, 3y)$ u
def f(x,y):
return (x+y,x-2*y,3*y)
a) dio
F1=operator_kan(f); F1
b) dio
F2=operator_kanbaza(f,[(1,-1),(1,0)],[(0,1,0),(1,2,0),(1,1,1)]); F2
c) dio
pomoću formule
f(4,1)
pomoću matrice $F_1$
F1*vector((4,1))
pomoću matrice $F_2$ - najprije pronađemo koordinate vektora $(4,1)$ u bazi $A'$
V=VectorSpace(QQ,2).span_of_basis([(1,-1),(1,0)])
w=V.coordinates((4,1)); w
Nakon toga pomnožimo matricu $F_2$ s koordinatnom matricom vektora $(4,1)$ u bazi $A'$ i dobivamo koordinate slike vektora $(4,1)$ u bazi $B'$
slika=F2*vector(w); slika
Možemo provjeriti da je to zaista vektor $(5,2,3)$
U=VectorSpace(QQ,3).span_of_basis([(0,1,0),(1,2,0),(1,1,1)])
U.linear_combination_of_basis(slika)
Odredite matricu linearnog operatora $R:\mathbb{R}^3\to M_2(\mathbb{R})$ zadanog s $R(x,y,z)=\begin{bmatrix}x-y&y-z\\ z-x&x+2y+3z\end{bmatrix}$ u paru kanonskih baza.
operator_kan(lambda x,y,z:(x-y,y-z,z-x,x+2*y+3*z))
Linearni operator $f:\mathbb{R}^3\to\mathbb{R}^3$ ima u bazi $\mathcal{B}=\{(1,1,1), (1,2,1), (0,1,2)\}$ matrični prikaz
$$F=\begin{bmatrix}1&0&2\\ 1&1&1\\ 1&0&1\end{bmatrix}$$
Nađite mu matrični prikaz u bazi $\mathcal{C}=\big\{(1,0,1), (-1,0,1), (0,2,0)\big\}$.
operator_baza(matrix([[1,0,2],[1,1,1],[1,0,1]]),[(1,1,1),(1,2,1),(0,1,2)],[(1,0,1),(-1,0,1),(0,2,0)])
Neka je $f:U\to V$ linearni operator. Slika od $f$ je skup $$\mathrm{Im}\,{f}=\big\{f(x) : x\in U\big\},$$ a jezgra od $f$ je skup $$\mathrm{Ker}\,{f}=\big\{x\in U : f(x)=\theta_{V}\big\}.$$ Slika linearnog operatora $f$ je potprostor od $V$, a jezgra linearnog operatora $f$ je potprostor od $U$. Rang linearnog operatora je dimenzija njegove slike, a defekt linearnog operatora je dimenzija njegove jezgre.
Linearni operator je injekcija ako i samo ako je njegov defekt jednak 0. Linearni operator je surjekcija ako i samo ako je njegov rang jednak dimenziji njegove kodomene (uz pretpostavku da je kodomena konačne dimenzije).
Neka je $f:U\to V$ linearni operator. Tada vrijedi $r(f)+d(f)=\dim{U}$.
Na $M_2(\mathbb{R})$ definiramo funkciju $\mathrm{tr}$ zvanu trag s
$$\mathrm{tr}\left(\begin{bmatrix}a&b\\ c&d\end{bmatrix}\right)=a+d.$$
Dokažite da je $\mathrm{tr}:M_2(\mathbb{R})\to\mathbb{R}$ linearni operator i pronađite mu jezgru.
var("a_1 b_1 c_1 d_1 a_2 b_2 c_2 d_2")
m1=vector((a_1,b_1,c_1,d_1))
m2=vector((a_2,b_2,c_2,d_2))
tr(a,b,c,d)=a+d
dokaz da je $\mathrm{tr}$ linearni operator
lijevo=tr(*(k*m1+l*m2)); lijevo
desno=k*tr(*m1)+l*tr(*m2); desno
lijevo-desno
expand(lijevo-desno)
jezgra linearnog operatora
M=operator_kan(lambda a,b,c,d: (a+d,)); M
Jedna baza za jezgru: $\bigg\{\begin{bmatrix}1&0\\ 0&-1\end{bmatrix}, \begin{bmatrix}0&1\\ 0&0\end{bmatrix}, \begin{bmatrix}0&0\\ 1&0\end{bmatrix}\bigg\}$
M.right_kernel()
M.right_nullity()
Dokažite da su sljedeća preslikavanja linearni operatori te im odredite sliku, jezgru, rang i defekt.
var("x_1 x_2 x_3 x_4 x_5 y_1 y_2 y_3 y_4 y_5 k l")
a) dio
dokaz da je $f$ linearni operator
f(x_1,x_2,x_3)=(x_1,x_2+x_3)
a=vector((x_1,x_2,x_3))
b=vector((y_1,y_2,y_3))
lijevo=f(*(k*a+l*b))
desno=k*f(*a)+l*f(*b)
lijevo,desno
lijevo.apply_map(lambda t: expand(t))-desno.apply_map(lambda t: expand(t))
matrica operatora $f$ u paru kanonskih baza
F=operator_kan(lambda x,y,z: (x,y+z)); F
jedna baza za jezgru: $\mathcal{B}_{\mathrm{Ker}\,f}=\{(0,1,-1)\}$, defekt operatora $f$: $d(f)=1$ pa $f$ nije injekcija
F.right_kernel()
Ako matricu $F$ gledamo nad poljem $\mathbb{Q}$, dobivamo ponovo istu bazu za jezgru u ovom slučaju.
F.change_ring(QQ).right_kernel()
F.right_nullity()
Slika operatora $f$: stupci matrice $F$ čine skup izvodnica za $\mathrm{Im}\,f$
F.echelon_form()
Iz retčane kanonske forme matrice $F$ je jasno da prva dva stupca matrice $F$ čine bazu za sliku (dapače, u ovom slučaju je to već jasno i iz same matrice $F$). Dakle, $\mathcal{B}_{\mathrm{Im}\,f}=\{(1,0), (0,1)\}$ pa je $r(f)=2$, tj. $\mathrm{Im}\,f=\mathbb{R}^2$ pa je $f$ surjekcija.
b) dio
dokaz da je $g$ linearni operator
g(x_1,x_2,x_3)=(x_3,x_2,x_1)
a=vector((x_1,x_2,x_3))
b=vector((y_1,y_2,y_3))
lijevo=g(*(k*a+l*b))
desno=k*g(*a)+l*g(*b)
lijevo,desno
lijevo-desno
matrica operatora $g$ u paru kanonskih baza
G=operator_kan(lambda x,y,z:(z,y,x)); G
Jezgra operatora $g$ je trivijalna, tj. $\mathrm{Ker}\,g=\{(0,0,0)\}$ pa nema bazu. Stoga je $d(g)=0$ pa je $g$ injekcija.
G.right_kernel()
G.right_nullity()
Slika operatora $g$: Stupci matrice $G$ čine skup izvodnica za sliku, ali je jasno da su oni i linearno nezavisni pa čine jednu bazu za sliku. Stoga je $r(g)=3$, što je jednako dimenziji kodomene pa je $g$ surjekcija. Dakle, linearni operator $g$ je bijekcija pa je to jedan primjer izomorfizma.
c) dio
dokaz da je $h$ linearni operator
h(x_1,x_2,x_3,x_4,x_5)=(0,4*x_1+x_3,0,2*x_5)
a=vector((x_1,x_2,x_3,x_4,x_5))
b=vector((y_1,y_2,y_3,y_4,y_5))
lijevo=h(*(k*a+l*b))
desno=k*h(*a)+l*h(*b)
lijevo,desno
lijevo-desno.apply_map(lambda t:expand(t))
matrica operatora $h$ u paru kanonskih baza
H=operator_kan(lambda x1,x2,x3,x4,x5:(0,4*x1+x3,0,2*x5)); H
jedna baza za jezgru: $\mathcal{B}_{\mathrm{Ker}\,h}=\{(1,0,-4,0,0), (0,1,0,0,0), (0,0,0,1,0)\}$, defekt operatora $h$: $d(h)=3$ pa $h$ nije injekcija
H.right_kernel()
H.right_nullity()
Slika operatora $h$: stupci matrice $H$ čine skup izvodnica za sliku iz čega je jasno da je jedna baza za sliku $\mathcal{B}_{\mathrm{Im}\,f}=\{(0,1,0,0), (0,0,0,2)\}$. Stoga je $r(h)=2$, što nije jednako dimenziji kodomene pa $h$ nije surjekcija.
Je li preslikavanje $g:M_2(\mathbb{R})\to M_2(\mathbb{R})$ zadano s $g(X)=X\cdot\begin{bmatrix}1&2\\ 1&2\end{bmatrix}$ linearni operator? Ako jest, odredite mu jezgru i sliku.
dokaz da je $g$ linearni operator
def g(X):
return X*matrix([[1,2],[1,2]])
var("a_1 b_1 c_1 d_1 a_2 b_2 c_2 d_2 k l")
A=matrix([[a_1,b_1],[c_1,d_1]])
B=matrix([[a_2,b_2],[c_2,d_2]])
lijevo=g(k*A+l*B)
desno=k*g(A)+l*g(B)
lijevo-desno
expand(lijevo-desno)
vrijednost operatora $g$ na matrici $A=\begin{bmatrix}a_1&b_1\\ c_1&d_1\end{bmatrix}$
g(A)
matrica operatora $g$ u kanonskoj bazi
G=operator_kan(lambda a,b,c,d: (a+b,2*a+2*b,c+d,2*c+2*d)); G
Jedna baza za jezgru: $\mathcal{B}_{\mathrm{Ker}\,g}=\bigg\{\begin{bmatrix}1&-1\\ 0&0\end{bmatrix}, \begin{bmatrix}0&0\\ 1&-1\end{bmatrix}\bigg\}$
G.right_kernel()
Defekt operatora $g$: $d(g)=2$
G.right_nullity()
Stupci matrice $G$ su koordinate vektora u kanonskoj bazi koji čine skup izvodnica za $\mathrm{Im}\,g$. Iz same matrice $G$ je jasno da prvi i treći stupac čine jednu bazu za $\mathrm{Im}\,g$.
$$\mathcal{B}_{\mathrm{Im}\,g}=\bigg\{\begin{bmatrix}1&2\\ 0&0\end{bmatrix}, \begin{bmatrix}0&0\\ 1&2\end{bmatrix}\bigg\}$$
Rang operatora $g$: $r(g)=2$
G.rank()
Linearni operator $A:\mathbb{R}^3\to\mathbb{R}^3$ zadan je matricom $A=\begin{bmatrix}3&2&1\\ 1&1&-1\\ 4&-1&5\end{bmatrix}$ u kanonskoj bazi. Odredite prasliku (original) vektora $y=(5,0,3)$.
Tražimo sve vektore $x\in\mathbb{R}^3$ iz domene koji se preslikavaju u vektor $y$ u kodomeni, tj. za koje vrijedi $Ax=y$. Zapravo moramo riješiti sustav linearnih jednadžbi.
A=matrix([[3,2,1],[1,1,-1],[4,-1,5]])
y=matrix([[5],[0],[3]])
x=matrix([[x_1],[x_2],[x_3]])
sustav=A*x; sustav
[sustav[k,0]==y[k,0] for k in range(3)]
solve([sustav[k,0]==y[k,0] for k in range(3)],[x_1,x_2,x_3])
Dakle, praslika vektora $y$ je skup koji se sastoji od samo jednog vektora $(-1,3,2)$, tj. $A^{-1}y=\{(-1,3,2)\}$.
Odredite prasliku vektora $y=(1,2)$ ako je linearni operator $A:\mathbb{R}^3\to\mathbb{R}^2$ dan matricom $A=\begin{bmatrix}1&0&0\\ 0&1&1\end{bmatrix}$.
Tražimo sve vektore $x\in\mathbb{R}^3$ iz domene koji se preslikavaju u vektor $y$ u kodomeni, tj. za koje vrijedi $Ax=y$. Zapravo moramo riješiti sustav linearnih jednadžbi.
A=matrix([[1,0,0],[0,1,1]])
y=matrix([[1],[2]])
x=matrix([[x_1],[x_2],[x_3]])
sustav=A*x; sustav
[sustav[k,0]==y[k,0] for k in range(2)]
solve([sustav[k,0]==y[k,0] for k in range(2)],[x_1,x_2,x_3])
Dakle, praslika vektora $y$ je skup koji sadrži beskonačno mnogo vektora, tj. preciznije $A^{-1}y=\{(1,2-t,t): t\in\mathbb{R}\}$.
Napomena. Jedino je praslika nulvektora potprostor, a praslike ostalih vektora nisu potprostori.
Odredite neku bazu za jezgru i neku bazu za sliku linearnog operatora $A:\mathbb{R}^5\to\mathbb{R}^3$ zadanog matricom
$$A=\begin{bmatrix}2&3&5&-3&-2\\ 3&4&3&-1&-3\\ 5&6&-1&3&-5\end{bmatrix}.$$
U ovom slučaju SAGE matricu gleda kao matricu s cjelobrojnim elementima pa daje jednu bazu u kojoj su vektori s cjelobrojnim komponentama.
$\mathcal{B}_{\mathrm{Ker}\,A}=\{(1,0,0,0,1), (0,1,3,4,3), (0,0,7,9,4)\}$
A=matrix([[2,3,5,-3,-2],[3,4,3,-1,-3],[5,6,-1,3,-5]])
A.right_kernel()
U ovom slučaju SAGE matricu gleda kao matricu s racionalnim elementima pa daje jednu bazu u kojoj su vektori s racionalnim komponentama.
$\mathcal{B}_{\mathrm{Ker}\,A}=\big\{(1,0,0,0,1), \big(0,1,0,\frac{1}{7},\frac{9}{7}\big), \big(0,0,1,\frac{9}{7},\frac{4}{7}\big)\big\}$
A=matrix(QQ,[[2,3,5,-3,-2],[3,4,3,-1,-3],[5,6,-1,3,-5]])
A.right_kernel()
Ručnim računanjem jezgru pronalazimo rješavanjem linearnog homogenog sustava $AX=O$.
Ako sustav riješimo tako da varijable $x_2, x_4, x_5$ budu parametri, dobivamo da je jedna baza za jezgru
$$\mathcal{B}_{\mathrm{Ker}\,A}=\big\{\big(-\tfrac{11}{9},1,-\tfrac{1}{9},0,0\big), \big(-\tfrac{4}{9},0,\tfrac{7}{9},1,0\big), (1,0,0,0,1)\big\}.$$
linear_solve(A,matrix(3,1,[0,0,0]),[x_1,x_2,x_3,x_4,x_5],[x_1,x_3,x_2,x_4,x_5])
Kako ćemo provjeriti da sve ove baze zaista jesu baze za $\mathrm{Ker}\,A$, tj. da zaista razapinju isti potprostor? Vektore iz tih baza, tj. njihove koordinate u kanonskoj bazi, smjestimo u stupce jedne matrice i izračunamo njezin rang. Ako je rang te matrice jednak broju vektora u pojedinoj bazi (u ovom slučaju 3), tada sve ove baze razapinju isti potprostor, tj. jezgru operatora $A$.
B=matrix([[1,0,0,0,1],[0,1,3,4,3],[0,0,7,9,4],[1,0,0,0,1],[0,1,0,1/7,9/7],[0,0,1,9/7,4/7],
[-11/9,1,-1/9,0,0],[-4/9,0,7/9,1,0],[1,0,0,0,1]]).transpose(); B
B.rank()
Stupci matrice $A$ su skup izvodnica za sliku operatora $A$. Pronađemo retčanu kanonsku formu matrice $A$ iz koje ćemo saznati jednu moguću bazu za $\mathrm{Im}\,A$. Iz retčane kanonske forme matrice $A$ je jasno da se jedna baza za sliku može sastojati od vektora iz prvog i drugog stupca matrice $A$. Dakle, $\mathcal{B}_{\mathrm{Im}\,A}=\{(2,3,5), (3,4,6)\}$.
A,A.echelon_form()
Pokažite da je jezgra linearnog operatora $A$ zadanog relacijama
$$\begin{align*}A(e_1)&=f_1+2f_2+f_3+f_4\\[2pt] A(e_2)&=-3f_1+6f_2+f_3+2f_4\\[2pt] A(e_3)&=5f_1-5f_2+3f_3-7f_4\end{align*}$$
sastavljena od jednog jedinog vektora.
Zapravo trebamo pokazati da je jezgra operatora $A$ trivijalna, tj. da se sastoji od samo jednog vektora i to nulvektora.
matrica operatora $A$ u paru baza $\{e_1,e_2,e_3\}$ i $\{f_1,f_2,f_3,f_4\}$
A=matrix([[1,2,1,1],[-3,6,1,2],[5,-5,3,-7]]).transpose(); A
Defekt operatora $A$ jednak je nula, tj. $d(A)=0$, pa je jezgra operatora $A$ trivijalna, tj. sastoji se samo od nulvektora.
A.right_nullity()
A.right_kernel()
Ručnim rješavanjem zadatka rješavamo zapravo homogeni sustav $AX=O$ koji ima samo trivijalno rješenje.
var("x y z")
linear_solve(A,matrix(4,1,[0,0,0,0]),[x,y,z],[x,y,z])
možemo odrediti rang matrice $A$ i iskoristiti teorem o rangu i defektu
A.rank()
Iz teorema o rangu i defektu slijedi $r(A)+d(A)=\dim{\mathbb{R}^3}$ pa je $d(A)=0$.
Neka je $A:\mathcal{P}_4\to\mathbb{R}^2$ preslikavanje zadano s $A(p)=\big(p(0), p(2)\big)$. Dokažite da je $A$ linearni operator, odredite mu jezgru, sliku, rang, defekt i matricu u paru kanonskih baza.
var("a_0 a_1 a_2 a_3 b_0 b_1 b_2 b_3 k l")
f(x)=a_0+a_1*x+a_2*x^2+a_3*x^3
g(x)=b_0+b_1*x+b_2*x^2+b_3*x^3
def A(p):
return vector((p(0),p(2)))
dokaz da je $A$ linearni operator
lijevo=A(k*f+l*g); lijevo
desno=k*A(f)+l*A(g); desno
lijevo-desno
polinom $p\in\mathcal{P}_4,\ p(t)=a_0+a_1x+a_2x^2+a_3x^3$ možemo poistovjetiti s njegovim koordinatama $(a_0,a_1,a_2,a_3)$ u kanonskoj bazi
matrica operatora $A$ u paru kanonskih baza
f(0),f(2)
A=operator_kan(lambda a0,a1,a2,a3:(a0,a0+2*a1+4*a2+8*a3)); A
Jedna baza za jezgru: $\mathcal{B}_{\mathrm{Ker}\,A}=\big\{2x+x^2-x^3,\, 2x^2-x^3\big\}$
A.right_kernel()
Ako matricu $A$ SAGE gleda kao matricu s racionalnim elementima, dobivamo jednu drugu bazu za jezgru:
$$\mathcal{B}_{\mathrm{Ker}\,A}=\big\{x-\tfrac{1}{4}x^3,\ x^2-\tfrac{1}{2}x^3\big\}$$
A.change_ring(QQ).right_kernel()
Ručnim rješavanjem zadatka rješavamo linearni homogeni sustav $AX=O$. Ako sustav riješimo tako da zadnje dvije nepoznanice budu parametri, dobivamo jednu novu bazu za jezgru.
$$\mathcal{B}_{\mathrm{Ker}\,A}=\big\{-2x+x^2,\, -4x+x^3\big\}$$
linear_solve(A,matrix(2,1,[0,0]),[a_0,a_1,a_2,a_3],[a_0,a_1,a_2,a_3])
Kako ćemo provjeriti da sve ove baze zaista jesu baze za $\mathrm{Ker}\,A$, tj. da zaista razapinju isti potprostor? Vektore iz tih baza, tj. njihove koordinate u kanonskoj bazi, smjestimo u stupce jedne matrice i izračunamo njezin rang. Ako je rang te matrice jednak broju vektora u pojedinoj bazi (u ovom slučaju 2), tada sve ove baze razapinju isti potprostor, tj. jezgru operatora $A$.
B=matrix([[0,2,1,-1],[0,0,2,-1],[0,1,0,-1/4],[0,0,1,-1/2],[0,-2,1,0],[0,-4,0,1]]).transpose(); B
B.rank()
defekt operatora $A$: $d(A)=2$
A.right_nullity()
Slika operatora $A$: stupci matrice $A$ čine skup izvodnica za sliku. Već iz same matrice $A$ je jasno da prva dva stupca čine bazu za sliku pa ne treba matricu $A$ svoditi na kanonsku formu.
$$\mathcal{B}_{\mathrm{Im}\,A}=\{(1,1), (0,2)\}$$
Rang linearnog operatora $A$ je stoga jednak 2, tj. $r(A)=2$.
A.rank()
U kanonskoj bazi nađite matrični prikaz operatora transponiranja na $M_2(\mathbb{R}).$
Transponiranje matrica jest linearni operator jer vrijedi $(\alpha A+\beta B)^{T}=\alpha A^{T}+\beta B^{T}$. Specijalno, na $M_2(\mathbb{R})$ je $\begin{bmatrix}a&b\\ c&d\end{bmatrix}^T=\begin{bmatrix}a&c\\ b&d\end{bmatrix}$.
operator_kan(lambda a,b,c,d:(a,c,b,d))
Neka je $A:\mathbb{R}^3\to\mathbb{R}^3$ linearni operator zadan na kanonskoj bazi $(e_1,e_2,e_3)$ relacijama
$$\begin{align*}Ae_1&=5e_1+6e_2-7e_3\\[2pt] Ae_2&=-7e_2+8e_3\\[2pt] Ae_3&=-11e_3\end{align*}.$$
Odredite:
A=matrix([[5,6,-7],[0,-7,8],[0,0,-11]]).transpose(); A
a) dio
karakteristični polinom
A.charpoly(x)
ako želimo karakteristični polinom u varijabli $t$
var('t')
A.charpoly(t)
faktorizirani karakteristični polinom
A.fcp()
minimalni polinom
A.minpoly()
A.minpoly('t')
b) dio
determinanta i trag
A.det()
A.trace()
spektar matrice $A$, tj. skup svih svojstvenih vrijednosti: $\sigma(A)=\{5,-7,-11\}$
A.eigenvalues()
c) dio
dobivamo listu uređenih trojki: prva komponenta uređene trojke je svojstvena vrijednost, druga komponenta je lista vektora koji čine bazu za pripadni svojstveni potprostor, a treća komponenta je algebarska kratnost svojstvene vrijednosti
A.eigenvectors_right()
ili ako nam je draže ovako
A.eigenspaces_right()
A.eigenspaces_right(algebraic_multiplicity=True)
možemo dobiti i dijagonalnu matricu $D$ koja na glavnoj dijagonali ima svojstvene vrijednosti i matricu $P$ čiji stupci se sastoje od svojstvenih vektora.
A.eigenmatrix_right()
D,P=A.eigenmatrix_right()
D
P
$P^{-1}AP=D$
P^-1*A*P
Zadana je matrica $A=\begin{bmatrix}5&-6&-6\\ -1&4&2\\ 3&-6&-4\end{bmatrix}$.
Odredite:
A=matrix([[5,-6,-6],[-1,4,2],[3,-6,-4]]); A
a) dio
karakteristični polinom
A.charpoly()
A.fcp()
minimalni polinom
A.minpoly()
A.minpoly().factor()
b) dio
determinanta i trag
A.det(),A.trace()
spektar: $\sigma(A)=\{1,2\}$
A.eigenvalues()
c) dio
A.eigenvectors_right()
A.eigenspaces_right()
D,P=A.eigenmatrix_right()
D,P
$P^{-1}AP=D$
P^-1*A*P
Zadana je matrica $A=\begin{bmatrix}4&-4&2\\ 2&-2&1\\ -4&4&-2\end{bmatrix}$.
Odredite:
A=matrix([[4,-4,2],[2,-2,1],[-4,4,-2]]); A
a) dio
karakteristični polinom
A.charpoly()
minimalni polinom
A.minpoly()
b) dio
determinanta i trag
A.det(),A.trace()
spektar: $\sigma(A)=\{0\}$
A.eigenvalues()
c) dio
A.eigenvectors_right()
A.eigenspaces_right()
matrica $A$ se ne može dijagonalizirati
A.eigenmatrix_right()
Zadana je matrica $A=\begin{bmatrix}1&1&-1\\ -1&3&-1\\ -1&2&0\end{bmatrix}$.
Odredite:
A=matrix([[1,1,-1],[-1,3,-1],[-1,2,0]]); A
a) dio
karakteristični polinom
A.charpoly()
A.fcp()
minimalni polinom
A.minpoly()
b) dio
determinanta i trag
A.det(),A.trace()
spektar: $\sigma(A)=\{1,2\}$
A.eigenvalues()
c) dio
A.eigenvectors_right()
A.eigenspaces_right()
matrica $A$ se ne može dijagonalizirati
A.eigenmatrix_right()
Zadana je matrica $A=\begin{bmatrix}1&1&1&1\\ 1&1&1&1\\ 1&1&1&1\\ 1&1&1&1\end{bmatrix}$.
Odredite:
A=matrix([[1,1,1,1],[1,1,1,1],[1,1,1,1],[1,1,1,1]]); A
a) dio
karakteristični polinom
A.charpoly()
A.fcp()
minimalni polinom
A.minpoly()
A.minpoly().factor()
b) dio
determinanta i trag
A.det(),A.trace()
spektar: $\sigma(A)=\{0,4\}$
A.eigenvalues()
c) dio
A.eigenvectors_right()
A.eigenspaces_right()
D,P=A.eigenmatrix_right()
D,P
$P^{-1}AP=D$
P^-1*A*P
Linearni operator $f:\mathbb{R}^2\to\mathbb{R}^2$ zadan je svojim djelovanjem na vektorima $(1,1)$ i $(1,0)$ s $f(1,1)=(2,0),\ f(1,0)=(-1,0).$
a) dio
Ovdje do izražaja dolazi snaga naše implementirane funkcije operator_baza pomoću koje se vrlo brzo i elegantno može riješiti ovaj dio zadatka.
Prema uvjetima zadatka, matrica operatora $f$ u paru baza $\{(1,1), (1,0)\big\}$ i $\big\{(1,0), (0,1)\}$ je
F=matrix([[2,0],[-1,0]]).transpose(); F
Matrica operatora $f$ u kanonskoj bazi je
Fkan=operator_baza(F,[(1,1),(1,0)],[(1,0),(0,1)],[(1,0),(0,1)]); Fkan
Matrica operatora $f$ u bazi $\mathcal{B}$ (možemo na dva načina: pomoću matrice $\mathrm{F}$ ili pomoću matrice $\mathrm{Fkan}$)
F2=operator_baza(F,[(1,1),(1,0)],[(1,0),(1,1)],[(1,0),(0,1)]); F2
operator_baza(Fkan,[(1,0),(0,1)],[(1,0),(1,1)])
b) dio
Ako koristimo matricu operatora $f$ u kanonskoj bazi
Fkan.eigenvalues()
Fkan.eigenspaces_right()
Ako koristimo matricu operatora $f$ u bazi $\mathcal{B}$
F2.eigenvalues()
F2.eigenspaces_right()
Zar smo sada dobili drukčije potprostore? Naime, vektori $\big(1,\frac{1}{3}\big)$ i $\big(1,\frac{1}{2}\big)$ ne pripadaju istom potprostoru. Međutim, to je pogrešno razmišljanje.
V=VectorSpace(QQ,2).span_of_basis([(1,0),(1,1)])
V.linear_combination_of_basis([1,1/2])
Naime, $\big(1,\frac{1}{2}\big)$ su koordinate vektora $\big(\frac{3}{2},\frac{1}{2}\big)$ u bazi $\mathcal{B}$, a ne u kanonskoj bazi, pa je sve u redu. Dakle, u drugom slučaju smo dobili zapravo da je baza za $S(0)$ vektor $\big(\frac{3}{2},\frac{1}{2}\big)$ koji je kolinearan s vektorom $\big(1,\frac{1}{3}\big)$ pa smo ponovo dobili isti potprostor za svojstvenu vrijednost 0.
Kada radimo s matričnim prikazom linearnog operatora, moramo paziti u kojem paru baza je zadan njegov matrični prikaz jer u tom slučaju sve rezultate dobivamo u tom paru baza. Tako je i bilo u ovom slučaju kada nam je $\big(1,\frac{1}{2}\big)$ zapravo značilo $1\cdot(1,0)+\frac{1}{2}\cdot(1,1)$. Zašto je za svojstvenu vrijednost $-1$ u obje baze ostao isti rezultat $(1,0)$? To je zbog toga što vektor $(1,0)$ u bazi $\mathcal{B}$ također ima iste koordinate $(1,0)$ kao i u kanonskoj bazi.
Najljepše je kad radimo s kanonskim bazama jer se u tom slučaju vektori podudaraju sa svojim koordinatama. U ostalim slučajevima moramo biti oprezni jer sve vektore dobivamo preko koordinata s obzirom na bazu (ili baze) u kojoj je zadan matrični prikaz linearnog operatora.
c) dio
Kako je $d(f)\neq 0$, linearni operator $f$ nije injekcija pa ne može biti izomorfizam. Ili drukčije razmišljanje: kako je 0 svojstvena vrijednost operatora $f$, to znači da osim nulvektora postoje još vektori koje $f$ preslikava u nulvektor pa $f$ nije injekcija, a stoga niti izomorfizam.
Fkan.right_nullity()
Ili preko ranga: matrica linearnog operatora $f$ ima rang manji od dimenzije kodomene pa $f$ nije surjekcija, a onda niti izomorfizam. Svejedno je koju matricu operatora $f$ uzmemo jer rang linearnog operatora ne ovisi njegovom matričnom zapisu, tj. o izboru baze.
F.rank(),Fkan.rank(),F2.rank()