Bem vindo(a),
Visitante
Tamanho atual da fonte:
Introdução
Após estudar a regressão linear e a regressão polinomial, veremos agora o caso geral. Suponha que temos uma função que é dada por uma combinação linear de várias funções, na forma:
$$
y = a_0f_0(x) + a_1f_1(x) + a_2f_2(x) + ... + a_mf_m(x),
$$
onde $f_0, f_1, ... , f_m$ são $m + 1$ funções-base. A regressão linear é um caso particular do modelo acima, bastando tomar $m=1$, $f_0 = 1$ e $ f_1 = x$. A regressão polinomial é obtida quando as funções-base forem monômios simples: $f_0 = x^0 = 1, f_1 = x, f_2 = x^2, ... , f_m = x^m$.
Suponha que temos um conjunto de $n+1$ pontos $\left\{{(x_0,y_0), (x_1, y_1), ... , (x_n, y_n)}\right\}$ e queremos obter o conjunto de coeficientes ${a_0, a_1, ..., a_m}$ que melhor aproximem uma função $y$ como descrito acima. Devemos resolver um sistema da forma:
$$
\begin{cases}a_0f_0(x_0) + a_1f_1(x_0)+ \dots+a_mf_m(x_0) = y_0
\\a_0f_0(x_1) + a_1f_1(x_1)+ \dots+a_mf_m(x_1) = y_1
\\ \vdots
\\ a_0f_0(x_n) +a_1f_1(x_n)+ \dots + a_mf_m(x_n) = y_n
\end{cases}
$$
Podemos utilizar o método dos mínimos quadrados para achar a melhor solução para esse sistema. De forma similar como fizemos anteriormente, devemos minimizar a soma dos quadrados dos resíduos, dada nesse caso por
$$
S_r = \sum_{i=1}^n \left(y_i - \sum_{j=0}^m a_jf_{ji}(x_i)\right)^2.
$$
Tomando a derivada dessa quantidade em relação a cada uma dos coeficientes e igualando a equação resultante a zero, podemos escrever as equações resultantes na forma matricial
$$
(F^TF)A = F^TY,
$$
onde a matriz $A$ é o vetor coluna de coeficientes (incógnitas) e a matriz $F$ é uma matriz de de dimensão $n(m+1)$, sendo $n$ o número de pontos coletados e $m$ o número de funções-base:
$$
F = \begin{bmatrix}
f_{0}(x) \space f_{1}(x)\space \dots \space f_{m}(x)
\\f_{0}(x) \space f_{1}(x)\space \dots \space f_{m}(x)
\\ \vdots
\\f_{0}(x) \space f_{1}(x)\space \dots \space f_{m}(x)
\end{bmatrix}.
$$
De forma alternativa, podemos expressar a equação matricial da seguinte forma:
$$
\begin{bmatrix}
\sum f_{0}(x)f_{0}(x) \space \sum f_{0}(x)f_{1}(x)\space \dots \space \sum f_{0}(x)f_{m}(x)
\\ \sum f_{1}(x)f_{0}(x) \space \sum f_{1}(x)f_{1}(x)\space \dots \space \sum f_{1}(x)f_{m}(x)
\\ \vdots
\\ \sum f_{m}(x)f_{0}(x) \space \sum f_{m}(x)f_{1}(x)\space \dots \space \sum f_{m}(x)f_{m}(x)
\end{bmatrix}
*
\begin{bmatrix}
a_0
\\ a_1
\\ \vdots
\\ a_m
\end{bmatrix}
=
\begin{bmatrix}
\sum f_0(x)y
\\ \sum f_1(x)y
\\ \vdots
\\ \sum f_m(x)y
\end{bmatrix}.
$$
Exemplo 1
Encontre a função $f(x) = a_0cos(x) + a_1e^x$ que melhor se ajusta ao conjunto de pontos:
${x_i}$ | ${y_i}$ |
---|---|
${0}$ | ${3.18}$ |
${1}$ | ${3.9}$ |
${2}$ | ${6.5}$ |
${3}$ | ${17.82}$ |
$$
\begin{bmatrix} \sum f_0(x)f_0(x) & \sum f_0(x)f_1(x)
\\ \sum f_1(x)f_0(x) & \sum f_1(x)f_1(x)
\end{bmatrix}
\begin{bmatrix}a_0 \\ a_1 \end{bmatrix}
=
\begin{bmatrix} \sum f_0(x)y \\ \sum f_1(x)y \end{bmatrix},
$$
onde temos que $f_0(x) = cos(x)$ e $f_1(x) = e^x$, ou seja,
$$
\begin{bmatrix} \sum cos(x)cos(x) & \sum cos(x)e^x
\\ \sum e^xcos(x) & \sum e^x*e^x
\end{bmatrix}
\begin{bmatrix}a_0 \\ a_1 \end{bmatrix}
=
\begin{bmatrix} \sum cos(x)*y \\ \sum e^x*y \end{bmatrix}.
$$
Calculando os somatórios:
$ \sum cos(x)cos(x) = \sum (cos(x))^2 = cos(0)^2 + cos(1)^2 + cos(2)^2 + cos(3)^2 = 2.4452$ |
---|
$ \sum cos(x)e^x = cos(0)*e^0 + cos(1)*e^1 + cos(2)^*e^2 + cos(3)*e^3 = -20.491$ |
$ \sum e^xe^x = \sum e^{2x} = e^{2*0} + e^{2*1} + e^{2*2} + e^{2*3} = 466.42$ |
$ \sum cos(x)*y = cos(0)*3.18 + cos(1)*3.9 + cos(2)*6.5 + cos(3)*17.82 = -15.059$ |
$ \sum e^x*y = e^0*3.18 + e^1*3.9 + e^2*6.5 + e^3*17.82 = 419.73$ |
$$
\begin{bmatrix} 2.4452 & -20.491
\\ -20.491 & 466.42
\end{bmatrix}
\begin{bmatrix}a_0 \\ a_1 \end{bmatrix}
=
\begin{bmatrix} -15.059 \\ 419.73 \end{bmatrix}.
$$
Resolvendo esse sistema, obtemos: $$ a_0 = 2.1882,\\ a_1 = 0.99603. $$ Dessa forma, encontramos a função que melhor aproxima o conjunto de pontos:
$$f(x) = 2.1882cos(x) + 0.99603e^x.$$
O gráfico na Figura 1 ilustra o resultado obtido.
(Figura 1)
$$
\vec e = \begin{bmatrix}3.18
\\3.9
\\6.5
\\17.82
\end{bmatrix}
-
\begin{bmatrix}2.1882cos(0) + 0.99603e^0
\\2.1882cos(1) + 0.99603e^1
\\2.1882cos(2) + 0.99603e^2
\\2.1882cos(3) + 0.99603e^3
\end{bmatrix}
=
\begin{bmatrix}3.18
\\3.9
\\6.5
\\17.82
\end{bmatrix}
-
\begin{bmatrix}3.1842
\\3.8898
\\6.4491
\\17.839
\end{bmatrix}
=
\begin{bmatrix}-0.0042
\\0.0102
\\0.0509
\\-0.019
\end{bmatrix}
$$
e
$$
\begin{aligned}
|\vec e|^2 &= e^Te \\
&=
\begin{bmatrix}-0.0042 & 0.0102 & 0.0509 & -0.019
\end{bmatrix}
\begin{bmatrix}-0.0042
\\0.0102
\\0.0509
\\-0.019
\end{bmatrix} \\
&= 3.0735\times 10^{-3}.
\end{aligned}
$$
Ou seja, o erro quadrático total cometido foi de $3.0735\times 10^{-3}$.