Ovde rešavamo zadatke iz MML Book

MML-book Chapter 3. Linear Algebra, Exercises

Koristićemo R i matlib biblioteku.

library(matlib)

Tekst je u formatu Rmd (R markdown) i može se knit aplikacijom pretvoriti u html (ili pdf) dokument.

3.1

Na osnovu Teoreme 3.5, \[[ x_1, x_2 ] \begin{bmatrix} 1 & -1 \\ -1 & 2 \end{bmatrix} \begin{bmatrix} y_1\\ y_2\\ \end{bmatrix} = x_1 y_1 - ( x_1 y_2 + x_2 y_1 ) + 2 x_2 y_2 = \langle {\boldsymbol x}, {\boldsymbol y} \rangle\] imamo unutrašnji proizvod, jer je matrica \(A = \begin{bmatrix} 1 & -1 \\ -1 & 2 \end{bmatrix}\) simetrična i pozitivno definitna: \[[ x_1, x_2 ] \begin{bmatrix} 1 & -1 \\ -1 & 2 \end{bmatrix} \begin{bmatrix} x_1\\ x_2\\ \end{bmatrix} = x_1^2 - 2 x_1 x_2 + x_2^2 + x_2^2 = ( x_1 - x_2 )^2 + x_2 ^2\] Naime, poslednji izraz je nenegativan, a jednak je \(0\) samo za \(x_1 = x_2 = 0\).

3.2

Matrica \(A\) nije simetrična, nije unutrašnji proizvod:

x = matrix(c(1,0),ncol = 1); y = matrix(c(0,1),ncol = 1); A = matrix(c(2,1,0,2),ncol = 2); A
##      [,1] [,2]
## [1,]    2    0
## [2,]    1    2
t(x) %*% A %*% y
##      [,1]
## [1,]    0
t(y) %*% A %*% x
##      [,1]
## [1,]    1

3.3

Udaljenost između vektora \(x\) i \(y\) je \(d ( x, y ) = || x - y ||\). Koristimo normu \(|| z || = \sqrt{ \langle z, z \rangle}\), \(z = x - y\).

x = matrix(c(1,2,3),ncol = 1); y = matrix(c(-1,-1,0),ncol = 1); A = matrix(c(2,1,0,1,3,-1,0,-1,2),ncol = 3); A
##      [,1] [,2] [,3]
## [1,]    2    1    0
## [2,]    1    3   -1
## [3,]    0   -1    2
z = x - y; z
##      [,1]
## [1,]    2
## [2,]    3
## [3,]    3
sqrt(t(z) %*% z)
##          [,1]
## [1,] 4.690416
norm(z, type = "2")
## [1] 4.690416
sqrt(t(z) %*% A %*% z)
##          [,1]
## [1,] 6.855655

3.4

Kosinus ugla \(\theta\) između vektora \(x\) i \(y\) je \(\cos \theta = \langle x, y \rangle / \sqrt{\langle x, x \rangle \langle y, y \rangle}\).

x=matrix(c(1,2),ncol = 1); y=matrix(c(-1,-1),ncol = 1);
B=matrix(c(2,1,1,3),ncol=2); B
##      [,1] [,2]
## [1,]    2    1
## [2,]    1    3
acos((t(x) %*% y)/sqrt((t(x) %*% x))/sqrt((t(y) %*% y)))
##          [,1]
## [1,] 2.819842
acos((t(x) %*% B %*% y)/sqrt(t(x) %*% B %*% x)/sqrt(t(y) %*% B %*% y))
##          [,1]
## [1,] 2.941046

3.5

#########
#  3.5  #
#########

A = matrix(c(0,-1,2,0,2,1,-3,1,-1,2,-3,4,1,2,1,-1,-3,5,0,7),ncol=4); A
##      [,1] [,2] [,3] [,4]
## [1,]    0    1   -3   -1
## [2,]   -1   -3    4   -3
## [3,]    2    1    1    5
## [4,]    0   -1    2    0
## [5,]    2    2    1    7
x=matrix(c(-1,-9,-1,4,1),ncol=1); x
##      [,1]
## [1,]   -1
## [2,]   -9
## [3,]   -1
## [4,]    4
## [5,]    1
gaussianElimination(A,x)
##      [,1] [,2] [,3] [,4] [,5]
## [1,]    1    0    0    1   -1
## [2,]    0    1    0    2    2
## [3,]    0    0    1    1   -1
## [4,]    0    0    0    0    8
## [5,]    0    0    0    0   -6
B=A[,1:3]; B
##      [,1] [,2] [,3]
## [1,]    0    1   -3
## [2,]   -1   -3    4
## [3,]    2    1    1
## [4,]    0   -1    2
## [5,]    2    2    1

Sastavili smo matricu \(A\) od generatora prostora \(U\) i primenili Gausove eliminacije. Sistem \(A l = x\) nema rešenja, \(x \notin U\). Vidimo i da generatori nisu linearno nezavisni, stoga ćemo zadržati u matrici \(B\) samo one kojima odgovaraju bazične kolone. To su prve tri, gde su pivoti u RREF dobijenom Gausovim eliminacijama.

# a
inv(t(B)%*%B)%*%t(B)
##            [,1]        [,2]       [,3]        [,4]       [,5]
## [1,]  0.5238095  0.17460317  1.0317460  0.14285714 -0.4444445
## [2,] -0.5238095 -0.28571428 -0.8095238 -0.14285714  0.6666667
## [3,] -0.3333333 -0.00000002 -0.3333333 -0.00000001  0.3333333
l=inv(t(B)%*%B)%*%t(B)%*%x; l
##      [,1]
## [1,]   -3
## [2,]    4
## [3,]    1
B1=MoorePenrose(B); B1
##            [,1]          [,2]       [,3]          [,4]       [,5]
## [1,]  0.5238095  1.746032e-01  1.0317460  1.428571e-01 -0.4444444
## [2,] -0.5238095 -2.857143e-01 -0.8095238 -1.428571e-01  0.6666667
## [3,] -0.3333333  5.689893e-15 -0.3333333 -3.559653e-15  0.3333333
round(B1,digits=8)
##            [,1]       [,2]       [,3]       [,4]       [,5]
## [1,]  0.5238095  0.1746032  1.0317460  0.1428571 -0.4444444
## [2,] -0.5238095 -0.2857143 -0.8095238 -0.1428571  0.6666667
## [3,] -0.3333333  0.0000000 -0.3333333  0.0000000  0.3333333
printMatEqn(B1, fractions = TRUE)
##                             B1
##   11/21 11/63  65/63  1/7 -4/9
##  -11/21  -2/7 -17/21 -1/7  2/3
##    -1/3     0   -1/3    0  1/3
l=B1%*%x; l
##      [,1]
## [1,]   -3
## [2,]    4
## [3,]    1
p=B%*%l; p
##      [,1]
## [1,]    1
## [2,]   -5
## [3,]   -1
## [4,]   -2
## [5,]    3
matrix(Proj(x,B))
##      [,1]
## [1,]    1
## [2,]   -5
## [3,]   -1
## [4,]   -2
## [5,]    3

Pošto je matrica \(B\) punog ranga, Moore-Penrose pseudo inverse možemo dobiti formulom \(( B^T B ) ^{-1} B^T\). Koordinate projekcije u bazi prostra kolona matrice \(B\) su \(l = [ -3, 4, 1 ]^T\). U standardnoj bazi to je \(p = B \ l = [ 1, -5, -1, -2, 3 ]^T\)

# b
px=p-x; px
##               [,1]
## [1,]  2.000000e+00
## [2,]  4.000000e+00
## [3,] -3.574918e-14
## [4,] -6.000000e+00
## [5,]  2.000000e+00
round(px,digits=8)
##      [,1]
## [1,]    2
## [2,]    4
## [3,]    0
## [4,]   -6
## [5,]    2
t(px)%*%px
##      [,1]
## [1,]   60
sqrt(t(px)%*%px)
##          [,1]
## [1,] 7.745967

3.6

#########
#  3.6  #
#########
A = matrix(c(2,1,0,1,2,-1,0,-1,2),ncol=3); A
##      [,1] [,2] [,3]
## [1,]    2    1    0
## [2,]    1    2   -1
## [3,]    0   -1    2

Unutrašnji proizvod računamo preko matrica \(\langle x, y \rangle = x^T A \ y\). Napravimo matricu \(B= [ {\boldsymbol e}_1, {\boldsymbol e}_3 ]\) baze prostora \(U\). Nađimo matricu projektovanja \(P\) vektora u standardnoj bazi na prostor \(U\). Pošto je baza \(B\) ortonormirana, formula za matricu projekcije je \(P = B \ ( B^T \ A \ B )^{-1} \ B^T \ A\).

# a
B = matrix(c(1,0,0,0,0,1),ncol=2); B
##      [,1] [,2]
## [1,]    1    0
## [2,]    0    0
## [3,]    0    1
P = B %*% inv(t(B) %*% A %*% B) %*% t(B) %*% A; P
##      [,1] [,2] [,3]
## [1,]    1  0.5    0
## [2,]    0  0.0    0
## [3,]    0 -0.5    1
x = matrix(c(0,1,0),ncol=1); x
##      [,1]
## [1,]    0
## [2,]    1
## [3,]    0
y = P %*% x; y
##      [,1]
## [1,]  0.5
## [2,]  0.0
## [3,] -0.5

Dobili smo koordinate projekcije \(y = [\frac12, 0, -\frac12 ]^T\) u standardnoj bazi.

# b
z = x - y; z
##      [,1]
## [1,] -0.5
## [2,]  1.0
## [3,]  0.5
t(z) %*% A %*% z
##      [,1]
## [1,]    1
sqrt(t(z) %*% A %*% z)
##      [,1]
## [1,]    1
#########
#  3.8  #
#########

A = matrix(c(1,1,1,-1,2,0),ncol=2); A
##      [,1] [,2]
## [1,]    1   -1
## [2,]    1    2
## [3,]    1    0
z = GramSchmidt(A, normalize=FALSE); z
##      [,1]       [,2]
## [1,]    1 -1.3333333
## [2,]    1  1.6666667
## [3,]    1 -0.3333333
z %*% diag(c(1,-3))
##      [,1] [,2]
## [1,]    1    4
## [2,]    1   -5
## [3,]    1    1

Vektori koji čine ortogonalnu bazu su \([ 1, 1, 1 ]^T\) i \([ 4, -5, 1 ]^T\). Kad ih normiramo, dobijamo \([ 1, 1, 1 ]^T/ \sqrt{3}\) i \([ 4, -5, 1 ]^T/ \sqrt{42}\).

#########
#  3.10 #
#########

theta = pi/6
A = matrix(c(cos(theta),sin(theta),-sin(theta),cos(theta)),ncol=2); A
##           [,1]       [,2]
## [1,] 0.8660254 -0.5000000
## [2,] 0.5000000  0.8660254
x1 = matrix(c(2,3),ncol=1); x1
##      [,1]
## [1,]    2
## [2,]    3
x2 = matrix(c(0,-1),ncol=1); x2
##      [,1]
## [1,]    0
## [2,]   -1
A %*% x1
##           [,1]
## [1,] 0.2320508
## [2,] 3.5980762
A %*% x2
##            [,1]
## [1,]  0.5000000
## [2,] -0.8660254