| | | | |

6.1 Problemas Lineares

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

Dado um conjunto de n pontos {(xi,yi)}i=1n, xixj para ij, e uma família de mn 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=1mcjfj(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|yif(xi;𝒄)|2}. (6.3)

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

min𝐜{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(yif(xi;𝒄))2 (6.6)
=i=1n(yij=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

Ecj=2i=0nri(c)cjri(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)
ATA𝒄=AT𝒚. (6.14)

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

ATA𝒄=AT𝒚. (6.15)

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

𝒄=(ATA)1AT𝒚, (6.16)

quando ATA é 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)=p1x2+p2x+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

ATA𝒑=AT𝒚, (6.18)

onde 𝒚=(y1,y2,y3) e

A:=[x12x11x22x21x32x31x42x41]. (6.19)

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

p(x)=1.25x20.188x0.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;𝒄)=c1sen(x)+c2cos(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;𝒄)=c1ec2x (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=c1ec2x (6.24)
lny=lnc1ec2x (6.25)
lny=lnc1+c2x. (6.26)

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

Para resolver o problema transformado, formamos a matriz

A:=[1x11x21x31x4] (6.27)

e, então, resolvemos as equações normais ATA𝒅=ATln𝒚, com ln𝒚=(lny1,lny2,lny3,lny4), 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;𝒄)=c1ec2x 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 ATA é invertível.

Teorema 6.1.1.

A matriz ATA é 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 x0 implica Ax0 e, equivalentemente, xTAT0. Portanto, x0 implica xTATAx=Ax22>0, o que mostra que ATA é positiva definida.

Suponhamos, agora, que as colunas de A não são linearmente independentes. Então, existe x00 tal que Ax0=0. Mas, então, x0TATAx0=0, o que mostra que ATA 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=(ATA)1ATy. (6.30)

6.1.3 Exercícios

E. 6.1.1.

Determine a reta y=c1x+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(c1x+c2)2 para os pontos dados.

Resposta.

c1=1.3259, c2=8.66071e2, r(c)2=1.01390.

E. 6.1.2.

Determine o polinômio y=c1x3+c2x2+c3x+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.

Resposta.

c1=4.50361e1, c2=2.78350e1, c3=1.46291, c4=2.09648, r(c)2=5.71346e1

E. 6.1.3.

Determine a curva y=c1senx+c2cosx+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.

Resposta.

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

E. 6.1.4.

Use a transformação z=lny para ajustar, no sentido de mínimos quadrados, a curva y=c1ec2(xc3)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
Resposta.

c1=2.10131e+0, c2=9.73859e1, c3=1.25521e+0


Envie seu comentário

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. Aproveito para agradecer a todas/os que de forma assídua ou esporádica contribuem enviando correções, sugestões e críticas!