Você está na página 1de 6

Lista de Exercı́cios Computacional 6

Pedro Ivo da Cruz - 13013915


3 de agosto de 2015

1 Introdução
Nesse relatório estão relatados os testes e resultados obtidos na execução da
sexta lista de exercı́cios computacionais, na ordem em que foram apresentados.
O exercı́cio 1 e 2 encontram-se, respectivamente, nos scripts do Matlab Ex1.m
e Ex2.m.

2 Resultados e Discussão
Primeiramente foi implementada uma função que realiza a aproximação
da função f (x) = x−1 através de uma combinação linear das funções exp(x),
sin(x) e Γ(x), que é uma função do Matlab que pode ser acessada com o
comando gamma.
Portanto, queremos encontrar um vetor a, contendo os coeficientes a0 , a1
e a2 de forma que a função

y 0 = a0 exp(x) + a1 sin(x) + a2 Γ(x) (1)


aproxime-se de y = f (x). Pode-se representar esse problema como um
problema dos mı́nimos quadrados na forma matricial. Seja x, um vetor
contendo N valores de x no intervalo analisado, e X uma matriz na seguinte
forma:
 
sin(x0 ) exp(x0 ) Γ(x0 )
 sin(x1 ) exp(x1 ) Γ(x1 ) 
X=
 
.. .. .. 
 . . . 
sin(xN −1 ) exp(xN −1 ) Γ(xN −1 )
Podemos então definir o problema dos mı́nimos quadrados como a solução
para o vetor a que minimiza y − Xa, onde y = [f (x0 ) f (x1 ) · · · f (xN −1 )].
Em outras palavras, basta encontrar a que minimize:

1
ky − Xak2
Diversos métodos podem ser utilizados para encontrar o vetor a que
minimiza a função acima. O método escolhido nesse exercı́cio foi o método
baseado na decomposição por valores singulares (SVD, do inglês singular
value decomposition). O algoritmo é como se segue [1]:

Algorithm 1 Mı́nimos quadrados pela SVD


Calcule a SVD reduzida de X
Calcule o vetor v = UT y
Calcule a inversa da matriz S
Calcule o vetor w = S−1 v
Calcule a = Vw

Como resultado, obteve-se o seguinte vetor:

a = [0.0108 − 0.1076 1.2847]T


A curva original e a curva aproximada podem ser vistas na figura 1. Pode-
se notar que ficaram bastante próximas. Para observar melhor a diferença
entre as duas curvas, foi realizada uma ampliação em um trecho da curva,
como pode ser observado na figura 2.
A precisão obtida na aproximação pode ser avaliada de diversas formas.
Uma delas é através da norma L2 do erro, ou seja, da diferença entre os
pontos obtidos através do cálculo de y = f (x) e dos pontos obtidos através do
cálculo de y0 = Xa. Assim, podemos calcular essa norma a partir da equação
2.
v
uN −1
uX
L2 = t (yk − yk0 )2 (2)
k=0

Uma segunda forma, é através do erro quadrático médio. Esse erro é


calculado a partir da média do quadrado da diferença entre os pontos de y e
y0 . A equação fica, portanto:
PN −1
(yk − yk0 )2
e = k=0 (3)
N
Os valores obtidos para cada um, foram L2 = 0, 0023 e e = 4, 6919 × 10−7 .
Esses valores representam bem precisão da aproximação pelo método dos
mı́nimos quadrados, sendo bem pequenos, como era o esperado tendo em
vista a aproximação observada na figura 1.

2
Figura 1: Aproximação de f (x).

Figura 2: Ampliação em um trecho especı́fico das curvas.

3
No segundo exercı́cio, aproximou-se a função cos4t por um polinômio de
grau n − 1, tomando m pontos entre o intervalo 0 e 1. Tomou-se m = 50 e
n = 12.
Como no exercı́cio anterior, esse é também um problema de mı́nimos
quadrados na forma:

kb − Axk2
onde:

b = [cos(t0 ) cos(t1 ) · · · cos(tm−1 )]


 
1 t0 t20 ··· tn−1
0
1 t1 t21 ··· tn−1
1

A =  ..
 
.. .. 
. . . 
n−1
1 tm−1 t2m−1 · · · tm−1

x = [x0 x1 · · · xn−1 ]
Então, queremos encontrar x de forma que o polinômio p(x) = x0 + x1 t +
x2 t + · · · + xn−1 tn−1 se aproxime de cos4t no intervalo especificado.
2

Isso foi realizado utilizando cada um dos métodos listados nas tabelas 1 e
2. Todos os algoritmos foram retirados de [1].

Tabela 1: Valores de x para diferentes algoritmos.

QR Gram-Schmidt QR Householder QR Matlab


1.000000037432764 1.000000038120628 1.000000038120649
-0.000011989629155 -0.000012132617641 -0.000012132618749
-7.999532970243421 -7.999528596528828 -7.999528596507283
-0.007084981326523 -0.007137816442012 -0.007137816651315
10.722272663536634 10.722601994468480 10.722601995619179
-0.256356927894345 -0.257549353635391 -0.257549357461694
-4.949293169638787 -4.946643821469162 -4.946643813509281
-1.369639868595579 -1.373303854047630 -1.373303864464207
3.240265077540104 3.243340056393067 3.243340064720305
-1.143958412522872 -1.145391635187915 -1.145391638902598
0.109696884164504 0.109981464260603 0.109981464969184

4
Tabela 2: Valores de x para diferentes algoritmos.

A\b SVD
1.000000038120646 1.000000038120649
-0.000012132619016 -0.000012132618753
-7.999528596499550 -7.999528596507290
-0.007137816735015 -0.007137816650734
10.722601996091159 10.722601995615021
-0.257549359027896 -0.257549357445934
-4.946643810282960 -4.946643813545237
-1.373303868640563 -1.373303864413253
3.243340068026309 3.243340064676297
-1.145391640365183 -1.145391638881354
0.109981465246268 0.109981464964788

Como se pode observar, apesar de os valores de x serem muito próximos um


do outro, ainda assim são diferentes quando apresentados com uma precisão
de 15 dı́gitos decimais.
Essas diferenças se dão por conta da obtenção de x através de diferentes
métodos numéricos. Mesmo quando são obtidos através de decomposição QR,
a decomposição QR pode ser obtida através do método de Gram-Schmidt ou
através do método da Triangularização de Householder, acarretando, portanto,
em diferentes valores de x entre esses métodos.

3 Conclusão
Nesse relatório discutiu-se o desempenho do método dos mı́nimos quadra-
dos para a aproximação de funções e o desempenho dos diferentes métodos
para a obtenção da sua solução.
Primeiramente analisou-se a precisão da aproximação através da norma
L2 do erro (diferença entre os pontos da função original e os pontos da função
aproximada) e do erro quadrático médio. Para o caso da função f (x) = x−1 ,
aproximando-a pela combinação linear indicada em 1, obteve-se uma norma
baixa e um erro quadrático baixo, indicando que os pontos obtidos pela curva
aproximada ficaram bem próximos dos pontos originais.
Em seguida, testou-se a diferença entre os coeficientes obtidos através
da aproximação de uma função seno por um polinômio de grau 11. Como
mostrado, para diferentes métodos de obtenção da solução dos mı́nimos

5
quadrados, obteve-se coeficientes diferentes, apesar de essa diferença só se
apresentar em torno da décima quinta casa decimal, devido às diferenças
numéricas dos algoritmos.

Referências
[1] Trefethen, L., and Bau, D. Numerical Linear Algebra. Society for
Industrial and Applied Mathematics, 1997.

Você também pode gostar