---
title: "UNS, FTN, MAS VIMU, Matematičke osnove mašinskog učenja"
output:
  html_document:
    df_print: paged
  pdf_document: default
date: '2023-12-20'
---

## Zadatak za seminarski rad za kolokvijum 2

### Prvi deo (10 bodova)

Naći vrednost $\mathbf{x} \in \mathbb{R}^{2\times1}$ koja nalazi gradijentnim iterativnim postupkom aproksimaciju stacionarne tačke funkcije $f ( \mathbf{x} ) = \frac12 \, \mathbf{x}^T \, A \, \mathbf{x} - [ 5, 3 ] \, \mathbf{x}$

Rešiti zadatak iz MML strana 228, Example 7.1 upotrebom R-a.

### Drugi deo  (10 bodova)

Napisati R program tako da se može primeniti na realnu funkciju $f$ nad $\mathbf{x} \in \mathbb{R}^{D\times1}$. Isprobati program na nekom primeru sa više dimenzija $D$. (10 bodova)

Napraviti R Markdown dokument tako da se klikom na **Knit** generiše dokument sa R kodom i rezultatom izvršavanja.

#### Uputstvo

1. Naći gradijent funkcije $f$.

2. R-studio: File -> New File -> R Markdown. Uneti Title (naslov) "VIMU MML Seminarski"

3. Definisati u R-u funkciju f ($f$) i nablaf ($\nabla f$), njen gradijent.

```{r}
knitr::opts_chunk$set(echo = TRUE)
f <- function(x) {
# Ovo napisati
    return(y)
}
nablaf <- function(x) {
# Ovo napisati
    return(nablay)
}
```

4. Definisati konstante i matricu za smeštanje iteracija po kolonama

```{r}
gamma <- 0.085
x0 <- matrix(c(-3,-1),ncol = 1)
n <- 101
deltax <- 1e-2
deltaf <- 1e-2
x <- matrix(nrow = 2, ncol = n)
```

5. Napisati program koji ima izlazne kriterijume:
  + maksimalno $n = 100$ iteracija ($i$-ta iteracija u $i+1$-voj koloni matrice)
  + korak postupka $|| \mathbf{x}_{n} - \mathbf{x}_{n-1} || < 10{-2} =: \Delta \mathbf{x}$
  + korak funkcije $| f ( \mathbf{x}_{n} ) - f ( \mathbf{x}_{n-1} ) | < 10{-2}=: \Delta f$

```{r}
x[,1] <- x0
# Ovde program
```

5. Plotovati cik-cak liniju iteracija za primer 7.1.

```{r}
# Ovde program za plotovanje (bonus bodovi - neobavezno)
```

6. Promeniti program tako da ne koristi matricu za smeštanje vrednosti iteracija, već samo vektor vrednosti u trenutnoj i novoj iteraciji

```{r}
# Ovde program
```
