Vektorski prostori u SAGE-u

verzija: SageMath 9.4

In [1]:
load('MMZI.sage')
Dodatne funkcije za predmet 'Matematicke metode za informaticare'.
MMZI_naredbe je rjecnik u kojemu je po poglavljima dan popis svih dodatnih naredbi koje trenutno postoje.
In [2]:
%display latex

Generiranje vektorskih prostora

Vektorski prostor dimenzije 3 nad poljem racionalnih brojeva

U ovom prvom primjeru pokazat ćemo dva načina generiranja istog vektorskog prostora.

In [3]:
V=VectorSpace(QQ,3); V
Out[3]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\Bold{Q}^{3}\]
In [4]:
V1=span([[1,0,0],[0,1,0],[0,0,1]],QQ); V1
Out[4]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\mathrm{RowSpan}_{\Bold{Q}}\left(\begin{array}{rrr} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array}\right)\]
In [5]:
V1==V
Out[5]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\mathrm{True}\]

baza vektorskog prostora

In [6]:
V.basis()
Out[6]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left(1,\,0,\,0\right), \left(0,\,1,\,0\right), \left(0,\,0,\,1\right)\right]\]

matrica čiji se retci sastoje od vektora iz baze

In [7]:
V.matrix()
Out[7]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrr} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array}\right)\]
In [8]:
V.basis_matrix()
Out[8]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrr} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array}\right)\]

dimenzija vektorskog prostora

In [9]:
V.dimension()
Out[9]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}3\]

promjena baze u vektorskom prostoru

In [10]:
V=V.span_of_basis([[1,0,0],[1,2,0],[3,4,5]]); V
Out[10]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\mathrm{RowSpan}_{\Bold{Q}}\left(\begin{array}{rrr} 1 & 0 & 0 \\ 1 & 2 & 0 \\ 3 & 4 & 5 \end{array}\right)\]
In [11]:
V.basis()
Out[11]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left(1,\,0,\,0\right), \left(1,\,2,\,0\right), \left(3,\,4,\,5\right)\right]\]
In [12]:
V.matrix()
Out[12]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrr} 1 & 0 & 0 \\ 1 & 2 & 0 \\ 3 & 4 & 5 \end{array}\right)\]
In [13]:
V2=span([[1,0,0],[1,2,0],[3,4,5]],QQ); V2
Out[13]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\mathrm{RowSpan}_{\Bold{Q}}\left(\begin{array}{rrr} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{array}\right)\]
In [14]:
V2==V,V2==V1
Out[14]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\mathrm{True}, \mathrm{True}\right)\]

koji vektori pripadaju vektorskom prostoru $V$

In [15]:
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
Out[15]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\mathrm{True}, \mathrm{False}, \mathrm{False}, \mathrm{False}\right)\]

Vektorski prostor dimenzije 4 nad poljem realnih brojeva (53-bitna preciznost)

In [16]:
U=VectorSpace(RR,4); U
Out[16]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\Bold{R}^{4}\]

baza vektorskog prostora

In [17]:
U.basis()
Out[17]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left(1.00000000000000,\,0.000000000000000,\,0.000000000000000,\,0.000000000000000\right), \left(0.000000000000000,\,1.00000000000000,\,0.000000000000000,\,0.000000000000000\right), \left(0.000000000000000,\,0.000000000000000,\,1.00000000000000,\,0.000000000000000\right), \left(0.000000000000000,\,0.000000000000000,\,0.000000000000000,\,1.00000000000000\right)\right]\]

matrica čiji se retci sastoje od vektora iz baze

In [18]:
U.matrix()
Out[18]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrrr} 1.00000000000000 & 0.000000000000000 & 0.000000000000000 & 0.000000000000000 \\ 0.000000000000000 & 1.00000000000000 & 0.000000000000000 & 0.000000000000000 \\ 0.000000000000000 & 0.000000000000000 & 1.00000000000000 & 0.000000000000000 \\ 0.000000000000000 & 0.000000000000000 & 0.000000000000000 & 1.00000000000000 \end{array}\right)\]

dimenzija vektorskog prostora

In [19]:
U.dimension()
Out[19]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}4\]

koji vektori pripadaju vektorskom prostoru $U$

In [20]:
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
Out[20]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\mathrm{True}, \mathrm{False}, \mathrm{False}, \mathrm{False}\right)\]

Vektorski prostor dimenzije 4 nad poljem realnih brojeva (200-bitna preciznost)

In [21]:
U1=VectorSpace(RealField(200),4); U1
Out[21]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\Bold{R}^{4}\]

jedan element iz $U_1$

In [22]:
U1.an_element()
Out[22]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(1.0000000000000000000000000000000000000000000000000000000000,\,0.00000000000000000000000000000000000000000000000000000000000,\,0.00000000000000000000000000000000000000000000000000000000000,\,0.00000000000000000000000000000000000000000000000000000000000\right)\]

matrica čiji se retci sastoje od vektora iz baze

In [23]:
U1.matrix()
Out[23]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrrr} 1.0000000000000000000000000000000000000000000000000000000000 & 0.00000000000000000000000000000000000000000000000000000000000 & 0.00000000000000000000000000000000000000000000000000000000000 & 0.00000000000000000000000000000000000000000000000000000000000 \\ 0.00000000000000000000000000000000000000000000000000000000000 & 1.0000000000000000000000000000000000000000000000000000000000 & 0.00000000000000000000000000000000000000000000000000000000000 & 0.00000000000000000000000000000000000000000000000000000000000 \\ 0.00000000000000000000000000000000000000000000000000000000000 & 0.00000000000000000000000000000000000000000000000000000000000 & 1.0000000000000000000000000000000000000000000000000000000000 & 0.00000000000000000000000000000000000000000000000000000000000 \\ 0.00000000000000000000000000000000000000000000000000000000000 & 0.00000000000000000000000000000000000000000000000000000000000 & 0.00000000000000000000000000000000000000000000000000000000000 & 1.0000000000000000000000000000000000000000000000000000000000 \end{array}\right)\]

Vektorski prostor dimenzije 4 nad poljem kompleksnih brojeva (53-bitna preciznost)

In [24]:
C=VectorSpace(CC,4); C
Out[24]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\Bold{C}^{4}\]

baza vektorskog prostora

In [25]:
C.basis()
Out[25]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left(1.00000000000000,\,0.000000000000000,\,0.000000000000000,\,0.000000000000000\right), \left(0.000000000000000,\,1.00000000000000,\,0.000000000000000,\,0.000000000000000\right), \left(0.000000000000000,\,0.000000000000000,\,1.00000000000000,\,0.000000000000000\right), \left(0.000000000000000,\,0.000000000000000,\,0.000000000000000,\,1.00000000000000\right)\right]\]

matrica čiji se retci sastoje od vektora iz baze

In [26]:
C.matrix()
Out[26]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrrr} 1.00000000000000 & 0.000000000000000 & 0.000000000000000 & 0.000000000000000 \\ 0.000000000000000 & 1.00000000000000 & 0.000000000000000 & 0.000000000000000 \\ 0.000000000000000 & 0.000000000000000 & 1.00000000000000 & 0.000000000000000 \\ 0.000000000000000 & 0.000000000000000 & 0.000000000000000 & 1.00000000000000 \end{array}\right)\]

dimenzija vektorskog prostora

In [27]:
C.dimension()
Out[27]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}4\]

koji vektori pripadaju vektorskom prostoru $C$

In [28]:
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
Out[28]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\mathrm{True}, \mathrm{False}, \mathrm{False}, \mathrm{False}\right)\]

Vektorski prostor dimenzije 3 nad poljem kompleksnih brojeva (200-bitna preciznost)

In [29]:
C1=VectorSpace(ComplexField(200),3); C1
Out[29]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\Bold{C}^{3}\]

baza vektorskog prostora

In [30]:
C1.basis()
Out[30]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left(1.0000000000000000000000000000000000000000000000000000000000,\,0.00000000000000000000000000000000000000000000000000000000000,\,0.00000000000000000000000000000000000000000000000000000000000\right), \left(0.00000000000000000000000000000000000000000000000000000000000,\,1.0000000000000000000000000000000000000000000000000000000000,\,0.00000000000000000000000000000000000000000000000000000000000\right), \left(0.00000000000000000000000000000000000000000000000000000000000,\,0.00000000000000000000000000000000000000000000000000000000000,\,1.0000000000000000000000000000000000000000000000000000000000\right)\right]\]

matrica čiji se retci sastoje od vektora iz baze

In [31]:
C1.matrix()
Out[31]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrr} 1.0000000000000000000000000000000000000000000000000000000000 & 0.00000000000000000000000000000000000000000000000000000000000 & 0.00000000000000000000000000000000000000000000000000000000000 \\ 0.00000000000000000000000000000000000000000000000000000000000 & 1.0000000000000000000000000000000000000000000000000000000000 & 0.00000000000000000000000000000000000000000000000000000000000 \\ 0.00000000000000000000000000000000000000000000000000000000000 & 0.00000000000000000000000000000000000000000000000000000000000 & 1.0000000000000000000000000000000000000000000000000000000000 \end{array}\right)\]

Vektorski prostor dimenzije 5 nad simboličkim prstenom $SR$

In [32]:
W=VectorSpace(SR,5)

matrica čiji se retci sastoje od vektora iz baze

In [33]:
W.matrix()
Out[33]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrrrr} 1 & 0 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 0 & 1 \end{array}\right)\]

vektori koji pripadaju prostoru $W$

In [34]:
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
Out[34]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\mathrm{True}, \mathrm{True}, \mathrm{True}, \mathrm{True}\right)\]

Vektorski prostor dimenzije 4 nad konačnim poljem $\mathbb{F}_3$

In [35]:
GF(3).list()
Out[35]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[0, 1, 2\right]\]
In [36]:
K=VectorSpace(GF(3),4); K
Out[36]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\Bold{F}_{3}^{4}\]

baza vektorskog prostora

In [37]:
K.basis()
Out[37]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left(1,\,0,\,0,\,0\right), \left(0,\,1,\,0,\,0\right), \left(0,\,0,\,1,\,0\right), \left(0,\,0,\,0,\,1\right)\right]\]

svi vektori iz vektorskog prostora $K$

In [38]:
K.list()
Out[38]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left(0,\,0,\,0,\,0\right), \left(1,\,0,\,0,\,0\right), \left(2,\,0,\,0,\,0\right), \left(0,\,1,\,0,\,0\right), \left(1,\,1,\,0,\,0\right), \left(2,\,1,\,0,\,0\right), \left(0,\,2,\,0,\,0\right), \left(1,\,2,\,0,\,0\right), \left(2,\,2,\,0,\,0\right), \left(0,\,0,\,1,\,0\right), \left(1,\,0,\,1,\,0\right), \left(2,\,0,\,1,\,0\right), \left(0,\,1,\,1,\,0\right), \left(1,\,1,\,1,\,0\right), \left(2,\,1,\,1,\,0\right), \left(0,\,2,\,1,\,0\right), \left(1,\,2,\,1,\,0\right), \left(2,\,2,\,1,\,0\right), \left(0,\,0,\,2,\,0\right), \left(1,\,0,\,2,\,0\right), \left(2,\,0,\,2,\,0\right), \left(0,\,1,\,2,\,0\right), \left(1,\,1,\,2,\,0\right), \left(2,\,1,\,2,\,0\right), \left(0,\,2,\,2,\,0\right), \left(1,\,2,\,2,\,0\right), \left(2,\,2,\,2,\,0\right), \left(0,\,0,\,0,\,1\right), \left(1,\,0,\,0,\,1\right), \left(2,\,0,\,0,\,1\right), \left(0,\,1,\,0,\,1\right), \left(1,\,1,\,0,\,1\right), \left(2,\,1,\,0,\,1\right), \left(0,\,2,\,0,\,1\right), \left(1,\,2,\,0,\,1\right), \left(2,\,2,\,0,\,1\right), \left(0,\,0,\,1,\,1\right), \left(1,\,0,\,1,\,1\right), \left(2,\,0,\,1,\,1\right), \left(0,\,1,\,1,\,1\right), \left(1,\,1,\,1,\,1\right), \left(2,\,1,\,1,\,1\right), \left(0,\,2,\,1,\,1\right), \left(1,\,2,\,1,\,1\right), \left(2,\,2,\,1,\,1\right), \left(0,\,0,\,2,\,1\right), \left(1,\,0,\,2,\,1\right), \left(2,\,0,\,2,\,1\right), \left(0,\,1,\,2,\,1\right), \left(1,\,1,\,2,\,1\right), \left(2,\,1,\,2,\,1\right), \left(0,\,2,\,2,\,1\right), \left(1,\,2,\,2,\,1\right), \left(2,\,2,\,2,\,1\right), \left(0,\,0,\,0,\,2\right), \left(1,\,0,\,0,\,2\right), \left(2,\,0,\,0,\,2\right), \left(0,\,1,\,0,\,2\right), \left(1,\,1,\,0,\,2\right), \left(2,\,1,\,0,\,2\right), \left(0,\,2,\,0,\,2\right), \left(1,\,2,\,0,\,2\right), \left(2,\,2,\,0,\,2\right), \left(0,\,0,\,1,\,2\right), \left(1,\,0,\,1,\,2\right), \left(2,\,0,\,1,\,2\right), \left(0,\,1,\,1,\,2\right), \left(1,\,1,\,1,\,2\right), \left(2,\,1,\,1,\,2\right), \left(0,\,2,\,1,\,2\right), \left(1,\,2,\,1,\,2\right), \left(2,\,2,\,1,\,2\right), \left(0,\,0,\,2,\,2\right), \left(1,\,0,\,2,\,2\right), \left(2,\,0,\,2,\,2\right), \left(0,\,1,\,2,\,2\right), \left(1,\,1,\,2,\,2\right), \left(2,\,1,\,2,\,2\right), \left(0,\,2,\,2,\,2\right), \left(1,\,2,\,2,\,2\right), \left(2,\,2,\,2,\,2\right)\right]\]

ukupni broj vektora u vektorskom prostoru $K$

In [39]:
K.cardinality()
Out[39]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}81\]

Vektorski prostor dimenzije 3 nad algebarskim zatvorenjem $\overline{\mathbb{Q}}$ polja $\mathbb{Q}$

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}}$.

In [40]:
QQbar
Out[40]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\overline{\QQ}\]
In [41]:
2 in QQbar, 2^(1/3)+5^(3/4) in QQbar, 5.02 in QQbar, 502/100 in QQbar, cos(4) in QQbar
Out[41]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\mathrm{True}, \mathrm{True}, \mathrm{False}, \mathrm{True}, \mathrm{False}\right)\]
In [42]:
T=VectorSpace(QQbar,3); T
Out[42]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\overline{\QQ}^{3}\]
In [43]:
T.basis()
Out[43]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left(1,\,0,\,0\right), \left(0,\,1,\,0\right), \left(0,\,0,\,1\right)\right]\]

Generiranje vektorskih potprostora

Primjer

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

In [44]:
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.

In [45]:
U
Out[45]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\mathrm{RowSpan}_{\overline{\QQ}}\left(\begin{array}{rrrr} 1 & 2 & 0 & \frac{1}{3} \\ 0 & 0 & 1 & -\frac{8}{3} \end{array}\right)\]
In [46]:
W
Out[46]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\mathrm{RowSpan}_{\overline{\QQ}}\left(\begin{array}{rrrr} 1 & 2 & 0 & \frac{1}{3} \\ 0 & 0 & 1 & -\frac{8}{3} \end{array}\right)\]
In [47]:
U.basis()
Out[47]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left(1,\,2,\,0,\,\frac{1}{3}\right), \left(0,\,0,\,1,\,-\frac{8}{3}\right)\right]\]
In [48]:
W.basis()
Out[48]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left(1,\,2,\,0,\,\frac{1}{3}\right), \left(0,\,0,\,1,\,-\frac{8}{3}\right)\right]\]
In [49]:
U==W
Out[49]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\mathrm{True}\]

2. način generiranja potprostora

Ovaj način generiranja potprostora također odmah traži "kanonske baze" tih potprostora.

In [50]:
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]])
In [51]:
U1
Out[51]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\mathrm{RowSpan}_{\overline{\QQ}}\left(\begin{array}{rrrr} 1 & 2 & 0 & \frac{1}{3} \\ 0 & 0 & 1 & -\frac{8}{3} \end{array}\right)\]
In [52]:
W1
Out[52]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\mathrm{RowSpan}_{\overline{\QQ}}\left(\begin{array}{rrrr} 1 & 2 & 0 & \frac{1}{3} \\ 0 & 0 & 1 & -\frac{8}{3} \end{array}\right)\]
In [53]:
U1==U, U1==W1, W==W1, W==U1
Out[53]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\mathrm{True}, \mathrm{True}, \mathrm{True}, \mathrm{True}\right)\]

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.

In [54]:
W2=(QQbar^4).subspace_with_basis([[1,2,-4,11],[2,4,-5,14]]); W2
Out[54]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\mathrm{RowSpan}_{\overline{\QQ}}\left(\begin{array}{rrrr} 1 & 2 & -4 & 11 \\ 2 & 4 & -5 & 14 \end{array}\right)\]
In [55]:
W2.basis()
Out[55]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left(1,\,2,\,-4,\,11\right), \left(2,\,4,\,-5,\,14\right)\right]\]
In [56]:
U2=(QQbar^4).subspace_with_basis([[1,2,-1,3],[2,4,1,-2],[3,6,3,-7]])
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
/tmp/ipykernel_12608/128481298.py in <module>
----> 1 U2=(QQbar**Integer(4)).subspace_with_basis([[Integer(1),Integer(2),-Integer(1),Integer(3)],[Integer(2),Integer(4),Integer(1),-Integer(2)],[Integer(3),Integer(6),Integer(3),-Integer(7)]])

/usr/lib/python3.9/site-packages/sage/modules/free_module.py in subspace_with_basis(self, gens, check, already_echelonized)
   4151             True
   4152         """
-> 4153         return self.submodule_with_basis(gens, check=check, already_echelonized=already_echelonized)
   4154 
   4155     def complement(self):

/usr/lib/python3.9/site-packages/sage/modules/free_module.py in submodule_with_basis(self, basis, check, already_echelonized)
   3469             [ 2  0 -x]
   3470         """
-> 3471         V = self.span_of_basis(basis=basis, check=check, already_echelonized=already_echelonized)
   3472         if check:
   3473             if not V.is_submodule(self):

/usr/lib/python3.9/site-packages/sage/modules/free_module.py in span_of_basis(self, basis, base_ring, check, already_echelonized)
   4003             basis = basis.gens()
   4004         if base_ring is None:
-> 4005             return FreeModule_submodule_with_basis_field(
   4006                 self.ambient_module(), basis=basis, check=check, already_echelonized=already_echelonized)
   4007         else:

/usr/lib/python3.9/site-packages/sage/modules/free_module.py in __init__(self, ambient, basis, check, echelonize, echelonized_basis, already_echelonized)
   6916             [4 5 6]
   6917         """
-> 6918         FreeModule_submodule_with_basis_pid.__init__(
   6919             self, ambient, basis=basis, check=check, echelonize=echelonize,
   6920             echelonized_basis=echelonized_basis, already_echelonized=already_echelonized)

/usr/lib/python3.9/site-packages/sage/modules/free_module.py in __init__(self, ambient, basis, check, echelonize, echelonized_basis, already_echelonized)
   5867             self.__echelonized_basis = basis_seq(self, w)
   5868         if check and len(basis) != len(self.__echelonized_basis):
-> 5869             raise ValueError("The given basis vectors must be linearly "
   5870                              "independent.")
   5871 

ValueError: The given basis vectors must be linearly independent.
In [57]:
W2==U
Out[57]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\mathrm{True}\]

Kako bismo taj primjer rješavali ručno?

Definicija

Za matricu $A$ kažemo da je u retčanoj kanonskoj formi ako vrijede sljedeći uvjeti:

  1. Svi nul-retci, ako postoje, nalaze se na dnu matrice.
  2. Pivot u pojedinom retku se nalazi uvijek desno od pivota u prethodnom retku. Pivot u pojedinom retku je prvi element u tom retku koji je različit od nule.
  3. Svi pivoti su jednaki 1.
  4. Svaki pivot je jedini element različit od nule u svojem stupcu.

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.

In [58]:
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.

In [59]:
A,B
Out[59]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\left(\begin{array}{rrrr} 1 & 2 & -1 & 3 \\ 2 & 4 & 1 & -2 \\ 3 & 6 & 3 & -7 \end{array}\right), \left(\begin{array}{rrrr} 1 & 2 & -4 & 11 \\ 2 & 4 & -5 & 14 \end{array}\right)\right)\]

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$.

In [60]:
A.echelon_form(),B.echelon_form()
Out[60]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\left(\begin{array}{rrrr} 1 & 2 & 0 & \frac{1}{3} \\ 0 & 0 & 1 & -\frac{8}{3} \\ 0 & 0 & 0 & 0 \end{array}\right), \left(\begin{array}{rrrr} 1 & 2 & 0 & \frac{1}{3} \\ 0 & 0 & 1 & -\frac{8}{3} \end{array}\right)\right)\]
In [61]:
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.

In [62]:
A1.echelon_form(),B1.echelon_form()
Out[62]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\left(\begin{array}{rrrr} 1 & 2 & 2 & -5 \\ 0 & 0 & 3 & -8 \\ 0 & 0 & 0 & 0 \end{array}\right), \left(\begin{array}{rrrr} 1 & 2 & 2 & -5 \\ 0 & 0 & 3 & -8 \end{array}\right)\right)\]
In [63]:
A.base_ring(),A1.base_ring()
Out[63]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\Bold{Q}, \Bold{Z}\right)\]

Zadaci

1. zadatak

U prostoru $\mathbb{R}^4$ promatramo sljedeće skupove vektora:

  1. $(1,2,-3,1), (2,0,4,1), (5,-4,14,-3)$
  2. $(2,1,2,1), (6,3,6,3), (5,1,4,3)$
  3. $(1,1,0,0), (1,0,1,0), (0,1,1,0)$

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.

Rješenje

1. način: rješavanje homogenog sustava jednadžbi

In [64]:
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
Out[64]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(x + 2 \, y + 5 \, z,\,2 \, x - 4 \, z,\,-3 \, x + 4 \, y + 14 \, z,\,x + y - 3 \, z\right)\]

Kako pripadni homogeni sustav ima samo trivijalno rješenje, vektori iz a) dijela zadatka su linearno nezavisni.

In [65]:
solve([komb[0]==0,komb[1]==0,komb[2]==0,komb[3]==0],[x,y,z])
Out[65]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x = 0, y = 0, z = 0\right]\right]\]
In [66]:
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
Out[66]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(2 \, x + 6 \, y + 5 \, z,\,x + 3 \, y + z,\,2 \, x + 6 \, y + 4 \, z,\,x + 3 \, y + 3 \, z\right)\]

Kako pripadni homogeni sustav ima i netrivijalnih rješenja, vektori iz b) dijela zadatka su linearno zavisni.

In [67]:
solve([komb2[0]==0,komb2[1]==0,komb2[2]==0,komb2[3]==0],[x,y,z])
Out[67]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x = -3 \, r_{1}, y = r_{1}, z = 0\right]\right]\]
In [68]:
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
Out[68]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(x + y,\,x + z,\,y + z,\,0\right)\]

Kako pripadni homogeni sustav ima samo trivijalno rješenje, vektori iz c) dijela zadatka su linearno nezavisni.

In [69]:
solve([komb3[0]==0,komb3[1]==0,komb3[2]==0,komb3[3]==0],[x,y,z])
Out[69]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x = 0, y = 0, z = 0\right]\right]\]

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.

In [70]:
A=matrix([a1,a2,a3]).transpose(); A
Out[70]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrr} 1 & 2 & 5 \\ 2 & 0 & -4 \\ -3 & 4 & 14 \\ 1 & 1 & -3 \end{array}\right)\]

Matrica $A$ je maksimalnog ranga pa su vektori iz a) dijela zadatka linearno nezavisni.

In [71]:
rank(A)
Out[71]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}3\]
In [72]:
B=matrix([b1,b2,b3]).transpose(); B
Out[72]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrr} 2 & 6 & 5 \\ 1 & 3 & 1 \\ 2 & 6 & 4 \\ 1 & 3 & 3 \end{array}\right)\]

Matrica $B$ nije maksimalnog ranga pa su vektori iz b) dijela zadatka linearno zavisni.

In [73]:
B.rank()
Out[73]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}2\]

Matrica $C$ je maksimalnog ranga pa su vektori iz c) dijela zadatka linearno nezavisni.

In [74]:
C=matrix([c1,c2,c3]).transpose(); C
Out[74]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrr} 1 & 1 & 0 \\ 1 & 0 & 1 \\ 0 & 1 & 1 \\ 0 & 0 & 0 \end{array}\right)\]
In [75]:
C.rank()
Out[75]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}3\]

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)$

In [76]:
izraz1=x*b2+y*b3
sustav1=[izraz1[0]==b1[0],izraz1[1]==b1[1],izraz1[2]==b1[2],izraz1[3]==b1[3]]; sustav1
Out[76]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[6 \, x + 5 \, y = 2, 3 \, x + y = 1, 6 \, x + 4 \, y = 2, 3 \, x + 3 \, y = 1\right]\]
In [77]:
solve(sustav1,[x,y])
Out[77]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x = \left(\frac{1}{3}\right), y = 0\right]\right]\]

$(6,3,6,3)=3\cdot(2,1,2,1)+0\cdot(5,1,4,3)$

In [78]:
izraz2=x*b1+y*b3
sustav2=[izraz2[0]==b2[0],izraz2[1]==b2[1],izraz2[2]==b2[2],izraz2[3]==b2[3]]; sustav2
Out[78]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[2 \, x + 5 \, y = 6, x + y = 3, 2 \, x + 4 \, y = 6, x + 3 \, y = 3\right]\]
In [79]:
solve(sustav2,[x,y])
Out[79]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x = 3, y = 0\right]\right]\]

vektor $(5,1,4,3)$ se ne može prikazati kao linearna kombinacija vektora $(2,1,2,1)$ i $(6,3,6,3)$

In [80]:
izraz3=x*b1+y*b2
sustav3=[izraz3[0]==b3[0],izraz3[1]==b3[1],izraz3[2]==b3[2],izraz3[3]==b3[3]]; sustav3
Out[80]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[2 \, x + 6 \, y = 5, x + 3 \, y = 1, 2 \, x + 6 \, y = 4, x + 3 \, y = 3\right]\]
In [81]:
solve(sustav3,[x,y])
Out[81]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\right]\]

2. zadatak

Riješite jednadžbu $17a+6x=-13b$ u prostoru $\mathbb{R}^3$ ako je $a=(5,2,3)$ i $b=(6,-4,3)$.

Rješenje

In [82]:
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))
In [83]:
lijeva=17*a+6*x
desna=-13*b
sustav=[lijeva[k]==desna[k] for k in range(0,3)]; sustav
Out[83]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[6 \, x_{1} + 85 = \left(-78\right), 6 \, x_{2} + 34 = 52, 6 \, x_{3} + 51 = \left(-39\right)\right]\]

$x=\big(-\frac{163}{6},3,-15\big)$

In [84]:
solve(sustav,[x_1,x_2,x_3])
Out[84]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x_{1} = \left(-\frac{163}{6}\right), x_{2} = 3, x_{3} = \left(-15\right)\right]\right]\]

3. zadatak

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)$.

Rješenje

In [85]:
a=vector((5,2-I,3+7*I))
b=vector((6+2*I,-4,3*I))
x=vector((x_1,x_2,x_3))
In [86]:
lijeva=7*a+(6-5*I)*x
desna=(-3+7*I)*b
sustav=[lijeva[k]==desna[k] for k in range(0,3)]; sustav
Out[86]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[-\left(5 i - 6\right) \, x_{1} + 35 = \left(36 i - 32\right), -\left(5 i - 6\right) \, x_{2} - 7 i + 14 = \left(-28 i + 12\right), -\left(5 i - 6\right) \, x_{3} + 49 i + 21 = \left(-9 i - 21\right)\right]\]
In [87]:
solve(sustav,[x_1,x_2,x_3])
Out[87]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x_{1} = \left(-\frac{119}{61} i - \frac{582}{61}\right), x_{2} = \left(-\frac{136}{61} i + \frac{93}{61}\right), x_{3} = \left(-\frac{558}{61} i + \frac{38}{61}\right)\right]\right]\]

4. zadatak

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$.

Rješenje

In [88]:
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))
In [89]:
lijeva=6*a+17*x
sustav=[lijeva[g]==b[g] for g in range(0,4)]; sustav
Out[89]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[17 \, k_{0} + 12 = 6, 17 \, k_{1} - 18 = 2, 17 \, k_{2} - 36 = 0, 17 \, k_{3} + 42 = 0\right]\]

$x=-\frac{6}{17}+\frac{20}{17}t+\frac{36}{17}t^2-\frac{42}{17}t^3$

In [90]:
solve(sustav,[k_0,k_1,k_2,k_3])
Out[90]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[k_{0} = \left(-\frac{6}{17}\right), k_{1} = \left(\frac{20}{17}\right), k_{2} = \left(\frac{36}{17}\right), k_{3} = \left(-\frac{42}{17}\right)\right]\right]\]

5. zadatak

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*}.$$

Rješenje

1. način: rješavanje zadanog homogenog sustava

In [91]:
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])
Out[91]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x_{1} = -\frac{5}{2} \, r_{2} + \frac{3}{2} \, r_{3}, x_{2} = r_{3}, x_{3} = r_{2}\right]\right]\]

$\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.

In [92]:
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])
Out[92]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x_{3} = \frac{3}{5} \, r_{4} - \frac{2}{5} \, r_{5}, x_{1} = r_{5}, x_{2} = r_{4}\right]\right]\]

$\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.

In [93]:
A=matrix(QQ,[[-5/2,0,1],[3/2,1,0]])
B=matrix(QQ,[[0,1,3/5],[1,0,-2/5]])
In [94]:
A.echelon_form(),B.echelon_form()
Out[94]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\left(\begin{array}{rrr} 1 & 0 & -\frac{2}{5} \\ 0 & 1 & \frac{3}{5} \end{array}\right), \left(\begin{array}{rrr} 1 & 0 & -\frac{2}{5} \\ 0 & 1 & \frac{3}{5} \end{array}\right)\right)\]

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.

In [95]:
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.

In [96]:
A1,B1,C1
Out[96]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\left(\begin{array}{rr} -\frac{5}{2} & \frac{3}{2} \\ 0 & 1 \\ 1 & 0 \end{array}\right), \left(\begin{array}{rr} 0 & 1 \\ 1 & 0 \\ \frac{3}{5} & -\frac{2}{5} \end{array}\right), \left(\begin{array}{rrrr} -\frac{5}{2} & \frac{3}{2} & 0 & 1 \\ 0 & 1 & 1 & 0 \\ 1 & 0 & \frac{3}{5} & -\frac{2}{5} \end{array}\right)\right)\]
In [97]:
rank(A1),rank(B1),rank(C1)
Out[97]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(2, 2, 2\right)\]

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).

In [98]:
M=matrix(QQ,[[2,-3,5],[4,-6,10]])

Postoji već gotova naredba za traženje jezgre (tj. desne jezgre) matrice.

In [99]:
M.right_kernel()
Out[99]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\mathrm{RowSpan}_{\Bold{Q}}\left(\begin{array}{rrr} 1 & 0 & -\frac{2}{5} \\ 0 & 1 & \frac{3}{5} \end{array}\right)\]

dimenzija od $R(S)$

In [100]:
M.right_nullity()
Out[100]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}2\]

6. zadatak

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*}.$$

Rješenje

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.

In [101]:
M=matrix(QQ,[[2,-3,5],[-1,5,7]])

jedna baza za $R(S)$

In [102]:
M.right_kernel()
Out[102]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\mathrm{RowSpan}_{\Bold{Q}}\left(\begin{array}{rrr} 1 & \frac{19}{46} & -\frac{7}{46} \end{array}\right)\]

dimenzija od $R(S)$

In [103]:
M.right_nullity()
Out[103]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}1\]

7. zadatak

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.

Rješenje

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.

In [104]:
M=matrix(QQ,[[1,1,1,1]])

jedna baza za $V$

In [105]:
M.right_kernel()
Out[105]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\mathrm{RowSpan}_{\Bold{Q}}\left(\begin{array}{rrrr} 1 & 0 & 0 & -1 \\ 0 & 1 & 0 & -1 \\ 0 & 0 & 1 & -1 \end{array}\right)\]

dimenzija od $V$

In [106]:
M.right_nullity()
Out[106]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}3\]

8. zadatak

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}$.

Rješenje

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.

In [107]:
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
Out[107]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(x + y + 3 \, z,\,2 \, y + 4 \, z,\,5 \, z\right)\]
In [108]:
solve([komb[t]==0 for t in range(0,3)],[x,y,z])
Out[108]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x = 0, y = 0, z = 0\right]\right]\]

Kako je rang matrice $A$ maksimalan (jednak broju vektora u $\mathcal{B}$), skup $\mathcal{B}$ je linearno nezavisan skup.

In [109]:
A=matrix(QQ,[[1,0,0],[1,2,0],[3,4,5]])
In [110]:
rank(A)
Out[110]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}3\]

Kako je determinanta matrice $A$ različita od nule, skup $\mathcal{B}$ je linearno nezavisan skup.

In [111]:
A.det()
Out[111]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}10\]

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$.

In [112]:
V=VectorSpace(QQ,3).span_of_basis([[1,0,0],[1,2,0],[3,4,5]])

samo provjera da radimo u željenoj bazi

In [113]:
V.basis()
Out[113]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left(1,\,0,\,0\right), \left(1,\,2,\,0\right), \left(3,\,4,\,5\right)\right]\]

koordinate vektora $a=(1,1,4)$ u bazi $\mathcal{B}$

In [114]:
V.coordinates((1,1,4))
Out[114]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[-\frac{3}{10}, -\frac{11}{10}, \frac{4}{5}\right]\]

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

In [115]:
v=vector((1,1,4))
In [116]:
sustav=[komb[t]==v[t] for t in range(0,3)]; sustav
Out[116]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[x + y + 3 \, z = 1, 2 \, y + 4 \, z = 1, 5 \, z = 4\right]\]
In [117]:
solve(sustav,[x,y,z])
Out[117]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x = \left(-\frac{3}{10}\right), y = \left(-\frac{11}{10}\right), z = \left(\frac{4}{5}\right)\right]\right]\]

2. način: pomoću matrice prijelaza

matrica prijelaza iz kanonske baze u bazu $\mathcal{B}$

In [118]:
T=matrix(QQ,[[1,0,0],[1,2,0],[3,4,5]]).transpose(); T
Out[118]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrr} 1 & 1 & 3 \\ 0 & 2 & 4 \\ 0 & 0 & 5 \end{array}\right)\]

matrica prijelaza iz baze $\mathcal{B}$ u kanonsku bazu

In [119]:
T^-1
Out[119]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrr} 1 & -\frac{1}{2} & -\frac{1}{5} \\ 0 & \frac{1}{2} & -\frac{2}{5} \\ 0 & 0 & \frac{1}{5} \end{array}\right)\]
In [120]:
T^-1*v
Out[120]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(-\frac{3}{10},\,-\frac{11}{10},\,\frac{4}{5}\right)\]

9. zadatak

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?$

Rješenje

In [121]:
A=matrix(QQ,[[2,-4,6,2],[3,4,1,6],[5,0,7,8]]).transpose(); A
Out[121]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrr} 2 & 3 & 5 \\ -4 & 4 & 0 \\ 6 & 1 & 7 \\ 2 & 6 & 8 \end{array}\right)\]

Rang zadanog skupa vektora jednak je 2. Kako taj rang nije jednak broju vektora, zadani vektori su linearno zavisni.

In [122]:
rank(A)
Out[122]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}2\]

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$.

In [123]:
A.echelon_form()
Out[123]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrr} 1 & 0 & 1 \\ 0 & 1 & 1 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{array}\right)\]

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$.

In [124]:
A.swap_columns(1,2)
In [125]:
A
Out[125]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrr} 2 & 5 & 3 \\ -4 & 0 & 4 \\ 6 & 7 & 1 \\ 2 & 8 & 6 \end{array}\right)\]

Tada retčana kanonska forma izgleda

In [126]:
A.echelon_form()
Out[126]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrr} 1 & 0 & -1 \\ 0 & 1 & 1 \\ 0 & 0 & 0 \\ 0 & 0 & 0 \end{array}\right)\]

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$.

10. zadatak

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$?

Rješenje

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).$$

In [127]:
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
Out[127]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrrrr} 0 & 1 & -2 & 3 & 3 \\ 1 & -1 & 1 & 0 & 1 \\ 1 & 0 & -1 & 3 & 3 \\ 1 & 1 & 2 & 1 & 1 \end{array}\right)\]
In [128]:
A.echelon_form()
Out[128]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrrrr} 1 & 0 & 0 & 2 & 0 \\ 0 & 1 & 0 & 1 & 0 \\ 0 & 0 & 1 & -1 & 0 \\ 0 & 0 & 0 & 0 & 1 \end{array}\right)\]

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$

In [129]:
W=(QQ^4).subspace_with_basis([p,q,r]); W
Out[129]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\mathrm{RowSpan}_{\Bold{Q}}\left(\begin{array}{rrrr} 0 & 1 & 1 & 1 \\ 1 & -1 & 0 & 1 \\ -2 & 1 & -1 & 2 \end{array}\right)\]

$f(t)=2p(t)+q(t)-r(t)$

In [130]:
W.coordinates(f)
Out[130]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[2, 1, -1\right]\]

Još jedan način da provjerimo da polinom $g$ ne pripada potprostoru razapetom s polinomima $p, q, r$

In [131]:
W.coordinates(g)
---------------------------------------------------------------------------
ArithmeticError                           Traceback (most recent call last)
/tmp/ipykernel_12608/3788379302.py in <module>
----> 1 W.coordinates(g)

/usr/lib/python3.9/site-packages/sage/modules/free_module.py in coordinates(self, v, check)
   1865             [2, -1]
   1866         """
-> 1867         return self.coordinate_vector(v, check=check).list()
   1868 
   1869     def coordinate_vector(self, v, check=True):

/usr/lib/python3.9/site-packages/sage/modules/free_module.py in coordinate_vector(self, v, check)
   6618         """
   6619         # First find the coordinates of v wrt echelon basis.
-> 6620         w = self.echelon_coordinate_vector(v, check=check)
   6621         # Next use transformation matrix from echelon basis to
   6622         # user basis.

/usr/lib/python3.9/site-packages/sage/modules/free_module.py in echelon_coordinate_vector(self, v, check)
   6680             (1, 18)
   6681         """
-> 6682         return FreeModule(self.base_ring().fraction_field(), self.rank())(self.echelon_coordinates(v, check=check))
   6683 
   6684     def has_user_basis(self):

/usr/lib/python3.9/site-packages/sage/modules/free_module.py in echelon_coordinates(self, v, check)
   6216         lc = E.linear_combination_of_rows(x)
   6217         if list(lc) != list(v):
-> 6218             raise ArithmeticError("vector is not in free module")
   6219         return x
   6220 

ArithmeticError: vector is not in free module

11. zadatak

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.

Rješenje

In [132]:
var("t")
expand((t-2)*(t+1)),expand((t-2)*(t+1)*(t+3))
Out[132]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(t^{2} - t - 2, t^{3} + 2 \, t^{2} - 5 \, t - 6\right)\]

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).$$

In [133]:
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))
In [134]:
A=matrix(QQ,[f1,f2,f3,f4]).transpose(); A
Out[134]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrrr} 5 & 1 & -2 & -6 \\ 0 & 1 & -1 & -5 \\ 0 & 0 & 1 & 2 \\ 0 & 0 & 0 & 1 \end{array}\right)\]

Kako je determinanta matrice $A$ različita od nule, polinomi $f_1, f_2, f_3, f_4$ čine bazu za $\mathcal{P}_4$.

In [135]:
A.det()
Out[135]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}5\]

Koordinate polinoma $p$ u bazi $\big\{f_1,f_2,f_3,f_4\big\}$

In [136]:
V=VectorSpace(QQ,4).span_of_basis([f1,f2,f3,f4])
In [137]:
V.coordinates(p)
Out[137]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[1, 2, -1, -2\right]\]

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

In [138]:
A^-1
Out[138]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrrr} \frac{1}{5} & -\frac{1}{5} & \frac{1}{5} & -\frac{1}{5} \\ 0 & 1 & 1 & 3 \\ 0 & 0 & 1 & -2 \\ 0 & 0 & 0 & 1 \end{array}\right)\]
In [139]:
A^-1*p
Out[139]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(1,\,2,\,-1,\,-2\right)\]

12. zadatak

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})$?

Rješenje

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

In [140]:
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})$.

In [141]:
solve_mat(x*A+y*B+z*C,matrix(2),[x,y,z])
Out[141]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x = 0, y = 0, z = 0\right]\right]\]

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.

In [142]:
M=matrix([[1,0,1,1],[1,1,1,1],[0,1,1,1]]).transpose(); M
Out[142]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrr} 1 & 1 & 0 \\ 0 & 1 & 1 \\ 1 & 1 & 1 \\ 1 & 1 & 1 \end{array}\right)\]

Kako je matrica $M$ maksimalnog ranga, zadane matrice $A, B, C$ su linearno nezavisne u $M_2(\mathbb{R})$.

In [143]:
M.rank()
Out[143]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}3\]

13. zadatak

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$.

Rješenje

In [144]:
M=matrix([[0,1,0,0,0],[1,2,1,0,1],[1,1,0,0,0]]).transpose(); M
Out[144]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrr} 0 & 1 & 1 \\ 1 & 2 & 1 \\ 0 & 1 & 0 \\ 0 & 0 & 0 \\ 0 & 1 & 0 \end{array}\right)\]

Matrica $M$ je maksimalnog ranga pa je skup $B$ linearno nezavisan u $\mathbb{R}^5$.

In [145]:
M.rank()
Out[145]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}3\]

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.

In [146]:
M1=M.augment(identity_matrix(5))
M,M1
Out[146]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\left(\begin{array}{rrr} 0 & 1 & 1 \\ 1 & 2 & 1 \\ 0 & 1 & 0 \\ 0 & 0 & 0 \\ 0 & 1 & 0 \end{array}\right), \left(\begin{array}{rrrrrrrr} 0 & 1 & 1 & 1 & 0 & 0 & 0 & 0 \\ 1 & 2 & 1 & 0 & 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 1 \end{array}\right)\right)\]
In [147]:
M1.echelon_form()
Out[147]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrrrrrrr} 1 & 0 & 0 & -1 & 1 & 0 & 0 & -1 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 1 & 0 & 0 & 0 & -1 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & -1 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \end{array}\right)\]

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.

In [148]:
M1.swap_columns(5,7)
M1
Out[148]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrrrrrrr} 0 & 1 & 1 & 1 & 0 & 0 & 0 & 0 \\ 1 & 2 & 1 & 0 & 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 & 0 & 1 & 0 & 0 \end{array}\right)\]
In [149]:
M1.echelon_form()
Out[149]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrrrrrrr} 1 & 0 & 0 & -1 & 1 & 0 & 0 & -1 \\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 1 \\ 0 & 0 & 1 & 1 & 0 & 0 & 0 & -1 \\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & -1 \\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0 \end{array}\right)\]

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.

14. zadatak

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$.

Rješenje

In [150]:
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"

In [151]:
W.basis()
Out[151]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left(1,\,0,\,0,\,5,\,\frac{35}{4}\right), \left(0,\,1,\,0,\,-1,\,-\frac{7}{4}\right), \left(0,\,0,\,1,\,0,\,\frac{5}{4}\right)\right]\]
In [152]:
W.dimension()
Out[152]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}3\]

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$

In [153]:
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
Out[153]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrrrr} 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 \end{array}\right)\]

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)

In [154]:
A.echelon_form()
Out[154]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrrrr} 1 & 0 & 0 & 5 & \frac{35}{4} \\ 0 & 1 & 0 & -1 & -\frac{7}{4} \\ 0 & 0 & 1 & 0 & \frac{5}{4} \\ 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \end{array}\right)\]

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.

In [155]:
B=A.transpose(); B
Out[155]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrrrr} 1 & 2 & 1 & 1 & 2 \\ 2 & 4 & 3 & 4 & 7 \\ -1 & -2 & 2 & 5 & 3 \\ 3 & 6 & 2 & 1 & 3 \\ 4 & 8 & 6 & 8 & 9 \end{array}\right)\]
In [156]:
B.echelon_form()
Out[156]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrrrr} 1 & 2 & 0 & -1 & 0 \\ 0 & 0 & 1 & 2 & 0 \\ 0 & 0 & 0 & 0 & 1 \\ 0 & 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 & 0 \end{array}\right)\]

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.

15. zadatak

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}$.

  1. Odredite dimenziju i neku bazu potprostora od $\mathbb{R}^4$ koji je razapet sa stupcima matrice $M$.
  2. Odredite dimenziju i neku bazu potprostora od $\mathbb{R}^5$ koji je razapet sa retcima matrice $M$.

Rješenje

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.

In [157]:
M=matrix(QQ,[[1,3,-2,5,4],[1,4,1,3,5],[1,4,2,4,3],[2,7,-3,6,13]]); M
Out[157]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrrrr} 1 & 3 & -2 & 5 & 4 \\ 1 & 4 & 1 & 3 & 5 \\ 1 & 4 & 2 & 4 & 3 \\ 2 & 7 & -3 & 6 & 13 \end{array}\right)\]

a) dio

In [158]:
M.transpose(), M.transpose().echelon_form()
Out[158]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\left(\begin{array}{rrrr} 1 & 1 & 1 & 2 \\ 3 & 4 & 4 & 7 \\ -2 & 1 & 2 & -3 \\ 5 & 3 & 4 & 6 \\ 4 & 5 & 3 & 13 \end{array}\right), \left(\begin{array}{rrrr} 1 & 0 & 0 & 1 \\ 0 & 1 & 0 & 3 \\ 0 & 0 & 1 & -2 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \end{array}\right)\right)\]

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.

In [159]:
M.echelon_form()
Out[159]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrrrr} 1 & 0 & 0 & 22 & -21 \\ 0 & 1 & 0 & -5 & 7 \\ 0 & 0 & 1 & 1 & -2 \\ 0 & 0 & 0 & 0 & 0 \end{array}\right)\]

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

In [160]:
M.echelon_form()
Out[160]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrrrr} 1 & 0 & 0 & 22 & -21 \\ 0 & 1 & 0 & -5 & 7 \\ 0 & 0 & 1 & 1 & -2 \\ 0 & 0 & 0 & 0 & 0 \end{array}\right)\]

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.

In [161]:
M.transpose().echelon_form()
Out[161]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrrr} 1 & 0 & 0 & 1 \\ 0 & 1 & 0 & 3 \\ 0 & 0 & 1 & -2 \\ 0 & 0 & 0 & 0 \\ 0 & 0 & 0 & 0 \end{array}\right)\]

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.

16. zadatak

Neka je $S=\{(1,1,0), (-1,2,0), (0,3,0)\}$.

  1. Je li $S$ linearno nezavisan ili zavisan skup u $\mathbb{R}^3$?
  2. Ispitajte da li vektor $(3,2,0)$ pripada skupu $\mathcal{L}(S)$.
  3. Može li se vektor $(3,2,0)$ na jedinstveni način prikazati pomoću vektora iz skupa $S$? Objasnite.

Rješenje

In [162]:
v1=vector((1,1,0))
v2=vector((-1,2,0))
v3=vector((0,3,0))
w=vector((3,2,0))

a) dio

In [163]:
A=matrix(QQ,[v1,v2,v3]).transpose(); A
Out[163]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrr} 1 & -1 & 0 \\ 1 & 2 & 3 \\ 0 & 0 & 0 \end{array}\right)\]

Matrica $A$ nije maksimalnog ranga pa je skup $S$ linearno zavisan skup u $\mathbb{R}^3$.

In [164]:
A.rank()
Out[164]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}2\]

b) dio

In [165]:
B=A.augment(w); B
Out[165]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrrr} 1 & -1 & 0 & 3 \\ 1 & 2 & 3 & 2 \\ 0 & 0 & 0 & 0 \end{array}\right)\]
In [166]:
B.rank()
Out[166]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}2\]

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$.

In [167]:
komb=x*v1+y*v2+z*v3
sustav=[komb[i]==w[i] for i in range(0,3)]; sustav
Out[167]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[x - y = 3, x + 2 \, y + 3 \, z = 2, 0 = 0\right]\]

$(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}$

In [168]:
solve(sustav,[x,y,z])
Out[168]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x = -r_{6} + \frac{8}{3}, y = -r_{6} - \frac{1}{3}, z = r_{6}\right]\right]\]

17. zadatak

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\}$.

  1. Dokažite da je skup $\mathcal{B}$ baza za $M_2(\mathbb{R})$.
  2. Odredite koordinate matrice $A=\begin{bmatrix}2&0\\ 0&8\end{bmatrix}$ u bazi $\mathcal{B}$.

Rješenje

a) dio

Pokazat ćemo i ovdje više različitih načina rješavanja zadatka

rješavanje homogenog sustava linearnih jednadžbi

In [169]:
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]])
In [170]:
x_1*A1+x_2*A2+x_3*A3+x_4*A4
Out[170]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rr} 2 \, x_{1} + 5 \, x_{2} + 2 \, x_{3} + 8 \, x_{4} & 3 \, x_{1} + 4 \, x_{2} + 2 \, x_{3} + x_{4} \\ -x_{2} + x_{3} - 3 \, x_{4} & x_{1} - x_{2} + x_{3} + 4 \, x_{4} \end{array}\right)\]

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.

In [171]:
solve_mat(x_1*A1+x_2*A2+x_3*A3+x_4*A4,matrix(2),[x_1,x_2,x_3,x_4])
Out[171]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x_{1} = 0, x_{2} = 0, x_{3} = 0, x_{4} = 0\right]\right]\]

računanje ranga matrice

In [172]:
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
Out[172]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrrr} 2 & 5 & 2 & 8 \\ 3 & 4 & 2 & 1 \\ 0 & -1 & 1 & -3 \\ 1 & -1 & 1 & 4 \end{array}\right)\]

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.

In [173]:
M.rank()
Out[173]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}4\]

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.

In [174]:
M.det()
Out[174]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}-98\]

b) dio

Ponovo pokazujemo više različitih načina rješavanja zadatka.

In [175]:
a=vector((2,0,0,8))
A=matrix([[2,0],[0,8]])

pomoću već gotovih SAGE naredbi

In [176]:
V=VectorSpace(QQ,4).span_of_basis([v1,v2,v3,v4])
In [177]:
V.coordinates(a)
Out[177]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[2, -2, \frac{4}{7}, \frac{6}{7}\right]\]

rješavanjem sustava linearnih jednadžbi

In [178]:
x_1*A1+x_2*A2+x_3*A3+x_4*A4
Out[178]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rr} 2 \, x_{1} + 5 \, x_{2} + 2 \, x_{3} + 8 \, x_{4} & 3 \, x_{1} + 4 \, x_{2} + 2 \, x_{3} + x_{4} \\ -x_{2} + x_{3} - 3 \, x_{4} & x_{1} - x_{2} + x_{3} + 4 \, x_{4} \end{array}\right)\]
In [179]:
solve_mat(x_1*A1+x_2*A2+x_3*A3+x_4*A4,A,[x_1,x_2,x_3,x_4])
Out[179]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left[x_{1} = 2, x_{2} = \left(-2\right), x_{3} = \left(\frac{4}{7}\right), x_{4} = \left(\frac{6}{7}\right)\right]\right]\]

pomoću matrice prijelaza

In [180]:
M,M^-1
Out[180]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\left(\begin{array}{rrrr} 2 & 5 & 2 & 8 \\ 3 & 4 & 2 & 1 \\ 0 & -1 & 1 & -3 \\ 1 & -1 & 1 & 4 \end{array}\right), \left(\begin{array}{rrrr} -\frac{3}{7} & \frac{1}{2} & -\frac{1}{2} & \frac{5}{14} \\ \frac{1}{7} & 0 & 0 & -\frac{2}{7} \\ \frac{16}{49} & -\frac{3}{14} & \frac{11}{14} & -\frac{1}{98} \\ \frac{3}{49} & -\frac{1}{14} & -\frac{1}{14} & \frac{9}{98} \end{array}\right)\right)\]
In [181]:
M^-1*a
Out[181]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(2,\,-2,\,\frac{4}{7},\,\frac{6}{7}\right)\]

18. zadatak

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$.

Rješenje

In [182]:
var("l")
A=matrix([[l,-1,-1],[-1,l,-1],[-1,-1,l]]).transpose(); A
Out[182]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrr} l & -1 & -1 \\ -1 & l & -1 \\ -1 & -1 & l \end{array}\right)\]
In [183]:
expand(det(A))
Out[183]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}l^{3} - 3 \, l - 2\]
In [184]:
solve(det(A)==0,l)
Out[184]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[l = 2, l = \left(-1\right)\right]\]

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\}$.

19. zadatak

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$.

Rješenje

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.

In [185]:
A=matrix(QQ,[[1,2,1,-3],[2,4,4,-1],[3,6,7,1]]); A
Out[185]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrrr} 1 & 2 & 1 & -3 \\ 2 & 4 & 4 & -1 \\ 3 & 6 & 7 & 1 \end{array}\right)\]

jedna baza za prostor svih rješenja

In [186]:
A.right_kernel()
Out[186]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\mathrm{RowSpan}_{\Bold{Q}}\left(\begin{array}{rrrr} 1 & 0 & -\frac{5}{11} & \frac{2}{11} \\ 0 & 1 & -\frac{10}{11} & \frac{4}{11} \end{array}\right)\]

dimenzija prostora svih rješenja

In [187]:
A.right_nullity()
Out[187]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}2\]

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.

In [188]:
M=A.right_kernel().matrix().transpose()
In [189]:
M=M.augment(identity_matrix(4)); M
Out[189]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrrrrr} 1 & 0 & 1 & 0 & 0 & 0 \\ 0 & 1 & 0 & 1 & 0 & 0 \\ -\frac{5}{11} & -\frac{10}{11} & 0 & 0 & 1 & 0 \\ \frac{2}{11} & \frac{4}{11} & 0 & 0 & 0 & 1 \end{array}\right)\]
In [190]:
M.echelon_form()
Out[190]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrrrrr} 1 & 0 & 0 & -2 & 0 & \frac{11}{2} \\ 0 & 1 & 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 2 & 0 & -\frac{11}{2} \\ 0 & 0 & 0 & 0 & 1 & \frac{5}{2} \end{array}\right)\]

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.

20. zadatak

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)$.

  1. Odredite matricu prijelaza $T$ iz baze $\mathcal{B}_2$ u bazu $\mathcal{B}_1$ i pomoću nje odredite koordinate vektora $\vec{v}$ u bazi $\mathcal{B}_2$.
  2. Odredite koordinate vektora $\vec{v}$ u kanonskoj bazi prostora $\mathbb{R}^3$.

Rješenje

$\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$

In [191]:
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$

In [192]:
T=T2^-1*T1; T
Out[192]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(\begin{array}{rrr} -\frac{1}{4} & \frac{1}{2} & \frac{1}{2} \\ \frac{7}{8} & \frac{1}{4} & \frac{1}{4} \\ -\frac{3}{4} & -\frac{1}{2} & \frac{1}{2} \end{array}\right)\]

koordinate vektora $\vec{v}$ u bazi $\mathcal{B}_2$

In [193]:
T*vector((3,-1,2))
Out[193]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(-\frac{1}{4},\,\frac{23}{8},\,-\frac{3}{4}\right)\]

koordinate vektora $\vec{v}$ u kanonskoj bazi prostora $\mathbb{R}^3$

In [194]:
T1*vector((3,-1,2))
Out[194]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(5,\,6,\,-1\right)\]

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$

In [195]:
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$

In [196]:
V.basis()
Out[196]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left(1,\,2,\,-1\right), \left(0,\,2,\,0\right), \left(1,\,1,\,1\right)\right]\]

koordinate vektora $\vec{v}$ u kanonskoj bazi prostora $\mathbb{R}^3$

In [197]:
V.linear_combination_of_basis([3,-1,2])
Out[197]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left(5,\,6,\,-1\right)\]

Sada u vektorskom prostoru $V$ promijenimo tekuću bazu $\mathcal{B}_1$ u bazu $\mathcal{B}_2$

In [198]:
V=V.span_of_basis([[0,2,1],[2,2,0],[1,-1,1]])
In [199]:
V.basis()
Out[199]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[\left(0,\,2,\,1\right), \left(2,\,2,\,0\right), \left(1,\,-1,\,1\right)\right]\]

koordinate vektora $\vec{v}$ u bazi $\mathcal{B}_2$

In [200]:
V.coordinates([5,6,-1])
Out[200]:
\[\newcommand{\Bold}[1]{\mathbf{#1}}\left[-\frac{1}{4}, \frac{23}{8}, -\frac{3}{4}\right]\]
In [ ]: