| | | |

Matemática numérica I

Ajude a manter o site livre, gratuito e sem propagandas. Colabore!

6.1 Problemas lineares

Dado um conjunto de n pontos {(xi,yi)}i=1n, xi≠xj para i≠j, e uma família de m≤n funções {fi⁢(x)}i=1m, o problema linear de aproximação por mínimos quadrados consiste em determinar os m coeficientes {ci}i=1m tal que a função

f⁢(x;𝒄)=∑j=1mcj⁢fj⁢(x) (6.1)
=c1f1(x)+c2f2(x)+c3f3(x)+⋯+cmfm(x) (6.2)

aproxime o dado conjunto de pontos no sentido de mínimos quadrados, i.e. o vetor dos coeficientes 𝒄=(c1,c2,…,cm) é solução do seguinte problema linear de minimização

min𝒄⁡{E:=∑i=1n|yi−f⁢(xi;𝒄)|2}. (6.3)

A fim de trabalharmos com uma notação mais compacta, definimos o resíduo 𝒓⁢(𝒄)=(r1⁢(𝒄),r2⁢(𝒄),…,rn⁢(𝒄)), onde ri⁢(𝒄):=yi−f⁢(xi;𝒄). Com esta notação, o problema de mínimos quadrados se resume a resolver

minc⁡{E:=‖r⁢(𝒄)‖2}. (6.4)

6.1.1 Método das equações normais

A fim de resolver o problema de mínimos quadrados (6.4), observamos que o erro quadrático

E:=‖𝒓⁢(𝒄)‖22=∑i=1nri2⁢(𝒄) (6.5)
=∑i=1n(yi−f(xi;𝒄))2 (6.6)
=∑i=1n(yi−∑j=1mcjfj(xi))2 (6.7)
E=‖𝒚−A⁢𝒄‖2, (6.8)

onde 𝒚:=(y1,y2,…,yn) e

A:=[f1⁢(x1)f2⁢(x1)⋯fm⁢(x1)f1⁢(x2)f2⁢(x2)⋯fm⁢(x2)⋮⋮⋮⋮f1⁢(xn)f2⁢(xn)⋯fm⁢(xn)]. (6.9)

Os parâmetros cj que minimizam o erro E são solução do seguinte sistema de equações

∂E∂cj=2⁢∑i=0nri⁢(c)⁢∂∂cj⁢ri⁢(c)=0, (6.10)

onde j=1,2,…,m. Ou, em uma notação mais apropriada,

∇𝒄E=0 (6.11)
−AT⁢𝒓⁢(𝒄)=0 (6.12)
−AT⁢(𝒚−A⁢𝒄)=0 (6.13)
AT⁢A⁢𝒄=AT⁢𝒚. (6.14)

Portanto, o problema linear de mínimos quadrados se resume em resolver as chamadas equações normais

AT⁢A⁢𝒄=AT⁢𝒚. (6.15)

Concluímos que a solução é dada por

𝒄=(AT⁢A)−1⁢AT⁢𝒚, (6.16)

quando AT⁢A é inversível.

Exemplo 6.1.1.(Ajuste de Polinômios)

Considere o problema de ajustar o conjunto de pontos

i xi yi
1 −1.0 1.2
2 0.0 −0.1
3 1.0 0.7
4 1.5 2.4

por um polinômio quadrático

p⁢(x)=p1⁢x2+p2⁢x+p3 (6.17)

no sentido de mínimos quadrados.

Refer to caption
Figura 6.1: Polinômio ajustado no Exemplo 6.1.1.

Neste caso, a família de funções do problema de mínimos quadrados é f1⁢(x)=x2, f2⁢(x)=x e f3⁢(x)=1. Assim sendo, os coeficientes p=(p1,p2,p3) são solução do seguinte sistema linear

AT⁢A⁢𝒑=AT⁢𝒚, (6.18)

onde 𝒚=(y1,y2,y3) e

A:=[x12x11x22x21x32x31x42x41]. (6.19)

Emfim, resolvendo as equações normais (6.18), obtemos

p⁢(x)=1.25⁢x2−0.188⁢x−0.203. (6.20)

A Figura 6.1 mostra um esboço dos pontos e do polinômio ajustado.

Código 15: mqPoli.py
1import numpy as np
2import numpy.linalg as npla
3
4# dados
5xx = np.array([-1.0, 0.0, 1.0, 1.5])
6yy = np.array([1.2, -0.1, 0.7, 2.4])
7
8# matriz
9m = 3
10n = xx.size
11A = np.empty((n,m))
12A[:,0] = xx**2
13A[:,1] = xx
14A[:,2] = np.ones_like(xx)
15
16# sol de mq
17p = npla.solve(A.T@A, A.T@yy)
18print(p)
Exemplo 6.1.2.(Ajuste de Curvas)

Consideremos o mesmo conjunto de pontos do exemplo anterior (Exemplo 6.1.1). Aqui, vamos ajustar uma curva da forma

f⁢(x;𝒄)=c1⁢sen⁡(x)+c2⁢cos⁡(x)+c3 (6.21)

no sentido de mínimos quadrados. Para tanto, formamos a matriz

A:=[sen⁡(x1)cos⁡(x1)1sen⁡(x2)cos⁡(x2)1sen⁡(x3)cos⁡(x3)1sen⁡(x4)cos⁡(x4)1] (6.22)

e, então, resolvemos as equações normais (6.15) para o vetor de coeficientes 𝒄=(c1,c2). Fazendo isso, obtemos c1=−0,198, c2=−2.906 e c3=2.662. A Figura 6.2 mostra um esboço da curva ajustada aos pontos dados.

Refer to caption
Figura 6.2: Curva ajustada no Exemplo 6.1.2.
Código 16: mqCurva.py
1import numpy as np
2import numpy.linalg as npla
3
4# dados
5xx = np.array([-1.0, 0.0, 1.0, 1.5])
6yy = np.array([1.2, -0.1, 0.7, 2.4])
7
8# matriz
9m = 3
10n = xx.size
11A = np.empty((n,m))
12A[:,0] = np.sin(xx)
13A[:,1] = np.cos(xx)
14A[:,2] = np.ones_like(xx)
15
16# sol de mq
17c = npla.solve(A.T@A, A.T@yy)
18
19def f(x, c=c):
20 y = c[0]*np.sin(x) \
21 + c[1]*np.cos(x) \
22 + c[2]
23 return y
Exemplo 6.1.3.(Um problema não-linear)

Consideramos o problema de ajustar, no sentido de mínimos quadrados, a função

f⁢(x;𝒄)=c1⁢ec2⁢x (6.23)

ao seguinte conjunto de pontos

i xi yi
1 −1.0 8.0
2 0.0 1.5
3 1.0 0.2
4 1.5 0.1

Aqui, temos um problema não linear de mínimos quadrados que pode ser transformado em um problema linear fazendo-se

y=c1⁢ec2⁢x (6.24)
ln⁡y=ln⁡c1⁢ec2⁢x (6.25)
ln⁡y=ln⁡c1+c2⁢x. (6.26)

Isto é, denotando d1:=ln⁡c1 e d2:=c2, o problema se resume a ajustar uma reta r⁢(x)=d1+d2⁢x ao conjunto de pontos {(xi,ln⁡yi)}i=14.

Para resolver o problema transformado, formamos a matriz

A:=[1x11x21x31x4] (6.27)

e, então, resolvemos as equações normais AT⁢A⁢𝒅=AT⁢ln⁡𝒚, com ln⁡𝒚=(ln⁡y1,ln⁡y2,ln⁡y3,ln⁡y4), donde obtemos d1=0.315 e d2=−1.792. Das definições de d1 e d2, temos

c2=d2=−1.792 (6.28)
c1=ed1=1.371. (6.29)

A Figura 6.3 mostra um esboço da curva f⁢(x;𝒄)=c1⁢ec2⁢x ajustada aos pontos dados.

Refer to caption
Figura 6.3: Curva ajustada no Exemplo 6.1.3.

6.1.2 Análise numérica

Em revisão

O problema linear de mínimos quadrados (6.4) reduz-se a resolver o sistema linear (6.15) para 𝒄. Isto nos leva a questão de verificar se AT⁢A é invertível.

Teorema 6.1.1.

A matriz AT⁢A é positiva definida se, e somente se, as colunas de A são linearmente independentes.

Demonstração.

Se as colunas de A são linearmente independentes, então x≠0 implica A⁢x≠0 e, equivalentemente, xT⁢AT≠0. Portanto, x≠0 implica xT⁢AT⁢A⁢x=‖A⁢x‖22>0, o que mostra que AT⁢A é positiva definida.

Suponhamos, agora, que as colunas de A não são linearmente independentes. Então, existe x0≠0 tal que A⁢x0=0. Mas, então, x0T⁢AT⁢A⁢x0=0, o que mostra que AT⁢A não é positiva definida. ∎

Este teorema nos fornece uma condição suficiente para a existência (e unicidade) de solução do problema linear de mínimos quadrados. Mais especificamente, se as colunas da matriz A são linearmente independentes, então os coeficientes da função f⁢(x) que melhor ajustam os pontos dados são

c=(AT⁢A)−1⁢AT⁢y. (6.30)

6.1.3 Exercícios

E. 6.1.1.

Determine a reta y=c1⁢x+c2 que melhor se ajusta, no sentido de mínimos quadrados, aos pontos

i 1 2 3 4 5
xi −2.5 −1.3 0.2 1.7 2.3
yi 3.8 1.5 −0.7 −1.5 −3.2

Por fim, compute a norma L2 do resíduo, i.e. ‖r⁢(c)‖2=‖y−(c1⁢x+c2)‖2 para os pontos dados.


c1=−1.3259, c2=8.66071⁢e−2, ‖r⁢(c)‖2=1.01390.

E. 6.1.2.

Determine o polinômio y=c1⁢x3+c2⁢x2+c3⁢x+c4 que melhor se ajusta, no sentido de mínimos quadrados, aos pontos

i 1 2 3 4 5
xi −2.5 −1.3 0.2 1.7 2.3
yi 3.8 0.5 2.7 1.2 −1.3

Por fim, compute a norma L2 do resíduo, i.e. ‖r⁢(c)‖2.


c1=−4.50361⁢e−1, c2=−2.78350⁢e−1, c3=1.46291, c4=2.09648, ‖r⁢(c)‖2=5.71346⁢e−1

E. 6.1.3.

Determine a curva y=c1⁢sen⁡x+c2⁢cos⁡x+c3 que melhor se ajusta, no sentido de mínimos quadrados, aos pontos

i 1 2 3 4 5
xi −2.5 −1.3 0.2 1.7 2.3
yi 3.8 0.5 2.7 1.2 −1.3

Por fim, compute a norma L2 do resíduo, i.e. ‖r⁢(c)‖2.


c1=−0.86290414, c2=0.36547042, c3=1.4700346, ‖r⁢(c)‖2=3.616409

E. 6.1.4.

Use a transformação z=ln⁡y para ajustar, no sentido de mínimos quadrados, a curva y=c1⁢ec2⁢(x−c3)2 aos pontos

i 1 2 3 4 5 6
xi −0.5 0.5 1.3 2,1 2.7 3,1
yi 0,1 1.2 2.7 0.9 0.2 0,1

c1=2.10131⁢e+0, c2=−9.73859⁢e−1, c3=1.25521⁢e+0


Envie seu comentário

Aproveito para agradecer a todas/os que de forma assídua ou esporádica contribuem enviando correções, sugestões e críticas!

Opcional. Preencha seu nome para que eu possa lhe contatar.
Opcional. Preencha seu e-mail para que eu possa lhe contatar.
As informações preenchidas são enviadas por e-mail para o desenvolvedor do site e tratadas de forma privada. Consulte a política de uso de dados para mais informações.

Licença Creative Commons
Este texto é disponibilizado nos termos da Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional. Ícones e elementos gráficos podem estar sujeitos a condições adicionais.

Pedro H A Konzen
| | | |