Interpolação e ajuste não-segmentadosfabio/interp.pdf · Este problema equivale a resolver o...

22
F f : D E {(x i ,y i )} N i=1 x i D y i E f f (x i )= y i 1 i N f (x) f (x)= ae bx a b f (1) = 1 f (2) = 5 ae b = 1 ae 2b = 5 e b =5 b = ln(5) a = 1 5 f (x)= 1 5 e ln(5)x = 1 5 5 x =5 x1 . f (x)= a + bx + cx 2 (1, 2) (0, 1) (1, 6) ab c a b + c = 2 a = 1 a + b + c = 6 a =1 b =2 c =3 f (x)=1+2x +3x 2 . {(x i ,y i )} n i=0 n +1 i ̸= j = x i ̸= x j P (x) n a 0 a 1 a n P (x)= a 0 + a 1 x + a 2 x 2 + ··· a n x n = n k=0 a k x k P (x i )= y i a 0 + a 1 x 0 + a 2 x 2 0 + ··· + a n x n 0 = y 0 a 0 + a 1 x 2 + a 2 x 2 1 + ··· + a n x n 1 = y 1 a 0 + a 1 x n + a 2 x 2 n + ··· + a n x n n = y n

Transcript of Interpolação e ajuste não-segmentadosfabio/interp.pdf · Este problema equivale a resolver o...

Interpolação e ajuste não-segmentados

1 Introdução

O problema geral da interpolação pode ser de�nido da seguinte forma:Seja F uma família de funções f : D → E e {(xi, yi)}Ni=1 um conjunto de pares ordenados tais que xi ∈ D

e yi ∈ E, encontrar uma função f da família dada tal que f(xi) = yi para cada 1 ≤ i ≤ N .

Exemplo 1. Encontrar uma função f(x) da forma f(x) = aebx onde a e b são constantes tal que f(1) = 1 ef(2) = 5. Este problema equivale a resolver o seguinte sistema de equações:

aeb = 1

ae2b = 5

Dividindo a segunda equação pela primeira, temos eb = 5, logo, b = ln(5). Substituindo este valor em qualquerdas equações, temos a = 1

5. Assim

f(x) =1

5eln(5)x =

1

55x = 5x−1.

Exemplo 2. Encontrar a função polinomial do tipo f(x) = a+bx+cx2 que passe pelos pontos (−1, 2), (0, 1),(1, 6). Observamos que podemos encontrar os coe�cientes a, b e c através do seguinte sistema linear:

a− b+ c = 2

a = 1

a+ b+ c = 6

cuja solução é dada por a = 1, b = 2 e c = 3. Portanto

f(x) = 1 + 2x+ 3x2.

2 Interpolação polinomial

Interpolação polinomial é o caso particular do problema geral de interpolação quando a família de funções éconstituída de polinômios.

Teorema 1. Seja {(xi, yi)}ni=0 um conjunto de n+ 1 pares ordenados de números reais tais que

i = j =⇒ xi = xj (i.e. as abscissas são distintas)

então existe um único polinômio P (x) de grau igual ou inferior a n que passa por todos os pontos dados.

Demonstração. Observamos que o problema de encontrar os coe�cientes a0, a1,. . . , an do polinômio

P (x) = a0 + a1x+ a2x2 + · · · anxn =

n∑k=0

akxk

tal que P (xi) = yi é equilavente ao seguinte sistema linear de n+1 equações e n+1 incógnitas:

a0 + a1x0 + a2x20 + · · ·+ anx

n0 = y0

a0 + a1x2 + a2x21 + · · ·+ anx

n1 = y1

...

a0 + a1xn + a2x2n + · · ·+ anx

nn = yn

1

que pode ser escrito na forma matricial como1 x0 x2

0 · · · xn0

1 x1 x21 · · · xn

1

1 x2 x22 · · · xn

2...

......

. . ....

1 xn x2n · · · xn

n

a0a1a2...an

=

y0y1y2...yn

A matriz envolvida é uma matriz de Vandermonde de ordem n+ 1 cujo determinante é dado por∏

0≤i<j≤n

(xj − xi)

É fácil ver que se as abscissas são diferentes dois a dois, então o determinante é não-nulo. Disto decorre queo sistema possui um a solução e que esta solução é única.

Exemplo 3. Encontre o polinômio da forma P (x) = a0 + a1x+ a2x2 + a3x

3 que passa pelos pontos

(0, 1), (1, 2), (2, 4), (3, 8)

Este problema é equivalente ao seguinte sistema linear:

a0 = 1

a0 + a1 + a2 + a3 = 2

a0 + 2a1 + 4a2 + 8a3 = 4

a0 + 3a1 + 9a2 + 27a3 = 8

cuja solução é a0 = 1, a1 = 56, a2 = 0 e a3 =

16. Portanto

P (x) = 1 +5

6x+

1

6x3

Exemplo 4. Encontre o polinômio da forma P (x) = a0 + a1x+ a2x2 + a3x

3 que passa pelos pontos

(0, 0), (1, 1), (2, 4), (3, 9)

Este problema é equivalente ao seguinte sistema linear:

a0 = 0

a0 + a1 + a2 + a3 = 1

a0 + 2a1 + 4a2 + 8a3 = 4

a0 + 3a1 + 9a2 + 27a3 = 9

cuja solução é a0 = 0, a1 = 0, a2 = 1 e a3 = 0. Portanto

P (x) = x2

Esta abordagem direta que �zemos ao calcular os coe�cientes do polinômio na base canônica se mostra ine-�ciente quando o número de pontos é grande e quando existe grande discrepância em as abscissas. Neste casoa matriz de Vandermonde é mal-condicionada (ver [1]), acarretando um aumento dos erros de arredondamentona solução do sistema.

Uma maneira de resolver este problema é escrever o polinômio em uma base que produza um sistema maisbem-condicionado.

2

3 Diferenças divididas de Newton

O método das diferenças divididas de Newton consistem em contruir o polinômio interpolador da seguinteforma:

P (x) = a0 + a1(x− x0) + a2(x− x0)(x− x1) + · · ·+ an(x− x0)(x− x1) · · · (x− xn−1)

Assim, o problema de calcular os coe�cientes a0, a1, . . . , an é equivalente ao seguinte sistema linear:

a0 = y0

a0 + a1(x1 − x0) = y1

a0 + a1(x2 − x0) + a2(x2 − x0)(x2 − x1) = y2...

a0 + a1(xn − x0) + a2(xn − x0)(xn − x1) + · · ·+ an(xn − x0)(xn − x1) · · · (xn − xn−1) = yn

Equivalente à sua forma matricial:1 0 0 · · · 01 (x1 − x0) 0 · · · 01 (x2 − x0) (x2 − x0)(x2 − x1) · · · 0...

......

. . ....

1 (xn − x0) (xn − x0)(xn − x1) · · · (xn − x0)(xn − x1) · · · (xn − xn−1)

a0a1a2...an

=

y0y1y2...yn

Este é um sistema triangular inferior que pode ser facilmente resolvido conforme:

a0 = y0

a1 =y1 − a0x1 − x0

=y1 − y0x1 − x0

a2 =y2 − a1(x2 − x0)− a0(x2 − x0)(x2 − x1)

=

y2−y1(x2−x1)

− y1−y0(x1−x0)

(x2 − x0). . .

A solução deste sistema pode ser escrita em termos das Diferenças Divididas de Newton, de�nidas recur-sivamente conforme:

f [xj] = yj

f [xj, xj+1] =f [xj+1]− f [xj]

xj+1 − xj

f [xj, xj+1, xj+2] =f [xj+1, xj+2]− f [xj, xj+1]

xj+2 − xj

...

Nesta notação, temos ak = f [x0, x1, x2, . . . , xk]

3

Podemos esquematizar o método na seguinte tabela:

j xj f [xj] f [xj−1, xj] f [xj−2, xj−1, xj]

0 x0 f [x0]

f [x0, x1] =f [x1]−f [x0]

x1−x0

1 x1 f [x1] f [x0, x1, x2] =f [x1,x2]−f [x0,x1]

x2−x0

f [x1, x2] =f [x2]−f [x1]

x2−x1

2 x2 f [x2]

Exemplo 5. Encontrar o polinômio que passe pelos seguintes pontos

(−1, 3), (0, 1), (1, 3), (3, 43)

j xj f [xj] f [xj−1, xj] f [xj−2, xj−1, xj] f [xj−3, xj−2, xj−1, xj]

0 −1 3

1−30−(−1)

= −2

1 0 1 2−(−2)1−(−1)

= 2

3−11−0

= 2 6−23−(−1)

= 1

2 1 3 20−23−0

= 6

43−33−1

= 20

3 3 43

Portanto

P (x) = 3− 2(x+ 1) + 2(x+ 1)x+ (x+ 1)x(x− 1)

= x3 + 2x2 − x+ 1

Problema 1. Considere o seguinte conjunto de pontos:

(−2,−47), (0,−3), (1, 4)(2, 41)

Encontre o polinômio interpolador usando os métodos vistos. Trace os pontos no Scilab usando o comando'plot2d' e trace o grá�co do polinômio usando comandos de plotagem e a estrutura de polinômio.

Resp: 5x3 + 2x− 3

4

4 Polinômios de Lagrange

Outra maneira clássica de resolver o problema da interpolação polinomial é através do polinômios de Lagrange.Dado um conjunto de pontos {xj}nj=1 distintos dois a dois, de�nimos os polinômios de Lagrange como ospolinômios de grau n− 1 que satisfazem as seguintes condições:

Lk(xj) =

{1, k = j0, k = j

Assim, a solução do problema de encontrar os polinômios de grau n− 1 tais P (xj) = yj, j = 1, · · · , n é dadopor

P (x) = y1L1(x) + y2L2(x) + · · ·+ ynLn(x) =n∑

j=1

yjLj(x)

Para construir os polinômios de Lagrange, basta olhar para sua forma fatorada, ou seja:

Lk(x) = Ck

∏1≤j =k≤n

(x− xj)

onde o coe�ciente Ck é obtido da condição Lk(xk) = 1:

Lk(xk) = Ck

∏1≤j =k≤n

(xk − xj) =⇒ Ck =1∏

1≤j =k≤n(xk − xj)

Portanto,

Lk(x) =∏

1≤j =k≤n

(x− xj)

(xk − xj)

Observação 1. O problema de interpolação quando escrito usando como base os polinômios de Lagrangeproduz um sistema linear diagonal.

Exemplo 6. Encontre o polinômio da forma P (x) = a0 + a1x+ a2x2 + a3x

3 que passa pelos pontos

(0, 0), (1, 1), (2, 4), (3, 9)

Escrevemos:

L1(x) =(x− 1)(x− 2)(x− 3)

(0− 1)(0− 2)(0− 3)= −1

6x3 + x2 − 11

6x+ 1

L2(x) =x(x− 2)(x− 3)

1(1− 2)(1− 3)=

1

2x3 − 5

2x2 + 3x

L3(x) =x(x− 1)(x− 3)

2(2− 1)(2− 3)= −1

2x3 + 2x2 − 3

2x

L4(x) =x(x− 1)(x− 2)

3(3− 1)(3− 2)=

1

6x3 − 1

2x2 +

1

3x

Assim temos:P (x) = 0 · L1(x) + 1 · L2(x) + 4 · L3(x) + 9 · L4(x) = x2

Exemplo 7. Encontre o polinômio da forma P (x) = a0 + a1x+ a2x2 + a3x

3 que passa pelos pontos

(0, 0), (1, 1), (2, 0), (3, 1)

Comos as absissas são as mesmas do exemplo anterior, podemos utilizar os mesmos polinômios de Lagrange,assim temos:

P (x) = 0 · L1(x) + 1 · L2(x) + 0 · L3(x) + 1 · L4(x) =2

3x3 − 3x2 +

10

3x

5

5 Aproximação de funções reais por polinômios interpoladores

Teorema 2. Dados n+1 pontos distintos, x0, x1, · · · , xn, dentro de um intervalo [a, b] e uma função f comn+1 derivadas contínuas nesse intervalo (f ∈ Cn+1[a, b]), então para cada x em [a, b], existe um número ξ(x)em (a, b) tal que

f(x) = P (x) +f (n+1)(ξ(x))

(n+ 1)!(x− x0)(x− x1) · · · (x− xn),

onde P (x) é o polinômio interpolador. Em especial, pode-se dizer que

|f(x)− P (x)| ≤ M

(n+ 1)!|(x− x0)(x− x1) · · · (x− xn)| ,

ondeM = max

x∈[a,b]|f (n+1)(ξ(x))|

Exemplo 8. Considere a função f(x) = cos(x) e o polinômio P (x) de grau 2 tal que P (0) = cos(0) = 1,P (1

2) = cos(1

2) e P (1) = cos(1). Use a fórmula de Lagrange para encontrar P (x). Encontre o erro máximo

que se assume ao aproximar o valor de cos(x) pelo de P (x) no intervalo [0, 1]. Trace os grá�cos de f(x) e P (x)no intervalo [0, 1] no mesmo plano cartesiano e, depois, trace o grá�co da diferença cos(x)− P (x). Encontreo erro efetivo máximo | cos(x)− P (x)|.

P (x) = 1(x− 1

2)(x− 1)

(0− 12)(0− 1)

+ cos

(1

2

)(x− 0)(x− 1)

(12− 0)(1

2− 1)

+ cos(1)(x− 0)(x− 1

2)

(1− 0)(1− 12)

≈ 1− 0.0299720583066x− 0.4297256358252x2

L1=poly([.5 1],'x');L1=L1/horner(L1,0)

L2=poly([0 1],'x');L2=L2/horner(L2,0.5)

L3=poly([0 .5],'x');L3=L3/horner(L3,1)

P=L1+cos(.5)*L2+cos(1)*L3

x=[0:.05:1]

plot(x,cos)

plot(x,horner(P,x),'red')

plot(x,horner(P,x)-cos(x))

Para encontrar o erro máximo, precisamos estimar |f ′′′(x)| = | sin(x)| ≤ sin(1) < 0.85 e

maxx∈[0,1]

∣∣∣∣x(x− 1

2

)(x− 1)

∣∣∣∣O polinômio de grau três Q(x) = x

(x− 1

2

)(x − 1) tem um mínimo (negativo) em x1 = 3+

√3

6e um máximo

(positivo) em x2 =3−

√3

6. Logo

maxx∈[0,1]

∣∣∣∣x(x− 1

2

)(x− 1)

∣∣∣∣ ≤ max{|Q(x1)|, |Q(x2)|} ≈ 0.0481125.

Portanto,

|f(x)− P (x)| < 0.85

3!0.0481125 ≈ 0.0068159 < 7 · 10−3

Para encontrar o erro efetivo máximo, basta encontrar o máximo de |P (x)− cos(x)|. O mínimo (negativo)de P (x)− cos(x) acontece em x1 = 4.29 · 10−3 e o máximo (positivo) acontece em x2 = 3.29 · 10−3. Portanto,o erro máximo efetivo é 4.29 · 10−3.

6

Exemplo 9. Considere o problema de aproximar o valor da integral∫ 1

0f(x)dx pelo valor da integral do

polinômio P (x) que coincide com f(x) nos pontos x0 = 0, x1 =12e x2 = 1. Use a fórmula de Lagrange para

encontrar P (x). Obtenha o valor de∫ 1

0f(x)dx e encontre uma expressão para o erro de truncamento.

O polinômio interpolador de f(x) é

P (x) = f(0)(x− 1

2)(x− 1)

(0− 12)(0− 1)

+ f

(1

2

)(x− 0)(x− 1)

(12− 0)(1

2− 1)

+ f(1)(x− 0)(x− 1

2)

(1− 0)(1− 12)

= f(0)(2x2 − 3x+ 1) + f

(1

2

)(−4x2 + 4x) + f(1)(2x2 − x)

e a integral de P (x) é∫ 1

0

P (x)dx =

[f(0)

(2

3x3 − 3

2x2 + x

)+ f

(1

2

)(−4

3x3 + 2x2

)+ f(1)

(2

3x3 − 1

2x2

)]10

= f(0)

(2

3− 3

2+ 1

)+ f

(1

2

)(−4

3+ 2

)+ f(1)

(2

3− 1

2

)=

1

6f(0) +

2

3f

(1

2

)+

1

6f(1)

Para fazer a estimativa de erro usando o teorema (2), e temos∣∣∣∣∫ 1

0

f(x)dx−∫ 1

0

P (x)dx

∣∣∣∣ =

∣∣∣∣∫ 1

0

f(x)− P (x)dx

∣∣∣∣≤

∫ 1

0

|f(x)− P (x)|dx

≤ M

6

∫ 1

0

∣∣∣∣x(x− 1

2

)(x− 1)

∣∣∣∣ dx=

M

6

[∫ 1/2

0

x

(x− 1

2

)(x− 1)dx−

∫ 1

1/2

x

(x− 1

2

)(x− 1)dx

]

=M

6

[1

64−(− 1

64

)]=

M

192.

Lembramos que M = maxx∈[0,1] |f ′′′(x)|.

Observação 2. Existem estimativas melhores para o erro de truncamento para este esquema de integraçãonumérica. Veremos com mais detalhes tais esquemas na teoria de integração numérica.

Problema 2. Use o resultado do exemplo anterior para aproximar o valor das seguintes integrais:

a)∫ 1

0

ln(x+ 1)dx

b)∫ 1

0

e−x2

dx

Usando a fórmula obtida, temos que ∫ 1

0

ln(x+ 1)dx ≈ 0.39± 1

96∫ 1

0

e−x2

dx ≈ 0.75± 3.87

192

7

Problema 3. Use as mesmas técnicas usadas o resultado do exemplo (9) para obter uma aproximação dovalor de ∫ 1

0

f(x)dx

através do polinômio interpolador que coincide com f(x) nos pontos x = 0 e x = 1.

Resp:∫ 1

0P (x)dx = f(0)+f(1)

2, 1

12maxx∈[0,1] |f ′′(x)|

6 Ajuste de curvas pelo método dos mínimos quadrados

No problema de interpolação, desejamos encontrar uma função f(x) tal que

f(xj) = yj

para um conjunto de pontos dados.Existem diversas situações em que desejamos encontrar uma função que se aproxime desses pontos.

0 10.2 0.4 0.6 0.80.1 0.3 0.5 0.7 0.90.05 0.15 0.25 0.35 0.45 0.55 0.65 0.75 0.85 0.95

1

0.2

0.4

0.6

0.8

1.2

0.1

0.3

0.5

0.7

0.9

1.1

Figura 1: Conjunto de 15 pontos e a reta que melhor se ajuste a eles pelo critério do mínimos quadrados.

No problema de ajuste de curvas, busca-se a função f(x) de família de funções dadas que melhor seaproxima de um conjunto de pontos dados. O critério mais usado para o ajuste é critério dos mínimosquadrados, ou seja, buscamos a função f(x) da família que minimiza a soma dos erros elevados ao quadrado:

Eq = [f(x1)− y1]2 + [f(x2)− y2]

2 + · · ·+ [f(xn)− yn]2 =

n∑j=1

[f(xj)− yj]2

Exemplo 10. Encontre a função do tipo f(x) = ax que melhor se aproxima dos seguintes pontos:

(0,−.1), (1, 2), (2, 3.7) e (3, 7).

De�naEq = [f(x1)− y1]

2 + [f(x2)− y2]2 + [f(x3)− y3]

2 + [f(x4)− y4]2

temos que

Eq = [f(0) + .1]2 + [f(1)− 2]2 + [f(2)− 3.7]2 + [f(3)− 7]2

= [.1]2 + [a− 2]2 + [2a− 3.7]2 + [3a− 7]2

8

Devemos encontrar o parâmetro a que minima o erro, portanto, calculamos:

∂Eq

∂a= 2[a− 2] + 4[2a− 3.7] + 6[3a− 7] = 28a− 60.8

Portanto o valor de a que minimiza o erro é a = 60.828

.

x=[0 1 2 3]'

y=[-.1 2 3.7 7]'

plot2d(x,y,style=-4)

Problema 4. Encontre a função do tipo f(x) = bx+a que melhor aproxima os pontos do problema anterior.

Resp: f(x) = −.3 + 2.3x

Eq = [f(0) + .1]2 + [f(1)− 2]2 + [f(2)− 3.7]2 + [f(3)− 7]2

= [a+ .1]2 + [a+ b− 2]2 + [a+ 2b− 3.7]2 + [a+ 3b− 7]2

Devemos encontrar os parâmetros a b que minimizam o erro, por isso, calculamos as derivadas parciais:

∂Eq

∂a= 2[a+ .1] + 2[a+ b− 2] + 2[a+ 2b− 3.7] + 2[a+ 3b− 7]

∂Eq

∂b= 2[a+ b− 2] + 4[a+ 2b− 3.7] + 6[a+ 3b− 7]

O erro mínimo acontece quando as derivadas são nulas, ou seja:

8a+ 12b = 25.2

12a+ 28b = 60.8

Cuja solução é dada por a = −0.3 e b = 2.3. Portanto a função que procuramos é f(x) = −.3 + 2.3x.

7 O caso linear

7.1 Revisão de Álgebra Linear - O método dos mínimos quadrados para proble-mas lineares impossíveis

Considere o sistema linear dado por Ax = b onde A é uma matriz n×m e b é um vetor de n linhas. Assumimosas seguintes hipóteses:

• n ≥ m. O número de linhas é igual ou superior ao número de colunas. (Mais equações que incógnitas)

• O posto de A é m, i.e., existem m linhas L.I. Isso implica que Av = 0 apenas quando v = 0

Neste caso, não seremos necessariamente capazes de encontrar um vetor x que satisfaça exatamente aequação Ax = b, pelo que estamos interessamos no problema de encontrar o vetor x (ordem m) que minimizao erro quadrático dado por:

E :=n∑

i=1

[zi − bi]2 (1)

onde z = Ax e zi é linha i do vetor z, dado por:

zi = (Ax)i =m∑j=1

aijxj, i = 1, · · · , n (2)

9

onde aij é o elemento de A na linha i e coluna j. Substituindo (2) em (1)

E :=n∑

i=1

[m∑j=1

aijxj − bi

]2

(3)

Esta é uma função diferenciável nos coe�cientes xj e portanto todo ponto de mínimo acontece quando∇E = 0,ou seja, quando

∂xl

E = 0,∀1 ≤ l ≤ m

O que implica a seguinte condição

0 =∂

∂xl

E =n∑

i=1

2

[m∑j=1

aijxj − bi

]ail, l = 1, · · · ,m

Equivalente a

n∑i=1

m∑j=1

ailxjaij =n∑

i=1

ailbi, l = 1, · · · ,m

que pode ser reescrito na forma vetorial como:∑n

i=1

∑mj=1 ai1xjaij∑n

i=1

∑mj=1 ai2xjaij...∑n

i=1

∑mj=1 aimxjaij

=

∑n

i=1 ai1bi∑ni=1 ai2bi...∑n

i=1 aimbi

(4)

Observamos agora que a expressão (4) é equivalente ao seguinte problema matricial:

ATAx = AT b (5)

Teorema 3. A matriz M = ATA é quadrada de ordem m e é invertível sempre que o posto da matriz A éigual a número de colunas m.

Demonstração. Para provar que M é invertível precisamos mostrar que Mv = 0 implica v = 0:

Mv = 0 =⇒ ATAv = 0

tomando o produto interno da expressão 0 = ATAv com v, temos:

0 =⟨ATAv, v

⟩= ⟨Av,Av⟩ = ∥Av∥2

Então se Mv = 0 Av = 0, como o posto de A é igual ao número de colunas, v = 0.

Outra propriedade importante é que M é simétrica, ou seja, M = MT . Isso é facilmente provado peloseguinte argumento:

MT = (ATA)T = (A)T (AT )T = ATA = M

10

7.2 Ajuste linear de curvas pelo método dos mínimos quadrados

Seja f1(x), f2(x), . . . , fm(x) um conjunto dem funções e (x1, y1), (x2, y2), . . . , (xn, yn) um conjunto de n pontos.Procuram-se os coe�cientes a1, a2, . . . , am tais que a função dada por

f(x) = a1f1(x) + a2f2(x) + . . .+ amfm(x)

minimiza o erro dado por

Eq =n∑

i=1

[f(xi)− yi]2

como f(x) =∑m

j=1 ajfj(x), temos

Eq =n∑

i=1

[m∑j=1

ajfj(xi)− yi

]2

Este problema é equivalente a resolver pelo métodos dos mínimos quadrados o seguinte sistema linear:f1(x1) f2(x1) · · · fm(x1)f1(x2) f2(x2) · · · fm(x2)f1(x3) f2(x3) · · · fm(x3)

......

. . ....

f1(xn) f2(xn) · · · fm(xn)

a1a2...am

=

y1y2y3...yn

Exemplo 11. Encontrar a reta que melhor aproxima o seguinte conjunto de dados:

xi yi0.01 1.991.02 4.552.04 7.22.95 9.513.55 10.82

Desejamos então encontrar os valores de a e b tais que a função f(x) = ax+ b melhor se ajusta aos pontos databela. A�m de usar o critério dos mínimos quadrados, escrevemos o problema na forma matricial dada por:

0.01 11.02 12.04 12.95 13.55 1

[ab

]=

1.994.557.29.5110.82

Multiplicamos agora ambos os lados pela transposta

[0.01 1.02 2.04 2.95 3.551 1 1 1 1

]:

[0.01 1.02 2.04 2.95 3.551 1 1 1 1

]0.01 11.02 12.04 12.95 13.55 1

[ab

]=

[0.01 1.02 2.04 2.95 3.551 1 1 1 1

]1.994.557.29.5110.82

11

[26.5071 9.579.57 5

] [ab

]=

[85.814434.07

]A solução desse sistema é a = 2.5157653 e b = 1.9988251A tabela abaixo mostra os valores dados e os valores ajustados:

xi yi axi + b axi + b− yi0.01 1.99 2.0239828 0.03398281.02 4.55 4.5649057 0.01490572.04 7.2 7.1309863 - 0.06901372.95 9.51 9.4203327 - 0.08966733.55 10.82 10.929792 0.1097919

Problema 5. Encontrar a parábola y = ax2 + bx+ c que melhor aproxima o seguinte conjunto de dados:

xi yi0.01 1.991.02 4.552.04 7.22.95 9.513.55 10.82

e complete a tabelaxi yi ax2

i + bxi + c ax2i + bxi + c− yi

0.01 1.991.02 4.552.04 7.22.95 9.513.55 10.82

Resposta y = −0.0407898x2 + 2.6613293x+ 1.9364598

xi yi ax2i + bxi + c ax2

i + bxi + c− yi0.01 1.99 1.963069 - 0.02693101.02 4.55 4.6085779 0.05857792.04 7.2 7.1958206 - 0.00417942.95 9.51 9.4324077 - 0.07759233.55 10.82 10.870125 0.0501249

Problema 6. Dado o seguinte conjunto de dados

xi yi0. 310.1 350.2 370.3 330.4 280.5 200.6 160.7 150.8 180.9 231. 31

12

• Encontre a função do tipo f(x) = a+ b sin(2πx) + c cos(2πx) que melhor aproxima os valores dados.

• Encontre a função do tipo f(x) = a+ bx+ cx2 + dx3 que melhor aproxima os valores dados.

Resp: a = 25.638625, b = 9.8591874, c = 4.9751219 e a = 31.475524, b = 65.691531, c = −272.84382,d = 208.23621

8 Problemas não lineares que podem ser aproximados por proble-

mas lineares

Eventualmente, problemas de ajuste de curvas podem recair num sistema não linear. Por exemplo, se dese-jamos ajustar a função y = Aebx ao conjunto de pontos (x0, y0), (x1, y1) e (x2, y2), temos que minimizar ofuncional

Eq = (Aex0b − y0)2 + (Aex1b − y1)

2 + (Aex2b − y2)2

ou seja, resolver o sistema

∂Eq

∂A= 2(Aex0b − y0)e

x0b + 2(Aex1b − y1)ex1b + 2(Aex2b − y2)e

x2b = 0

∂Eq

∂b= 2Ax0(Ae

x0b − y0)ex0b + 2Ax1(Ae

x1b − y1)ex1b + 2x2A(Ae

x2b − y2)ex2b = 0

que é não linear em A e b. Esse sistema pode ser resolvido pelo método de Newton-Raphson, o que pode setornar custoso, ou mesmo inviável quando não dispomos de uma boa aproximação da solução para inicializaro método.

Felizmente, algumas famílias de curvas admitem uma transformação que nos leva a um problema linear.No caso da curva y = Aebx, observe que ln y = lnA+ bx. Assim, em vez de ajustar a curva original y = Aebx

a tabela de pontos, ajustamos a curva submetida a transformação logaritmica

z = lnA+ bx := B + bx.

Usamos os três pontos (x0, ln y0) := (x0, y0), (x1, ln y1) := (x1, y1) e (x2, ln y2) := (x2, y2) e resolvemos osistema linear

ATA

[Bb

]= AT

y0y1y2

,

onde

A =

1 x0

1 x1

1 x2

Exemplo 12. Encontre uma curva da forma y = Aex que melhor ajusta os pontos (1, 2), (2, 3) e (3, 5).

Temos

A =

1 11 21 3

e a solução do sistema leva em B = 0.217442 e b = 0.458145. Portanto, A = e0.217442 = 1.24289.

Observação 3. Os coe�cientes obtidos a partir dessa linearização são aproximados, ou seja, são diferen-tes daqueles obtidos quando aplicamos mínimos quadrados não linear. Observe que estamos minimizando∑i

[ln yi − ln(f(xi))]2 em vez de

∑i

[yi − f(xi)]2. No exemplo resolvido, a solução do sistema não linear

original seria A = 1.19789 e B = 0.474348

13

Observação 4. Mesmo quando se deseja resolver o sistema não linear, a solução do problema linearizadopode ser usada para construir condições iniciais.

A próxima tabela apresenta algumas curvas e transformações que linearizam o problema de ajuste.

curva transformação problema linearizadoy = aebx Y = ln y Y = ln a+ bxy = axb Y = ln y Y = ln a+ b lnx

y = axbecx Y = ln y Y = ln a+ b lnx+ cx

y = ae(b+cx)2 Y = ln y Y = ln a+ b2 + bcx+ c2x2

y = ab+x

Y = 1y

Y = ba+ 1

ax

y = A cos(ωx+ ϕ)ω conhecido

− y = a cos(ωx)− b sin(ωx),a = A cos(ϕ), b = A sin(ϕ)

Exemplo 13. Encontre a função f da forma y = f(x) = A cos(2πx+ ϕ) que ajusta a tabela de pontos

xi yi0 9.120.1 1.420.2 - 7.760.3 - 11.130.4 - 11.60.5 - 6.440.6 1.410.7 11.010.8 14.730.9 13.221.0 9.93

Usando o fato que y = A cos(2πx + ϕ) = a cos(2πx) − b sin(2πx), onde a = A cos(ϕ) e b = A sin(ϕ),z = [ a b ]T é solução do problema

BTBz = BTy,

onde

B =

cos(2πx0) − sin(2πx0)cos(2πx1) − sin(2πx1)

...cos(2πx10) − sin(2πx10)

=

1. 0.0.8090170 −0.58778530.3090170 −0.9510565−0.3090170 −0.9510565−0.8090170 −0.5877853

−1. 0−0.8090170 0.5877853−0.3090170 0.95105650.3090170 0.95105650.8090170 0.5877853

1. 0

.

Assim, a = 7.9614704 e b = 11.405721 e obtemos o seguinte sistema:{A cos(ϕ) = 7.9614704A sin(ϕ) = 11.405721

.

Observe queA2 = 7.96147042 + 11.4057212

14

e, escolhendo A > 0, A = 13.909546 e

sin(ϕ) =11.405721

13.909546= 0.8199923

Assim, como cosϕ também é positivo, ϕ é um ângulo do primeiro quadrante:

ϕ = 0.9613976

Portanto f(x) = 13.909546 cos(2πx+ 0.9613976). Observe que nesse exemplo a solução do problema linear éa mesma do problema não linear.

Problema 7. Encontre a função f da forma y = f(x) = ab+x

que ajusta a tabela de pontos

xi yi0 1010.2 850.4 750.6 660.8 601.0 55

usando uma das transformações tabeladas.

Usando o fato que Y = 1y= b

a+ 1

ax, z = [ b

a1a]T é solução do problema

ATAz = ATY,

onde

A =

1 x1

1 x2

1 x3

1 x4

1 x5

1 x6

=

1 01 0.21 0.41 0.61 0.81 1.0

e

Y =

1/y11/y21/y31/y41/y51/y6

=

0.00990100.01176470.01333330.01515150.01666670.0181818

Assim, 1

a= 0.0082755 e b

a= 0.0100288 e, então, a = 120.83924 e b = 1.2118696, ou seja, f(x) = 120.83924

1.2118696+x.

9 Interpolação linear segmentada

Considere o conjunto (xi, yi)nj=1 de n pontos. Assumiremos que xi+1 > xi, ou seja, as abscissas são distintas

e estão em ordem crescente. A função linear que interpola os pontos xi e xi+1 no intervalo i é dada por

Pi(x) = yi(xi+1 − x)

(xi+1 − xi)+ yi+1

(x− xi)

(xi+1 − xi)

O resultado da interpolação linear segmentada é a seguinte função contínua de�nida por partes no intervalo[x1, xn]:

f(x) = Pi(x), x ∈ [xi, xi+1]

15

Figura 2: Interpolação linear segmentada dos pontos (0,0), (1,4), (2,3), (3,0), (4,2), (5,0)

10 Interpolação cúbica segmentada - spline

Dado um conjunto de n pontos (xj, yj)nj=1 tais que xj+1 > xj, ou seja, as abscissas são distintas e estão em

ordem crescente; um spline cúbico que interpola estes pontos é uma função s(x) com as seguintes propriedades:

i Em cada segmento [xj, xj+1], j = 1, 2, . . . n− 1 s(x) é um polinômio cúbico.

ii para cada ponto, s(xj) = yj, i.e., o spline interpola os pontos dados.

iii s(x) ∈ C2, i.e., é função duas vezes continuamente diferenciável.

Da primeira hipótese, escrevemos

s(x) = sj(x), x ∈ [xj, xj+1], j = 1, . . . , n− 1

comsj(x) = aj + bj(x− xj) + cj(x− xj)

2 + dj(x− xj)3

O problema agora consiste em obter os 4 coe�cientes de cada um desses n− 1 polinômios cúbicos.Veremos que a simples de�nição de spline produz 4n− 6 equações linearmente independentes:

sj(xj) = yj, j = 1, . . . , n− 1sj(xj+1) = yj+1, j = 1, . . . , n− 1s′j(xj+1) = s′j+1(xj+1), j = 1, . . . , n− 1s′′j (xj+1) = s′′j+1(xj+1), j = 1, . . . , n− 1

Comos′j(x) = bj + 2cj(x− xj) + 3dj(x− xj)

2 (6)

es′′j (x) = 2cj + 6dj(x− xj), (7)

16

temos, para j = 1, . . . , n− 1, as seguintes equações

aj = yj,aj + bj(xj+1 − xj) + cj(xj+1 − xj)

2 + dj(xj+1 − xj)3 = yj+1,

bj + 2cj(xj+1 − xj) + 3dj(xj+1 − xj)2 = bj+1,

cj + 3dj(xj+1 − xj) = cj+1,

Por simplicidade, de�nimoshj = xj+1 − xj

e temosaj = yj,

aj + bjhj + cjh2j + djh

3j = yj+1,

bj + 2cjhj + 3djh2j = bj+1,

cj + 3djhj = cj+1,

que podem ser escrita da seguinte maneiraaj = yj, (8)

dj =cj+1 − cj

3hj

, (9)

bj =yj+1 − yj − cjh

2j −

cj+1−cj3hj

h3j

hj

,

=3yj+1 − 3yj − 3cjh

2j − cj+1h

2j + cjh

2j

3hj

=3yj+1 − 3yj − 2cjh

2j − cj+1h

2j

3hj

(10)

Trocando o índice j por j − 1 na terceira equação (8), j = 2, . . . , n− 1

bj−1 + 2cj−1hj−1 + 3dj−1h2j−1 = bj

e, portanto,

3yj − 3yj−1 − 2cj−1h2j−1 − cjh

2j−1

3hj−1

+ 2cj−1hj−1 + cjhj−1 − cj−1hj−1 =3yj+1 − 3yj − 2cjh

2j − cj+1h

2j

3hj

.

Fazendo as simpli�cações, obtemos:

cj−1hj−1 + cj(2hj + 2hj−1) + cj+1hj = 3yj+1 − yj

hj

− 3yj − yj−1

hj−1

. (11)

É costumeiro acrescentar a incógnita cn ao sistema. A incógnita cn não está relacionada a nenhum dospolinômios interpoladores. Ela é uma construção arti�cial que facilita o cálculo dos coe�cientes do spline.Portanto, a equação acima pode ser resolvida para j = 2, . . . , n− 1.

Para determinar unicamente os n coe�cientes cn precisamos acrescentar duas equações linearmente in-dependentes às n − 2 equações dadas por (11). Essas duas equações adicionais de�nem o tipo de splineusado.

17

10.1 Spline natural

Uma forma de de�nir as duas equações adicionais para completar o sistema (11) é impor condições de fronteiralivres (ou naturais), ou seja,

S ′′(x1) = S ′′(xn) = 0. (12)

Substituindo na equação (7)

s′′1(x1) = 2c1 + 6d1(x1 − x1) = 0 =⇒ c1 = 0.

es′′n−1(xn) = 2cn−1 + 6dn−1(xn − xn−1) = 0 =⇒ c1 = 0.

Usando o fato quecn−1 + 3dn−1hn−1 = cn

temos quecn = −3dn−1(xn − xn−1) + 3dn−1hn−1 = 0.

Essa duas equações para c1 e cn juntamente com as equações (11) formam um sistema de n equações AX = B,onde

A =

1 0 0 0 · · · 0 0h1 2h2 + 2h1 h2 0 · · · 0 00 h2 2h3 + 2h2 h3 · · · 0 0...

......

.... . .

......

0 0 0 · · · hn−2 2hn−2 + 2hn−1 hn−1

0 0 0 · · · 0 0 1

X =

c1c2...cn

e B =

03y3−y2

h2− 3y2−y1

h1

3y4−y3h3

− 3y3−y2h2

...3yn−1−yn−2

hn−2− 3yn−2−yn−3

hn−3

0

Observe que a matriz A é diagonal dominante estrita e, portanto, o sistema AX = B possui solução única.Os valores dos an, bn e dn são obtidos diretamente pelas expressões (8), (10) e (9), respectivamente.

Exemplo 14. Construa um spline cúbico natural que passe pelos pontos (2, 4.5), (5,−1.9), (9, 0.5) e (12,−0.5).

O spline desejado é uma função de�nida por partes da forma:

f(x) =

a1 + b1(x− 2) + c1(x− 2)2 + d1(x− 2)3 2 ≤ x < 5a2 + b2(x− 5) + c2(x− 5)2 + d2(x− 5)3 5 ≤ x < 9a3 + b3(x− 9) + c3(x− 9)2 + d3(x− 9)3 9 ≤ x < 12

.

Os coe�cientes c1, c2 e c3 resolvem o sistema AX = B, onde

A =

1 0 0 03 2 · 3 + 2 · 4 4 00 4 2 · 4 + 2 · 3 30 0 0 1

=

1 0 0 03 14 4 00 4 14 30 0 0 1

18

X =

c1c2c3c4

e B =

0

30.5−(−1.9)4

− 3 (−1.9)−4.53

3−0.5−0.53

− 30.5−(−1.9)4

0

=

08.2−2.80

Observe que c4 é um coe�ciente arti�cial para o problema. A solução é c1 = 0, c2 = 0.6847826, c3 =−0.3467391 e c4 = 0. Calculamos os demais coe�cientes usando as expressões (8), (10) e (9):

a1 = y1 = 4.5

a2 = y2 = −1.9

a3 = y3 = 0.5

d1 =c2 − c13h1

=0.6847826− 0

3 · 3= 0.0760870

d2 =c3 − c23h2

=−0.3467391− 0.6847826

3 · 4= −0.0859601

d3 =c4 − c33h3

=0 + 0.3467391

3 · 3= 0.0385266

b1 =y2 − y1

h1

− h1

3(2c1 + c2) =

−1.9− 4.5

3− 3

3(2 · 0− 0.6847826) = −2.8181159

b2 =y3 − y2

h2

− h2

3(2c2 + c3) =

0.5− (−1.9)

4− 4

3(2 · 0.6847826− 0.3467391) = −0.7637681

b3 =y4 − y3

h3

− h3

3(2c3 + c4) =

−0.5− 0.5

3− 3

3(2 · (−0.3467391) + 0) = 0.3601449

Portanto,

f(x) =

4.5− 2.8181159(x− 2) + 0.0760870(x− 2)3 2 ≤ x < 5−1.9− 0.7637681(x− 5) + 0.6847826(x− 5)2 − 0.0859601(x− 5)3 5 ≤ x < 90.5 + 0.3601449(x− 9)− 0.3467391(x− 9)2 + 0.0385266(x− 9)3 9 ≤ x < 12

.

Comandos no scilab:

x=[2 5 9 12]'

y=[4.5 -1.9 0.5 -0.5]

h=x(2:4)-x(1:3)

A=[1 0 0 0;h(1) 2*h(1)+2*h(2) h(2) 0;0 h(1) 2*h(1)+2*h(2) h(2);0 0 0 1 ]

B=[0 3*(y(3)-y(2))/h(2)-3*(y(2)-y(1))/h(1) 3*(y(4)-y(3))/h(3)-3*(y(3)-y(2))/h(2) 0]'

c=A\B

for i=1:3

a(i)=y(i)

d(i)=(c(i+1)-c(i))/(3*h(i))

b(i)=(y(i+1)-y(i))/h(i)-h(i)/3*(2*c(i)+c(i+1))

end

z=zeros(3,1000)

for i=1:3

P(i)=poly([a(i) b(i) c(i) d(i)],'x','coeff')

z(i,:)=linspace(x(i),x(i+1),1000)

plot(z(i,:), horner(P(i),z(i,:) -x(i)))

end

19

10.2 Spline com condições de contorno �xadas

Alternativamente, para completar o sistema (11), podemos impor condições de contorno �xadas, ou seja,

S ′(x1) = f ′(x1)

S ′(xn) = f ′(xn).

Substituindo na equação (6)

s′1(x1) = b1 + 2c1(x1 − x1) + 3dj(x1 − x1)2 = f ′(x1) =⇒ b1 = f ′(x1)

es′n−1(xn) = bn−1 + 2cn−1(xn − xn−1) + 3dj(xn − xn−1)

2 = bn−1 + 2cn−1hn−1 + 3dn−1h2n−1 = f ′(xn)

Usando as equações (9) e (10) para j = 1 e j = n− 1, temos:

2c1h1 + c2h1 = 3y2 − y1

h1

− 3f ′(x1)

cn−1hn−1 + cnhn−1 = 3f ′(xn)− 3yn − yn−1

hn−1

Essas duas equações juntamente com as equações (11) formam um sistema de n equações AX = B, onde

A =

2h1 h1 0 0 · · · 0 0h1 2h2 + 2h1 h2 0 · · · 0 00 h2 2h3 + 2h2 h3 · · · 0 0...

......

.... . .

......

0 0 0 · · · hn−2 2hn−2 + 2hn−1 hn−1

0 0 0 · · · 0 hn−1 2hn−1

X =

c1c2...cn

e B =

3y2−y1h1

− 3f ′(x1)

3y3−y2h2

− 3y2−y1h1

3y4−y3h3

− 3y3−y2h2

...3yn−1−yn−2

hn−2− 3yn−2−yn−3

hn−3

3f ′(xn)− 3yn−yn−1

hn−1

Observe que a matriz A é diagonal dominante estrita e, portanto, o sistema AX = Y possui solução única.Os valores dos an, bn e dn são obtidos diretamente pelas expressões (8), (10) e (9), respectivamente.

Exemplo 15. Construa um spline cúbico com fronteira �xada que interpola a função y = sin(x) nos x = 0,x = π

2, x = π, x = 3π

2e x = 2π.

O spline desejado passa pelos pontos (0, 0), (π/2, 1), (π, 0), (3π/2,−1) e (2π, 0) e tem a forma:

f(x) =

a1 + b1x+ c1x

2 + d1x3 0 ≤ x < π

2

a2 + b2(x− π2) + c2(x− π

2)2 + d2(x− π

2)3 π

2≤ x < π

a3 + b3(x− π) + c3(x− π)2 + d3(x− π)3 π ≤ x < 3π2

a4 + b4(x− 3π2) + c4(x− 3π

2)2 + d4(x− 3π

2)3 3π

2≤ x < 2π

.

Observe que ele satisfaz as condição de contorno f ′(0) = cos(0) = 1 e f ′(2π) = cos(2π) = 1.

20

Os coe�cientes c1, c2, c3 e c4 resolvem o sistema AX = B, onde

A =

π π/2 0 0 0π/2 2π π/2 0 00 π/2 2π π/2 00 0 π/2 2π π/20 0 0 π/2 π

X =

c1c2c3c4c5

e B =

31−0π/2

− 3 · 130−1π/2

− 31−0π/2

3−1−0π/2

− 30−1π/2

30−(−1)π/2

− 3 (−1)−0π/2

3 · 1− 30−(−1)π/2

=

6/π − 3−12/π

012/π

3− 6/π

Aqui c5 é um coe�ciente arti�cial para o problema. A solução é c1 = −0.0491874, c2 = −0.5956302, c3 = 0,c4 = 0.5956302 e c5 = 0.0491874. Calculamos os demais coe�cientes usando as expressões (8), (10) e (9):

a1 = y1 = 0

a2 = y2 = 1

a3 = y3 = 0

a4 = y3 = −1

d1 =c2 − c13h1

=−0.5956302− (−0.0491874)

3 · π/2= −0.1159588

d2 =c3 − c23h2

=0− (−0.5956302)

3 · π/2= 0.1263967

d3 =c4 − c33h3

=0.5956302− 0

3 · π/2= 0.1263967

d4 =c5 − c43h4

=0.0491874− 0.5956302

3 · π/2= −0.1159588

b1 =y2 − y1

h1

− h1

3(2c1 + c2) =

1− 0

π/2− π/2

3(2 · (−0.0491874)− 0.5956302) = 1

b2 =y3 − y2

h2

− h2

3(2c2 + c3) =

0− 1

π/2− π/2

3(2 · (−0.5956302) + 0) = −0.0128772

b3 =y4 − y3

h3

− h3

3(2c3 + c4) =

−1− 0

π/2− π/2

3(2 · 0 + 0.5956302) = −0.9484910

b4 =y5 − y4

h4

− h4

3(2c4 + c5) =

0− (−1)

π/2− π/2

3(2 · 0.5956302 + 0.0491874) = −0.0128772

Portanto,

f(x) =

x− 0.0491874x2 − 0.1159588x3 0 ≤ x < π

2

1 +−0.0128772(x− π2)− 0.5956302(x− π

2)2 + 0.1263967(x− π

2)3 π

2≤ x < π

−0.9484910(x− π) + 0.1263967(x− π)3 π ≤ x < 3π2

−1− 0.0128772(x− 3π2) + 0.5956302(x− 3π

2)2 − 0.1159588(x− 3π

2)3 3π

2≤ x < 2π

.

21

Referências

[1] Gautschi, W., and Inglese, G. Lower bounds for the condition number of vandermonde matrices.Numerische Mathematik 52, 3 (1987/1988), 241�250.

22