---
title: "MML Book Exercises rešavanje"
author: "Zoran Ovcin"
date: "2025-12-12"
output: html_document
---

\def\R{\mathbb{R}}
\def\Z{\mathbb{Z}}

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

Ovde rešavamo zadatke iz [MML Book](https://mml-book.github.io/)

## MML-book Chapter 3. Linear Algebra, Exercises 

Koristićemo R i **matlib** biblioteku.
```{r}
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:
```{r E03.02}
x = matrix(c(1,0),ncol = 1); y = matrix(c(0,1),ncol = 1); A = matrix(c(2,1,0,2),ncol = 2); A
t(x) %*% A %*% y
t(y) %*% A %*% x
```

### 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$.
```{r E03.03}
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
z = x - y; z
sqrt(t(z) %*% z)
norm(z, type = "2")
sqrt(t(z) %*% A %*% z)
```

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

```{r E03.04}
x=matrix(c(1,2),ncol = 1); y=matrix(c(-1,-1),ncol = 1);
B=matrix(c(2,1,1,3),ncol=2); B
acos((t(x) %*% y)/sqrt((t(x) %*% x))/sqrt((t(y) %*% y)))
acos((t(x) %*% B %*% y)/sqrt(t(x) %*% B %*% x)/sqrt(t(y) %*% B %*% y))
```


### 3.5

```{r E03.05}
#########
#  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
x=matrix(c(-1,-9,-1,4,1),ncol=1); x
gaussianElimination(A,x)
B=A[,1:3]; B
```
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.

```{r E03.05a}
# a
inv(t(B)%*%B)%*%t(B)
l=inv(t(B)%*%B)%*%t(B)%*%x; l
B1=MoorePenrose(B); B1
round(B1,digits=8)
printMatEqn(B1, fractions = TRUE)
l=B1%*%x; l
p=B%*%l; p
matrix(Proj(x,B))
```
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$

```{r E03.05b}
# b
px=p-x; px
round(px,digits=8)
t(px)%*%px
sqrt(t(px)%*%px)
```

### 3.6

```{r E03.06}
#########
#  3.6  #
#########
A = matrix(c(2,1,0,1,2,-1,0,-1,2),ncol=3); A
```
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$.

```{r E03.06a}
# a
B = matrix(c(1,0,0,0,0,1),ncol=2); B
P = B %*% inv(t(B) %*% A %*% B) %*% t(B) %*% A; P
x = matrix(c(0,1,0),ncol=1); x
y = P %*% x; y
```
Dobili smo koordinate projekcije $y = [\frac12, 0, -\frac12 ]^T$ u standardnoj bazi.

```{r E03.06b}
# b
z = x - y; z
t(z) %*% A %*% z
sqrt(t(z) %*% A %*% z)
```

```{r E03.08}
#########
#  3.8  #
#########

A = matrix(c(1,1,1,-1,2,0),ncol=2); A
z = GramSchmidt(A, normalize=FALSE); z
z %*% diag(c(1,-3))
```
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}$.

```{r E03.10}
#########
#  3.10 #
#########

theta = pi/6
A = matrix(c(cos(theta),sin(theta),-sin(theta),cos(theta)),ncol=2); A
x1 = matrix(c(2,3),ncol=1); x1
x2 = matrix(c(0,-1),ncol=1); x2
A %*% x1
A %*% x2
```
