# Cálculo

## Gradiente 

El gradiente de $f$ respecto a $A\in \mathbb{R}^{m\times n}$ es la matriz de derivadas parciales, de manera que

\begin{equation}
(\nabla_A f(A))_{ij}=\frac{\partial f(A)}{\partial A_{ij}}
\end{equation}

El tamaño de $\nabla_A f(A)$ es siempre del tamaño de $A$. El gradiente es una función únicamente definida si la función $f$ retorna un valor escalar. Además, 

- $\nabla_{x}(f(x)+g(x))=\nabla_x f(x)+\nabla_x g(x)$

- Para $t\in\mathbb{R},\nabla_x (tf(x))=t\nabla_x f(x)$

Los gradientes se pueden ver como generalizaciones de las derivadas parciales a múltiples variables.

# La Hessiana. 

Supongan que $f:\mathbb{R}^n \rightarrow \mathbb{R}$ es una función que toma un vector en $\mathbb{R}^n$ y regresa un número real. Entonces, la Hessiana es una matriz respecto a x, escrita $\nabla_x^2 f(x)$ o simplemente $H$ tal que 

\begin{equation}
(\nabla_x^2 f(x))_{ij}=\frac{\partial^2 f(x)}{\partial x_i \partial x_j}
\end{equation}

Se puede notar que la Hessiana siempre es simétrica.

# Mínimos cuadrados

Suponiendo $A\in \mathbb{R}^{m\times n}$ y un vector $b\in R^m$ tal que $b\notin \mathcal{R}(A)$. En esta situación no es posible encontrar un vector $x\in\mathbb{R}^n$ tal que $Ax=b$, así que entonces, se quiere encontrar un vector $x$ tal que $Ax$ sea tan cercano como es posible a $b$, medido como la norma cuadrada euclidiana $||Ax-b||_2^2$. 

Usando que $||x||_{2}^2=x^T x$, se tiene que 

\begin{equation}
||Ax-b||_{2}^2=(Ax-b)^T(Ax-b)=x^TA^TAx-2b^TAx+b^Tb
\end{equation} 

Tomando el gradiente con respecto a $x$ y usando las propiedades de los gradientes, se tiene que 

\begin{equation}
\nabla_x (x^TA^TAx-2b^TAx+b^Tb)=2A^T Ax-2A^T b
\end{equation} 

Haciendo esta expresión igual a cero y resolviendo para $x$, se tienen las ecuaciones normales.

\begin{equation}
x=(A^T A)^{-1}A^T b
\end{equation} 




```python

```
