verzija: SageMath 9.4
load('MMZI.sage')
%display latex
U ovom prvom primjeru pokazat ćemo dva načina generiranja istog vektorskog prostora.
V=VectorSpace(QQ,3); V
V1=span([[1,0,0],[0,1,0],[0,0,1]],QQ); V1
V1==V
baza vektorskog prostora
V.basis()
matrica čiji se retci sastoje od vektora iz baze
V.matrix()
V.basis_matrix()
dimenzija vektorskog prostora
V.dimension()
promjena baze u vektorskom prostoru
V=V.span_of_basis([[1,0,0],[1,2,0],[3,4,5]]); V
V.basis()
V.matrix()
V2=span([[1,0,0],[1,2,0],[3,4,5]],QQ); V2
V2==V,V2==V1
koji vektori pripadaju vektorskom prostoru $V$
vector((1,3,2)) in V, vector((1,2/3,1.41)) in V, vector((1,2/3,2^(1/3))) in V, vector((1,2/3,1.41,5)) in V
U=VectorSpace(RR,4); U
baza vektorskog prostora
U.basis()
matrica čiji se retci sastoje od vektora iz baze
U.matrix()
dimenzija vektorskog prostora
U.dimension()
koji vektori pripadaju vektorskom prostoru $U$
vector((1,3,2/3,5.67)) in U, vector((2,5^(2/3),1,0.33)) in U, vector((2,sin(3),7,2.1)) in U,vector((3,3+I,2,1)) in U
U1=VectorSpace(RealField(200),4); U1
jedan element iz $U_1$
U1.an_element()
matrica čiji se retci sastoje od vektora iz baze
U1.matrix()
C=VectorSpace(CC,4); C
baza vektorskog prostora
C.basis()
matrica čiji se retci sastoje od vektora iz baze
C.matrix()
dimenzija vektorskog prostora
C.dimension()
koji vektori pripadaju vektorskom prostoru $C$
vector((1,3,2/3,5.67)) in C, vector((2,5^(2/3),1,0.33)) in C, vector((2,sin(3),7,2.1)) in C,vector((3,3+sin(6)*I,2,1)) in C
C1=VectorSpace(ComplexField(200),3); C1
baza vektorskog prostora
C1.basis()
matrica čiji se retci sastoje od vektora iz baze
C1.matrix()
W=VectorSpace(SR,5)
matrica čiji se retci sastoje od vektora iz baze
W.matrix()
vektori koji pripadaju prostoru $W$
vector((1,3,2/3,5.67,1)) in W, vector((2,5^(2/3),1,0.33,2.2)) in W, vector((2,sin(3),7,2.1,log(2,3))) in W,vector((3,3+I,2,1,0)) in W
GF(3).list()
K=VectorSpace(GF(3),4); K
baza vektorskog prostora
K.basis()
svi vektori iz vektorskog prostora $K$
K.list()
ukupni broj vektora u vektorskom prostoru $K$
K.cardinality()
U polju $\overline{\mathbb{Q}}$ se nalaze svi brojevi koji su nultočke polinoma s racionalnim koeficijentima. Intuitivno rečeno, tu su svi racionalni brojevi i svi mogući korijeni. Brojevi kao što su $\sin{2}, \log_3{4}, \pi, e$ ne pripadaju polju $\overline{\mathbb{Q}}$.
QQbar
2 in QQbar, 2^(1/3)+5^(3/4) in QQbar, 5.02 in QQbar, 502/100 in QQbar, cos(4) in QQbar
T=VectorSpace(QQbar,3); T
T.basis()
Neka je $U$ potprostor od $\mathbb{R}^4$ razapet s vektorima $u_1=(1,2,-1,3)$, $u_2=(2,4,1,-2)$ i $u_3=(3,6,3,-7)$, a $W$ potprostor razapet s vektorima $w_1=(1,2,-4,11)$ i $w_2=(2,4,-5,14)$. Pokažite da je $U=W$.
1. način generiranja potprostora
U=span([[1,2,-1,3],[2,4,1,-2],[3,6,3,-7]],QQbar)
W=span([[1,2,-4,11],[2,4,-5,14]],QQbar)
Ovaj način generiranja potprostora odmah traži i "kanonske baze" tih potprostora, tj. traži one vektore za bazu koji imaju čim više nula.
U
W
U.basis()
W.basis()
U==W
2. način generiranja potprostora
Ovaj način generiranja potprostora također odmah traži "kanonske baze" tih potprostora.
U1=(QQbar^4).subspace([[1,2,-1,3],[2,4,1,-2],[3,6,3,-7]])
W1=(QQbar^4).subspace([[1,2,-4,11],[2,4,-5,14]])
U1
W1
U1==U, U1==W1, W==W1, W==U1
3. način generiranja potprostora
Ovaj način možemo koristiti kada smo sigurni da su zadani vektori koji razapinju potprostor linearno nezavisni. Ovim načinom će se očuvati početna baza, neće se tražiti "kanonska" baza za pripadni potprostor. Ukoliko zadani vektori nisu linearno nezavisni, ovaj način ne funkcionira.
W2=(QQbar^4).subspace_with_basis([[1,2,-4,11],[2,4,-5,14]]); W2
W2.basis()
U2=(QQbar^4).subspace_with_basis([[1,2,-1,3],[2,4,1,-2],[3,6,3,-7]])
W2==U
Kako bismo taj primjer rješavali ručno?
Za matricu $A$ kažemo da je u retčanoj kanonskoj formi ako vrijede sljedeći uvjeti:
Retčanu kanonsku formu matrice $A$ pronalazimo višestrukom primjenom elementarnih transformacija na njezine retke. Kod ručnog rješavanja zadataka kanonsku formu matrice tražit ćemo uglavnom tako da zadovoljimo samo prva dva uvjeta zbog manjeg broja potrebnih operacija, a iz tako dobivene forme matrice moći ćemo isto lagano donijeti sve potrebne zaključke. U SAGE-u postoji već gotova naredba koja daje retčanu kanonsku formu matrice koja zadovoljava sva četiri gore navedena uvjeta.
A=matrix(QQ,[[1,2,-1,3],[2,4,1,-2],[3,6,3,-7]])
B=matrix(QQ,[[1,2,-4,11],[2,4,-5,14]])
Definiramo matrice čiji retci se sastoje od vektora koji razapinju pojedine prostore.
A,B
Elementarnim transformacijama nad retcima pronađemo retčane kanonske forme matrica $A$ i $B$. Kako njihove retčane kanonske forme imaju jednake nenul retke, retci matrica $A$ i $B$ razapinju isti potprostor, tj. $U=W$.
A.echelon_form(),B.echelon_form()
A1=matrix([[1,2,-1,3],[2,4,1,-2],[3,6,3,-7]])
B1=matrix([[1,2,-4,11],[2,4,-5,14]])
Sada SAGE shvaća matrice A1 i B1 po defaultu kao matrice nad prstenom $\mathbb{Z}$ (jer su svi elementi u matricama cijeli brojevi, a nismo mu ništa posebno naglasili nad kojim skupom da promatra matrice). Gornju definiciju smo zapravo dali za matrice čiji elementi pripadaju nekom polju. Stoga moramo biti oprezni da SAGE-u sve precizno kažemo jer on zna i puno općenitije stvari od vektorskih prostora.
A1.echelon_form(),B1.echelon_form()
A.base_ring(),A1.base_ring()
U prostoru $\mathbb{R}^4$ promatramo sljedeće skupove vektora:
Ispitajte koji su od navedenih skupova linearno nezavisni, a koji linearno zavisni. Izrazite pojedini vektor iz skupa kao linearnu kombinaciju preostalih, kad god je to moguće.
1. način: rješavanje homogenog sustava jednadžbi
var("x y z")
a1=vector((1,2,-3,1))
a2=vector((2,0,4,1))
a3=vector((5,-4,14,-3))
komb=x*a1+y*a2+z*a3; komb
Kako pripadni homogeni sustav ima samo trivijalno rješenje, vektori iz a) dijela zadatka su linearno nezavisni.
solve([komb[0]==0,komb[1]==0,komb[2]==0,komb[3]==0],[x,y,z])
b1=vector((2,1,2,1))
b2=vector((6,3,6,3))
b3=vector((5,1,4,3))
komb2=x*b1+y*b2+z*b3; komb2
Kako pripadni homogeni sustav ima i netrivijalnih rješenja, vektori iz b) dijela zadatka su linearno zavisni.
solve([komb2[0]==0,komb2[1]==0,komb2[2]==0,komb2[3]==0],[x,y,z])
c1=vector((1,1,0,0))
c2=vector((1,0,1,0))
c3=vector((0,1,1,0))
komb3=x*c1+y*c2+z*c3; komb3
Kako pripadni homogeni sustav ima samo trivijalno rješenje, vektori iz c) dijela zadatka su linearno nezavisni.
solve([komb3[0]==0,komb3[1]==0,komb3[2]==0,komb3[3]==0],[x,y,z])
2. način: računanje ranga matrice
Vektore smjestimo u stupce jedne matrice i izračunamo rang te matrice. Ako je matrica maksimalnog ranga (rang je jednak broju vektora), tada su vektori linearno nezavisni. Ako pak je rang matrice strogo manji od broja vektora, vektori su linearno zavisni.
A=matrix([a1,a2,a3]).transpose(); A
Matrica $A$ je maksimalnog ranga pa su vektori iz a) dijela zadatka linearno nezavisni.
rank(A)
B=matrix([b1,b2,b3]).transpose(); B
Matrica $B$ nije maksimalnog ranga pa su vektori iz b) dijela zadatka linearno zavisni.
B.rank()
Matrica $C$ je maksimalnog ranga pa su vektori iz c) dijela zadatka linearno nezavisni.
C=matrix([c1,c2,c3]).transpose(); C
C.rank()
Kako su vektori u a) i c) dijelu zadatka linearno nezavisni, niti jedan od tih vektora ne možemo izraziti kao linearnu kombinaciju preostalih vektora iz promatranog skupa. Vektori u b) dijelu zadatka su linearno zavisni pa se barem jedan vektor iz tog skupa može prikazati kao linearna kombinacija preostalih vektora.
Rješavanjem homogenog sustava u b) dijelu zadatka smo dobili $x=-3r_1, y=r_1, z=0$. Kako je uvijek $z=0$, slijedi da je vektor $(5,1,4,3)$ nemoguće izraziti pomoću vektora $(2,1,2,1)$ i $(6,3,6,3)$. Nadalje, $x$ i $y$ ne moraju uvijek biti jednaki 0, što znači da svaki od vektora $(2,1,2,1)$ i $(6,3,6,3)$ možemo izraziti kao linearnu kombinaciju preostalih vektora.
$(2,1,2,1)=\frac{1}{3}\cdot(6,3,6,3)+0\cdot(5,1,4,3)$
izraz1=x*b2+y*b3
sustav1=[izraz1[0]==b1[0],izraz1[1]==b1[1],izraz1[2]==b1[2],izraz1[3]==b1[3]]; sustav1
solve(sustav1,[x,y])
$(6,3,6,3)=3\cdot(2,1,2,1)+0\cdot(5,1,4,3)$
izraz2=x*b1+y*b3
sustav2=[izraz2[0]==b2[0],izraz2[1]==b2[1],izraz2[2]==b2[2],izraz2[3]==b2[3]]; sustav2
solve(sustav2,[x,y])
vektor $(5,1,4,3)$ se ne može prikazati kao linearna kombinacija vektora $(2,1,2,1)$ i $(6,3,6,3)$
izraz3=x*b1+y*b2
sustav3=[izraz3[0]==b3[0],izraz3[1]==b3[1],izraz3[2]==b3[2],izraz3[3]==b3[3]]; sustav3
solve(sustav3,[x,y])
Riješite jednadžbu $17a+6x=-13b$ u prostoru $\mathbb{R}^3$ ako je $a=(5,2,3)$ i $b=(6,-4,3)$.
var("x_1 x_2 x_3")
a=vector((5,2,3))
b=vector((6,-4,3))
x=vector((x_1,x_2,x_3))
lijeva=17*a+6*x
desna=-13*b
sustav=[lijeva[k]==desna[k] for k in range(0,3)]; sustav
$x=\big(-\frac{163}{6},3,-15\big)$
solve(sustav,[x_1,x_2,x_3])
Riješite jednadžbu $7a+(6-5i)x=(-3+7i)b$ u prostoru $\mathbb{C}^3$ ako je $a=(5,2-i,3+7i)$ i $b=(6+2i,-4,3i)$.
a=vector((5,2-I,3+7*I))
b=vector((6+2*I,-4,3*I))
x=vector((x_1,x_2,x_3))
lijeva=7*a+(6-5*I)*x
desna=(-3+7*I)*b
sustav=[lijeva[k]==desna[k] for k in range(0,3)]; sustav
solve(sustav,[x_1,x_2,x_3])
Riješite jednadžbu $6a+17x=b$ u prostoru $\mathcal{P}_4$ ako je $a=2-3t-6t^2+7t^3$ i $b=6+2t$.
var("k_0 k_1 k_2 k_3")
a=vector((2,-3,-6,7))
b=vector((6,2,0,0))
x=vector((k_0,k_1,k_2,k_3))
lijeva=6*a+17*x
sustav=[lijeva[g]==b[g] for g in range(0,4)]; sustav
$x=-\frac{6}{17}+\frac{20}{17}t+\frac{36}{17}t^2-\frac{42}{17}t^3$
solve(sustav,[k_0,k_1,k_2,k_3])
Odredite jednu bazu i dimenziju prostora rješenja $R(S)$ homogenog sustava
$$\begin{align*}2x_1-3x_2+5x_3&=0\\[2pt] 4x_1-6x_2+10x_3&=0\end{align*}.$$
1. način: rješavanje zadanog homogenog sustava
solve([2*x_1-3*x_2+5*x_3==0,4*x_1-6*x_2+10*x_3==0],[x_1,x_2,x_3])
$\big(x_1,x_2,x_3\big)=\big(-\frac{5}{2}r_2+\frac{3}{2}r_3, r_3, r_2\big)=r_2\big(-\frac{5}{2},0,1\big)+r_3\big(\frac{3}{2},1,0\big)$
Iz općeg rješenja možemo očitati jednu bazu tako da gledamo brojeve uz parametre. U našem slučaju jedna baza za $R(S)$ je $\mathcal{B}_1=\big\{\big(-\frac{5}{2},0,1\big), \big(\frac{3}{2},1,0\big)\big\}$ pa je $\dim{R(S)}=2$.
Da smo sustav riješili na drukčiji način, tj. da smo na primjer varijable $x_1$ i $x_2$ uzeli za parametre, dobili bismo jednu drugu bazu za $R(S)$, no dimenzija u svakom slučaju mora ostati ista.
solve([2*x_1-3*x_2+5*x_3==0,4*x_1-6*x_2+10*x_3==0],[x_3,x_1,x_2])
$\big(x_1,x_2,x_3\big)=\big(r_5,r_4,\frac{3}{5}r_4-\frac{2}{5}r_5\big)=r_4\big(0,1,\frac{3}{5}\big)+r_5\big(1,0,-\frac{2}{5}\big)$
U ovom slučaju dobivamo jednu drugu bazu za $R(S)$ i to bazu $\mathcal{B}_2=\big\{\big(0,1,\frac{3}{5}\big), \big(1,0,-\frac{2}{5}\big)\big\}$.
Međutim, pretpostavimo da imamo u rješenju napisano da je baza za $R(S)$ skup $\mathcal{B}_1$, a da smo svojim računanjem dobili da je baza za $R(S)$ skup $\mathcal{B}_2$. Kako možemo provjeriti da je i naše rješenje $\mathcal{B}_2$ također dobro ako znamo da je rješenje $\mathcal{B}_1$ sigurno dobro? Možemo to provjeriti čak na dva relativno slična načina.
Prvi način je da formiramo za svako od rješenja $\mathcal{B}_1$ i $\mathcal{B}_2$ matrice čiji retci će se sastojati od vektora iz pojedinih baza. Nakon toga pronađemo retčane kanonske forme tih matrica i ako su one jednake, tada je i naše rješenje $\mathcal{B}_2$ ispravno rješenje.
A=matrix(QQ,[[-5/2,0,1],[3/2,1,0]])
B=matrix(QQ,[[0,1,3/5],[1,0,-2/5]])
A.echelon_form(),B.echelon_form()
Drugi način je da formiramo za svako od rješenja $\mathcal{B}_1$ i $\mathcal{B}_2$ matrice čiji stupci će se sastojati od vektora iz pojedinih baza. Isto tako formiramo i treću matricu čiji stupci se sastoje od svih vektora iz $\mathcal{B}_1$ i $\mathcal{B}_2$. Nakon toga izračunamo rangove svih triju matrica. Ako su rangovi svih triju matrica međusobno jednaki, tada je i naše rješenje $\mathcal{B}_2$ ispravno rješenje.
Napomena: možemo vektore u matricama također pisati i u retke, umjesto u stupce.
A1=matrix(QQ,[[-5/2,0,1],[3/2,1,0]]).transpose()
B1=matrix(QQ,[[0,1,3/5],[1,0,-2/5]]).transpose()
C1=matrix(QQ,[[-5/2,0,1],[3/2,1,0],[0,1,3/5],[1,0,-2/5]]).transpose()
Uz pretpostavku da je $\mathcal{B}_1$ sigurno dobro rješenje, dovoljno je zapravo samo provjeriti da su rangovi matrica B1 i C1 jednaki.
A1,B1,C1
rank(A1),rank(B1),rank(C1)
2. način: traženje jezgre matrice
Zadani homogen sustav možemo zapisati u matričnom obliku
$$\begin{bmatrix}2&-3&5\\ 4&-6&10\end{bmatrix}\begin{bmatrix}x_1\\ x_2\\ x_3\end{bmatrix}=\begin{bmatrix}0\\ 0\end{bmatrix}.$$
Sada zapravo tražimo sve vektore $\big(x_1,x_2,x_3\big)$ iz $\mathbb{R}^3$ koje matrica $\begin{bmatrix}2&-3&5\\ 4&-6&10\end{bmatrix}$ preslikava u nulvektor u $\mathbb{R}^2$. Skup svih takvih vektora $\big(x_1,x_2,x_3\big)$ zovemo jezgra matrice (preciznije, desna jezgra).
M=matrix(QQ,[[2,-3,5],[4,-6,10]])
Postoji već gotova naredba za traženje jezgre (tj. desne jezgre) matrice.
M.right_kernel()
dimenzija od $R(S)$
M.right_nullity()
Odredite jednu bazu i dimeziju prostora $R(S)$ svih rješenja homogenog sustava
$$\begin{align*}2x_1-3x_2+5x_3&=0\\[2pt] -x_1+5x_2+7x_3&=0\end{align*}.$$
Ovdje nećemo raditi više tako detaljnu diskusiju kao u prethodnom zadatku, nego ćemo zadatak riješiti na najjednostavniji mogući način pomoću dostupnih naredbi.
M=matrix(QQ,[[2,-3,5],[-1,5,7]])
jedna baza za $R(S)$
M.right_kernel()
dimenzija od $R(S)$
M.right_nullity()
Neka je $V$ potprostor od $\mathbb{R}^4$ zadan s $V=\big\{(x_1,x_2,x_3,x_4)\in\mathbb{R}^4:x_1+x_2+x_3+x_4=0\big\}$. Odredite mu neku bazu i dimenziju.
Skup $V$ je zapravo skup svih rješenja homogenog sustava $x_1+x_2+x_3+x_4=0$ od jedne linearne jednadžbe s četiri nepoznanice.
M=matrix(QQ,[[1,1,1,1]])
jedna baza za $V$
M.right_kernel()
dimenzija od $V$
M.right_nullity()
Dokažite da je skup $\mathcal{B}=\big\{(1,0,0),(1,2,0),(3,4,5)\big\}$ baza za $\mathbb{R}^3$ i odredite koordinate vektora $a=(1,1,4)$ u bazi $\mathcal{B}$.
Kako je $\dim{\mathbb{R}^3}=3$, dovoljno je provjeriti da je $\mathcal{B}$ linearno nezavisan skup jer će u tom slučaju biti ujedno i baza za $\mathbb{R}^3$. Linearnu nezavisnost možemo provjeriti na tri načina: rješavanjem homogenog sustava, računanjem ranga matrice ili pak računanjem determinante matrice (jer je u ovom slučaju matrica kvadratna). Ovdje ćemo pokazati sva tri načina.
Kako homogeni sustav ima samo trivijalno rješenje, skup $\mathcal{B}$ je linearno nezavisan skup.
var("x y z")
a=vector((1,0,0))
b=vector((1,2,0))
c=vector((3,4,5))
komb=x*a+y*b+z*c; komb
solve([komb[t]==0 for t in range(0,3)],[x,y,z])
Kako je rang matrice $A$ maksimalan (jednak broju vektora u $\mathcal{B}$), skup $\mathcal{B}$ je linearno nezavisan skup.
A=matrix(QQ,[[1,0,0],[1,2,0],[3,4,5]])
rank(A)
Kako je determinanta matrice $A$ različita od nule, skup $\mathcal{B}$ je linearno nezavisan skup.
A.det()
Koordinate vektora $a=(1,1,4)$ u bazi $\mathcal{B}$ možemo brzo odrediti pomoću već gotovih SAGE naredbi. Najprije definiramo vektorski prostor $\mathbb{R}^3$ i naglasimo SAGE-u da u tom vektorskom prostoru želimo raditi u bazi $\mathcal{B}$. Iz tehničkih razloga zapravo ćemo definirati $\mathbb{Q}^3$ kako bismo ostali na egzaktnim brojevima jer nam je na ovom primjeru dovoljno samo polje racionalnih brojeva. Mogli smo vektorski prostor također definirati nad algebarskim zatvorenjem $\overline{\mathbb{Q}}$ polja $\mathbb{Q}$ ili pak nad simboličkim prstenom $SR$.
V=VectorSpace(QQ,3).span_of_basis([[1,0,0],[1,2,0],[3,4,5]])
samo provjera da radimo u željenoj bazi
V.basis()
koordinate vektora $a=(1,1,4)$ u bazi $\mathcal{B}$
V.coordinates((1,1,4))
Kako bismo pronašli koordinate vektora $a=(1,1,4)$ u bazi $\mathcal{B}$ kod ručnog rješavanja zadatka?
1. način: rješavanjem sustava linearnih jednadžbi
v=vector((1,1,4))
sustav=[komb[t]==v[t] for t in range(0,3)]; sustav
solve(sustav,[x,y,z])
2. način: pomoću matrice prijelaza
matrica prijelaza iz kanonske baze u bazu $\mathcal{B}$
T=matrix(QQ,[[1,0,0],[1,2,0],[3,4,5]]).transpose(); T
matrica prijelaza iz baze $\mathcal{B}$ u kanonsku bazu
T^-1
T^-1*v
Odredite rang skupa vektora $a=(2,-4,6,2)$, $b=(3,4,1,6)$, $c=(5,0,7,8)$ u $\mathbb{R}^4$. Jesu li $a, b, c$ linearno nezavisni vektori u $\mathbb{R}^4?$
A=matrix(QQ,[[2,-4,6,2],[3,4,1,6],[5,0,7,8]]).transpose(); A
Rang zadanog skupa vektora jednak je 2. Kako taj rang nije jednak broju vektora, zadani vektori su linearno zavisni.
rank(A)
Iz svega zaključujemo da možemo uzeti maksimalno dva vektora iz skupa vektora $\{a,b,c\}$ tako da oni budu linearno nezavisni. Jedan mogući način odabira tih vektora možemo dobiti tako da pronađemo retčanu kanonsku formu matrice $A$. Pazite, vektori moraju biti zapisani u stupcima matrice $A$.
A.echelon_form()
Iz retčane kanonske forme matrice $A$ vidimo da je vektor $c$ linearna kombinacija vektora $a$ i $b$, a vektori $a$ i $b$ su linearno nezavisni.
Naravno, mogli smo u matricu $A$, npr. u drugi stupac staviti vektor $c$, a u treći stupac vektor $b$.
A.swap_columns(1,2)
A
Tada retčana kanonska forma izgleda
A.echelon_form()
iz koje ponovo vidimo da je treći stupac linearna kombinacija prva dva pa ovaj put zaključujemo da je vektor $b$ linearna kombinacija vektora $a$ i $c$, a vektori $a$ i $c$ su linearno nezavisni. Analogno možemo isprobati i sve preostale mogućnosti razmještaja vektora $a, b, c$ u stupce matrice $A$.
Jesu li $p,q,r\in\mathcal{P}_4$ zadani s $p(t)=t^3+t^2+t$, $q(t)=t^3-t+1$, $r(t)=2t^3-t^2+t-2$ linearno nezavisni u $\mathcal{P}_4$?
Može li se $f(t)=t^3+3t^2+3$ prikazati kao linearna kombinacija polinoma $p, q, r$?
Može li se $g(t)=t^3+3t^2+t+3$ prikazati kao linearna kombinacija polinoma $p, q , r$?
Na sva pitanja ćemo najbrže odgovoriti tako da sve polinome prikažemo u kanonskoj bazi od $\mathcal{P}_4$ i zatim te vektore smjestimo u stupce jedne matrice, a nakon toga pronađemo retčanu kanonsku formu te matrice. Kanonska baza za $\mathcal{P}_4$ je skup $\big\{1,t,t^2,t^3\big\}$. Koordinate pojedinih polinoma u kanonskoj bazi su
$$p(t)=(0,1,1,1),\quad q(t)=(1,-1,0,1),\quad r(t)=(-2,1,-1,2),\quad f(t)=(3,0,3,1),\quad g(t)=(3,1,3,1).$$
p=vector((0,1,1,1))
q=vector((1,-1,0,1))
r=vector((-2,1,-1,2))
f=vector((3,0,3,1))
g=vector((3,1,3,1))
A=matrix(QQ,[p,q,r,f,g]).transpose(); A
A.echelon_form()
Iz retčane kanonske forme matrice $A$ zaključujemo da su polinomi $p, q, r$ linearno nezavisni . Nadalje, vidimo također da se polinom $f$ može prikazati kao linearna kombinacija polinoma $p, q, r$, tj. polinom $f$ pripada potprostoru razapetom s polinomima $p, q, r$. Isto tako, vidimo da se polinom $g$ ne može prikazati kao linearna kombinacija polinoma $p, q, r$, tj. polinom $g$ ne pripada potprostoru razapetom s vektorima $p, q, r$. Drugim riječima, polinomi $p, q, r, g$ su linearno nezavisni pa čine bazu za $\mathcal{P}_4$ jer je $\dim{\mathcal{P}_4}=4$.
Ako želimo, možemo polinom $f$ izraziti kao linearnu kombinaciju polinoma $p, q, r$
W=(QQ^4).subspace_with_basis([p,q,r]); W
$f(t)=2p(t)+q(t)-r(t)$
W.coordinates(f)
Još jedan način da provjerimo da polinom $g$ ne pripada potprostoru razapetom s polinomima $p, q, r$
W.coordinates(g)
Dokažite da polinomi
$$f_1(t)=5,\ \ f_2(t)=t+1,\ \ f_3(t)=(t-2)(t+1),\ \ f_4(t)=(t-2)(t+1)(t+3)$$
čine bazu za $\mathcal{P}_4$ i pronađite koordinate polinoma $p(t)=21+13t-5t^2-2t^3$ u toj bazi.
var("t")
expand((t-2)*(t+1)),expand((t-2)*(t+1)*(t+3))
Kanonska baza za $\mathcal{P}_4$ je $\big\{1,t,t^2,t^3\big\}$. Koordinate polinoma $f_1(t), f_2(t), f_3(t), f_4(t), p(t)$ u kanonskoj bazi su
$$f_1(t)=(5,0,0,0),\ \ f_2(t)=(1,1,0,0),\ \ f_3(t)=(-2,-1,1,0),\ \ f_4(t)=(-6,-5,2,1),\ \ p(t)=(21,13,-5,-2).$$
f1=vector((5,0,0,0))
f2=vector((1,1,0,0))
f3=vector((-2,-1,1,0))
f4=vector((-6,-5,2,1))
p=vector((21,13,-5,-2))
A=matrix(QQ,[f1,f2,f3,f4]).transpose(); A
Kako je determinanta matrice $A$ različita od nule, polinomi $f_1, f_2, f_3, f_4$ čine bazu za $\mathcal{P}_4$.
A.det()
Koordinate polinoma $p$ u bazi $\big\{f_1,f_2,f_3,f_4\big\}$
V=VectorSpace(QQ,4).span_of_basis([f1,f2,f3,f4])
V.coordinates(p)
Potražimo još za vježbu koordinate polinoma $p$ u bazi $\big\{f_1,f_2,f_3,f_4\big\}$ pomoću matrice prijelaza
A^-1
A^-1*p
Jesu li matrice
$$A=\begin{bmatrix}1&0\\ 1&1\end{bmatrix},\ \ B=\begin{bmatrix}1&1\\ 1&1\end{bmatrix},\ \ C=\begin{bmatrix}0&1\\ 1&1\end{bmatrix}$$
linearno nezavisni elementi vektorskog prostora $M_2(\mathbb{R})$?
Zadatak ćemo riješiti na dva načina: rješavanjem homogenog sustava i pomoću koordinata.
1. način: rješavanjem homogenog sustava linearnih jednadžbi
A=matrix([[1,0],[1,1]])
B=matrix([[1,1],[1,1]])
C=matrix([[0,1],[1,1]])
Kako postoji samo trivijalno rješenje, matrice $A, B, C$ su linearno nezavisne u $M_2(\mathbb{R})$.
solve_mat(x*A+y*B+z*C,matrix(2),[x,y,z])
2. način: pomoću koordinata
Matrice $\begin{bmatrix}1&0\\ 0&0\end{bmatrix},$ $\begin{bmatrix}0&1\\ 0&0\end{bmatrix},$ $\begin{bmatrix}0&0\\ 1&0\end{bmatrix},$ $\begin{bmatrix}0&0\\ 0&1\end{bmatrix}$ čine kanonsku bazu za $M_2(\mathbb{R})$. Koordinate matrica $A, B, C$ u kanonskoj bazi su $A=(1,0,1,1),$ $B=(1,1,1,1),$ $C=(0,1,1,1)$. Smjestimo te vektore u stupce jedne matrice i izračunamo njezin rang.
M=matrix([[1,0,1,1],[1,1,1,1],[0,1,1,1]]).transpose(); M
Kako je matrica $M$ maksimalnog ranga, zadane matrice $A, B, C$ su linearno nezavisne u $M_2(\mathbb{R})$.
M.rank()
Dokažite da je skup $B=\big\{(0,1,0,0,0), (1,2,1,0,1), (1,1,0,0,0)\big\}$ linearno nezavisan u $\mathbb{R}^5$ i nadopunite ga do baze za $\mathbb{R}^5$.
M=matrix([[0,1,0,0,0],[1,2,1,0,1],[1,1,0,0,0]]).transpose(); M
Matrica $M$ je maksimalnog ranga pa je skup $B$ linearno nezavisan u $\mathbb{R}^5$.
M.rank()
Kako je $\dim{\mathbb{R}^5}=5$, skupu $B$ još nedostaju dva vektora da bi on postao baza. Najjednostavnije je da nadopunjavamo s vektorima iz kanonske baze za $\mathbb{R}^5$ ukoliko ništa drugo nije eksplicitno preporučeno, niti zabranjeno. Stupcima matrice $M$ dodat ćemo vektore iz kanonske baze i tako dobivenu matricu nakon toga svodimo na njezinu retčanu kanonsku formu iz koje ćemo vidjeti koja dva vektora iz kanonske baze možemo dodati skupu $B$ da bi i on postao baza za $\mathbb{R}^5$. Naravno, možete se poigrati i s dodavanjem nekih drugih vektora, ne moraju nužno biti vektori iz kanonske baze. Ono što je važno zapamtiti: nadopuna linearno nezavisnog skupa do baze nije jedinstvena.
M1=M.augment(identity_matrix(5))
M,M1
M1.echelon_form()
Iz retčane kanonske forme uočavamo da, npr. možemo skupu $B$ dodati vektore $(0,0,1,0,0)$ i $(0,0,0,1,0)$ pa da on postane baza.
Zamijenimo mjesta u matrici M1 stupcima u kojima su vektori $(0,0,1,0,0)$ i $(0,0,0,0,1)$ i pronađimo retčanu kanonsku formu te matrice.
M1.swap_columns(5,7)
M1
M1.echelon_form()
Sada uočavamo da skupu $B$ možemo također dodati vektore $(0,0,0,1,0)$ i $(0,0,0,0,1)$ pa da on postane baza. Ono što smo već i ranije mogli uočiti, npr. vektor $(1,0,0,0,0)$ je linearna kombinacija vektora iz skupa $B$ pa on niti u kojem slučaju zajedno s vektorima iz $B$ ne može činiti bazu za $\mathbb{R}^5$. Za vježbu pogledajte koje sve još vektore iz kanonske baze možemo dodati skupu $B$ kako bismo ga nadopunili do baze i koje to vektore eventualno ne možemo dodati. Također, poigrajte se s još nekim drugim vektorima kojima bismo mogli nadopuniti skup $B$ do baze. Naravno da takvih mogućnosti ima beskonačno mnogo.
Neka je $W$ potprostor od $\mathbb{R}^5$ razapet s vektorima
$$u_1=(1,2,-1,3,4),\ \ u_2=(2,4,-2,6,8),\ \ u_3=(1,3,2,2,6),\ \ u_4=(1,4,5,1,8),\ \ u_5=(2,7,3,3,9).$$
Odredite dimenziju prostora $W$ i jednu bazu za $W$.
W=(QQ^5).subspace([[1,2,-1,3,4],[2,4,-2,6,8],[1,3,2,2,6],[1,4,5,1,8],[2,7,3,3,9]])
Baza je automatski svedena na "kanonsku"
W.basis()
W.dimension()
Način na koji zadatak rješavamo ručno
1. način: ako želimo bazu svesti na kanonsku
Vektore kojima je potprostor razapet napišemo u retke jedne matrice i tu matricu svedemo na njezinu retčanu kanonsku formu iz koje očitamo "kanonsku" bazu za $W$
A=matrix(QQ,[[1,2,-1,3,4],[2,4,-2,6,8],[1,3,2,2,6],[1,4,5,1,8],[2,7,3,3,9]]); A
Prva tri retka u retčanoj kanonskoj formi matrice $A$ čine kanonsku bazu za $W$ (to smo dobili već i ranije pomoću gotovih SAGE naredbi)
A.echelon_form()
2. način: ako želimo među zadanim vektorima koji razapinju $W$ odabrati neke od njih koji će biti baza za $W$
Vektore kojima je potprostor razapet napišemo u stupce jedne matrice i tu matricu svedemo na njezinu retčanu kanonsku formu iz koje ćemo moći očitati jednu bazu koja je sastavljena od već ponuđenih vektora u zadatku.
B=A.transpose(); B
B.echelon_form()
Iz retčane kanonske forme matrice $B$ vidimo da za bazu potprostora $W$ možemo uzeti, npr. vektore
$$u_1=(1,2,-1,3,4),\ \ u_3=(1,3,2,2,6),\ \ u_5=(2,7,3,3,9).$$
Naime, biramo one vektore u bazu koji se nalaze u onim stupcima matrice $B$ koji sadrže pivote u njezinoj pripadnoj retčanoj kanonskoj formi.
Zadana je matrica $M=\begin{bmatrix}1&3&-2&5&4\\ 1&4&1&3&5\\ 1&4&2&4&3\\ 2&7&-3&6&13\end{bmatrix}$.
Kao što smo to detaljno objasnili u prethodnom zadatku, možemo tražiti kanonsku bazu za pojedine potprostore ili pak izabrati već među postojećim vektorima one koji čine bazu za promatrane potprostore. Ovdje ćemo ponovo napraviti oba načina, ali nećemo raditi detaljna objašnjenja kao u prethodnom zadatku.
M=matrix(QQ,[[1,3,-2,5,4],[1,4,1,3,5],[1,4,2,4,3],[2,7,-3,6,13]]); M
a) dio
M.transpose(), M.transpose().echelon_form()
Kanonska baza za potprostor koji je razapet sa stupcima matrice $M$ je skup $\{(1,0,0,1), (0,1,0,3), (0,0,1,-2)\}$ pa je dimenzija tog potprostora jednaka 3.
M.echelon_form()
Za bazu potprostora koji je razapet sa stupcima matrice $M$ možemo uzeti, npr. skup $\{(1,1,1,2), (3,4,4,7), (-2,1,2,-3)\}$. U toj bazi svi vektori su neki stupci matrice $M$.
b) dio
M.echelon_form()
Kanonska baza za potprostor koji je razapet s retcima matrice $M$ je skup $\{(1,0,0,22,-21), (0,1,0,-5,7), (0,0,1,1,-2)\}$ pa je dimenzija tog potprostora jednaka također 3.
M.transpose().echelon_form()
Za bazu potprostora koji je razapet s retcima matrice $M$ možemo uzeti, npr. skup $\{(1,3,-2,5,4), (1,4,1,3,5), (1,4,2,4,3)\}$. U toj bazi svi vektori su neki retci matrice $M$.
Napomena. Kako je rang matrice po retcima jednak rangu matrice po stupcima, potprostori koji su razapeti sa retcima, odnosno stupcima matrice $M$ su jednakih dimenzija.
Neka je $S=\{(1,1,0), (-1,2,0), (0,3,0)\}$.
v1=vector((1,1,0))
v2=vector((-1,2,0))
v3=vector((0,3,0))
w=vector((3,2,0))
a) dio
A=matrix(QQ,[v1,v2,v3]).transpose(); A
Matrica $A$ nije maksimalnog ranga pa je skup $S$ linearno zavisan skup u $\mathbb{R}^3$.
A.rank()
b) dio
B=A.augment(w); B
B.rank()
Kako matrice $A$ i $B$ imaju isti rang, vektor $(3,2,0)$ pripada skupu $\mathcal{L}(S)$.
c) dio
Kako vektor $(3,2,0)$ pripada skupu $\mathcal{L}(S)$ i kako je skup $S$ linearno zavisan, vektor $(3,2,0)$ se može na beskonačno mnogo načina prikazati pomoću vektora iz skupa $S$.
komb=x*v1+y*v2+z*v3
sustav=[komb[i]==w[i] for i in range(0,3)]; sustav
$(3,2,0)=\big(-t+\frac{8}{3}\big)\cdot(1,1,0)+\big(-t-\frac{1}{3}\big)\cdot(-1,2,0)+t\cdot(0,3,0),\quad t\in\mathbb{R}$
solve(sustav,[x,y,z])
U $M_2(\mathbb{R})$ zadan je skup $\mathcal{B}=\bigg\{\begin{bmatrix}2&3\\ 0&1\end{bmatrix}, \begin{bmatrix}5&4\\ -1&-1\end{bmatrix}, \begin{bmatrix}2&2\\ 1&1\end{bmatrix}, \begin{bmatrix}8&1\\ -3&4\end{bmatrix}\bigg\}$.
a) dio
Pokazat ćemo i ovdje više različitih načina rješavanja zadatka
rješavanje homogenog sustava linearnih jednadžbi
var("x_1 x_2 x_3 x_4")
A1=matrix([[2,3],[0,1]])
A2=matrix([[5,4],[-1,-1]])
A3=matrix([[2,2],[1,1]])
A4=matrix([[8,1],[-3,4]])
x_1*A1+x_2*A2+x_3*A3+x_4*A4
Kako zadani homogeni sustav ima samo trivijalno rješenje, skup $\mathcal{B}$ je linearno nezavisan, a kako mu je broj elemenata jednak dimenziji prostora $M_2(\mathbb{R})$, on je ujedno i baza za taj prostor.
solve_mat(x_1*A1+x_2*A2+x_3*A3+x_4*A4,matrix(2),[x_1,x_2,x_3,x_4])
računanje ranga matrice
v1=vector((2,3,0,1))
v2=vector((5,4,-1,-1))
v3=vector((2,2,1,1))
v4=vector((8,1,-3,4))
M=matrix([v1,v2,v3,v4]).transpose()
M
Kako matrica $M$ ima maksimalni rang, skup $\mathcal{B}$ je linearno nezavisan, a kako mu je broj elemenata jednak dimenziji prostora $M_2(\mathbb{R})$, on je ujedno i baza za taj prostor.
M.rank()
računanje determinante
Kako je determinanta matrice $M$ različita od nule, skup $\mathcal{B}$ je linearno nezavisan, a kako mu je broj elemenata jednak dimenziji prostora $M_2(\mathbb{R})$, on je ujedno i baza za taj prostor.
M.det()
b) dio
Ponovo pokazujemo više različitih načina rješavanja zadatka.
a=vector((2,0,0,8))
A=matrix([[2,0],[0,8]])
pomoću već gotovih SAGE naredbi
V=VectorSpace(QQ,4).span_of_basis([v1,v2,v3,v4])
V.coordinates(a)
rješavanjem sustava linearnih jednadžbi
x_1*A1+x_2*A2+x_3*A3+x_4*A4
solve_mat(x_1*A1+x_2*A2+x_3*A3+x_4*A4,A,[x_1,x_2,x_3,x_4])
pomoću matrice prijelaza
M,M^-1
M^-1*a
Odredite sve $\lambda\in\mathbb{R}$ za koje su vektori $(\lambda,-1,-1),$ $(-1,\lambda,-1)$ i $(-1,-1,\lambda)$ linearno nezavisni u $\mathbb{R}^3$.
var("l")
A=matrix([[l,-1,-1],[-1,l,-1],[-1,-1,l]]).transpose(); A
expand(det(A))
solve(det(A)==0,l)
Zadani vektori su linearno nezavisni za sve one $\lambda\in\mathbb{R}$ za koje je $\det{A}\neq0$, tj. za $\lambda\in\mathbb{R}\setminus\{-1,2\}$.
Odredite dimenziju i neku bazu vektorskog prostora svih rješenja homogenog sustava linearnih jednadžbi
$$\begin{align*}x+2y+z-3t&=0\\[2pt] 2x+4y+4z-t&=0\\[2pt] 3x+6y+7z+t&=0\end{align*}$$
i nadopunite dobivenu bazu do baze za $\mathbb{R}^4$.
Već smo ranije na sličnim zadacima radili detaljne diskusije oko svih mogućih načina rješavanja. Ovdje ćemo zadatak riješiti što je moguće brže i elegantnije, nećemo ulaziti u diskusiju oko svih mogućih načina rješavanja tog zadatka.
A=matrix(QQ,[[1,2,1,-3],[2,4,4,-1],[3,6,7,1]]); A
jedna baza za prostor svih rješenja
A.right_kernel()
dimenzija prostora svih rješenja
A.right_nullity()
Nadopuna dobivene baze do baze za $\mathbb{R}^4$: nadopunjavat ćemo s vektorima iz kanonske baze od $\mathbb{R}^4$. Za vježbu možete probati i s nekim drugim vektorima.
M=A.right_kernel().matrix().transpose()
M=M.augment(identity_matrix(4)); M
M.echelon_form()
Kako je skup svih rješenja zadanog homogenog sustava potprostor dimenzije 2 u $\mathbb{R}^4$, do baze za prostor $\mathbb{R}^4$ potreba su nam još dva vektora. Iz kanonske retčane forme matrice $M$ vidimo da možemo dobivenu bazu $\big\{\big(1,0,-\frac{5}{11},\frac{2}{11}\big), \big(0,1,-\frac{10}{11},\frac{4}{11}\big)\big\}$ za prostor svih rješenja homogenog sustava nadopuniti vektorima $(1,0,0,0)$ i $(0,0,1,0)$ do baze za prostor $\mathbb{R}^4$. Vektori $(1,0,0,0)$ i $(0,0,1,0)$ su ujedno i primjeri dvaju vektora koji ne pripadaju promatranom potprostoru svih rješenja zadnog homogenog sustava. Jasno, takvih vektora još ima beskonačno mnogo.
U vektorskom prostoru $\mathbb{R}^3$ zadane su dvije njegove baze
$$\mathcal{B}_1=\{(1,2,-1), (0,2,0), (1,1,1)\}\ \text{ i }\ \mathcal{B}_2=\{(0,2,1), (2,2,0), (1,-1,1)\}.$$
Vektor $\vec{v}\in\mathbb{R}^3$ u bazi $\mathcal{B}_1$ ima koordinate $(3,-1,2)$.
$\mathcal{B}_{\tiny\text{kan}}\stackrel{\ T_1\ }{\longrightarrow}\mathcal{B}_1,\quad \mathcal{B}_{\tiny\text{kan}}\stackrel{\ T_2\ }{\longrightarrow}\mathcal{B}_2$
T1=matrix([[1,2,-1],[0,2,0],[1,1,1]]).transpose()
T2=matrix([[0,2,1],[2,2,0],[1,-1,1]]).transpose()
Matrica prijelaza iz baze $\mathcal{B}_2$ u bazu $\mathcal{B}_1$ je tada matrica $T_2^{-1}T_1$
T=T2^-1*T1; T
koordinate vektora $\vec{v}$ u bazi $\mathcal{B}_2$
T*vector((3,-1,2))
koordinate vektora $\vec{v}$ u kanonskoj bazi prostora $\mathbb{R}^3$
T1*vector((3,-1,2))
možemo zadatak u SAGE-u elegantno riješiti pomoću njegovih gotovih naredbi ako zanemarimo nametnute zahtjeve u samom zadatku
Najprije definiramo vektorski prostor $V$ dimenzije 3 i istaknemo da želimo raditi u bazi $\mathcal{B}_1$
V=VectorSpace(QQ,3).span_of_basis([[1,2,-1],[0,2,0],[1,1,1]])
Provjera da u vektorskom prostoru $V$ trenutno radimo u bazi $\mathcal{B}_1$
V.basis()
koordinate vektora $\vec{v}$ u kanonskoj bazi prostora $\mathbb{R}^3$
V.linear_combination_of_basis([3,-1,2])
Sada u vektorskom prostoru $V$ promijenimo tekuću bazu $\mathcal{B}_1$ u bazu $\mathcal{B}_2$
V=V.span_of_basis([[0,2,1],[2,2,0],[1,-1,1]])
V.basis()
koordinate vektora $\vec{v}$ u bazi $\mathcal{B}_2$
V.coordinates([5,6,-1])