Mínimos Cuadrados No Lineales

Para ajustar un modelo m\left( x,t\right) de n parámetros a un conjunto de m datos \left( t_{i},y_{i}\right) , definimos f\left( x\right) =\frac{1}{2}R\left( x\right) ^{T}R\left( x\right) con R:\mathbb{R}^{n}\rightarrow \mathbb{R}^{m} y R\left( x\right) no lineal con r_{i}\left( x\right) =m\left( x,t_{i}\right) -y_{i} cómo i-ésima componente.

El problema finalmente es:

Minimizar f\left( x\right) =\frac{1}{2}R\left( x\right) ^{T}R\left( x\right) =\frac{1}{2}\sum\limits_{i=1}^{m}r_{i}^{2}\left( x\right)

Esto es equivalente a minimizar la suma de los cuadrados de las diferencias entre el modelo y los datos.

f\left( x\right) es una función semi-paraboidal en el sentido de que es la suma de parábolas y por tanto es minimizable.

Para hallar x tal que f\left( x\right) se minimiza, hallamos las soluciones del gradiente de f\left( x\right) , de este modo, definiendo J\left( x\right) \in \mathbb{R} ^{m\times n} como el jacobiano de R\left( x\right) ,J\left( x\right) _{ij}=\frac{\partial r_{i}\left( x\right) }{\partial x_{j}} tenemos las 2 primeras derivadas de f\left( x\right) :

\nabla f\left( x\right) =\sum\limits_{i=1}^{m}r_{i}\left( x\right) \cdot \nabla r_{i}\left( x\right) =J\left( x\right) ^{T}R\left( x\right)

\nabla ^{2}f\left( x\right) =\sum\limits_{i=1}^{m}\left( \nabla r_{i}\left( x\right) \cdot \nabla r_{i}\left( x\right) ^{T}+r_{i}\left( x\right) \cdot \nabla ^{2}r_{i}\left( x\right) \right) =J\left( x\right) ^{T}J\left( x\right) +S\left( x\right)

Siendo S\left( x\right) =\sum\limits_{i=1}^{m}r_{i}\left( x\right) \cdot \nabla ^{2}r_{i}\left( x\right)

Aplicando el método de Newton para resolver \nabla f\left( x\right) tenemos:

x_{n+1}=x_{n}-\left( \nabla ^{2}f\left( x_{n}\right) \right) ^{-1}\nabla f\left( x_{n}\right)

x_{n+1}=x_{n}-\left( J\left( x_{n}\right) ^{T}J\left( x_{n}\right) +S\left( x_{n}\right) \right) ^{-1}J\left( x_{n}\right) ^{T}R\left( x_{n}\right)


EJEMPLO

Ajustar el modelo y\left( t\right) =e^{tx} a los siguientes datos:

\begin{tabular}{|l|l|l|l|} \hline t & 1 & 2 & 3 \\ \hline y & 2 & 4 & 8 \\ \hline \end{tabular}

De aquí, m\left( x,t_{i}\right) =e^{t_{i}x} entonces:

R=r_{i}\left( x\right) =m\left( x,t_{i}\right) -y_{0}\left( t_{i}\right) =\left( \begin{array}{c} e^{x}-2 \\ e^{2x}-4 \\ e^{3x}-8\end{array}\right)

Ahora f\left( x\right) =\frac{1}{2}R\left( x\right) ^{T}R\left( x\right) =\frac{1}{2}\left[ \left( e^{x}-2\right) ^{2}+\left( e^{2x}-4\right) ^{2}+\left( e^{3x}-8\right) ^{2}\right]

De este modo:

\nabla f\left( x\right) =e^{x}\left( e^{x}-2\right) +2e^{2x}\left( e^{2x}-4\right) +3e^{3x}\left( e^{3x}-8\right)

\nabla ^{2}f\left( x\right) =\left( e^{x}\right) ^{2}+\left( 2e^{2x}\right) ^{2}+\left( 3e^{3x}\right) ^{2}+e^{x}\left( e^{x}-2\right) +4e^{2x}\left( e^{2x}-4\right) +9e^{3x}\left( e^{3x}-8\right)

Finalmente aplicando el método de Newton con:

x_{n+1}=x_{n}-\left( \nabla ^{2}f\left( x_{n}\right) \right) ^{-1}\nabla f\left( x_{n}\right)

Con x_{0}=1 y 8 decimales tenemos:

\begin{tabular}{|l|l|} \hline n & x \\ \hline 0 & 1.00000000 \\ \hline 1 & 0.87299182 \\ \hline 2 & 0.77360001 \\ \hline 3 & 0.71421136 \\ \hline 4 & 0.69491616 \\ \hline 5 & 0.69316064 \\ \hline 6 & 0.69314718 \\ \hline 7 & 0.69314718 \\ \hline \end{tabular}

Obtenemos una convergencia en 7 iteraciones con x_{7}=\ln 2\approx 0.69314718

De modo que y\left( t\right) =e^{t\ln 2}=2^{t} la cual se ajusta a los datos.


Post #10mycomplexsoul