Você está na página 1de 11

Análise Numérica (M2018) - 2022/2023

Relatório 3º trabalho prático


Grupo 2.1 | Ana Rita Chamusca, Ana Beatriz Carvalho, Diana Dias, João Amaral
Professora Maria João Rodrigues

Departamento de Matemática | Faculdade de Ciências da Universidade do Porto

INTRODUÇÃO

Este relatório, referente ao terceiro trabalho prático, incidirá sobre interpolação


numérica.
Ao interpolar, estaremos a estimar o valor que a função dada assume em certos pontos,
usando um polinómio interpolador que pode ser construído através de dois métodos: o de
Lagrange e o de Newton em diferenças divididas.
Tocaremos também sobre o que são Splines, como construí-los e finalmente como
interpretá-los.
Em semelhança aos últimos relatórios, utilizaremos primariamente o Python, para a
realização dos exercícios, e o Desmos, para a apresentação gráfica de alguns resultados.

1
Análise Numérica (M2018) - 2022/2023

Exercício 1:

Tem-se a função:

2
𝑓(𝑥) = 𝑥 + 𝑠𝑖𝑛(6𝑥) , -1 ≤ 𝑥 ≤ 1

(a)

Temos 𝑛 + 1 = 8 pontos, e então serão necessários sete intervalos de igual amplitude


no intervalo [-1,1].
A amplitude do intervalo é igual a 2, pois corresponde ao módulo da diferença entre os
extremos, | 1- (-1) | = 2.
Existindo sete subintervalos, e como é necessário terem todos a mesma amplitude,
2
cada um terá, necessariamente, uma amplitude de 7
.
2𝑖 2𝑖
Os pontos serão dados na forma (− 1 + 7
, 𝑓(− 1+ 7
)), com i = 0, …, 7.

(b)

Para construir um polinómio interpolador é necessário escolher o método a usar.


Optamos pelo método de Lagrange, que é definido por:

𝑘
𝐿(𝑥) = ∑ 𝑦𝑗𝑙𝑗(𝑥)
𝑗=0

𝑘 𝑥−𝑥𝑖 𝑥−𝑥0 𝑥−𝑥𝑗−1 𝑥−𝑥𝑗+1 𝑥−𝑥𝑘


Com 𝑙 (𝑥) =
𝑗
∏ 𝑥𝑗−𝑥𝑖
= 𝑥𝑗−𝑥0
⋯ 𝑥𝑗−𝑥𝑗−1 𝑥𝑗−𝑥𝑗+1
⋯ 𝑥𝑗−𝑥𝑘
.
𝑖=0, 𝑗≠𝑖

2
Análise Numérica (M2018) - 2022/2023

Usando o Python, obtivemos a seguinte expressão do polinómio interpolador:

7 −15 6 5
𝑝7(𝑥) =-23.0573423417953𝑥 + 6.21724893790088 x 10 𝑥 + 51.0512965197342𝑥 -
−15 4 3 2
1.77635683940025 x 10 𝑥 - 34.2429667584674𝑥 + 1.0𝑥 +
5.96959708232956𝑥

3
Análise Numérica (M2018) - 2022/2023

Para calcular o M que é necessário para obter os splines usamos a seguinte fórmula:

ℎ𝑖 ℎ𝑖+ℎ𝑖+1 ℎ𝑖+1 𝑓𝑖+1−𝑓𝑖 𝑓𝑖−𝑓𝑖−1


6
𝑀𝑖−1 + 3
𝑀𝑖 + 6
𝑀𝑖+1 = ℎ𝑖+1
− ℎ𝑖
, ℎ𝑖 = 𝑥𝑖 − 𝑥𝑖−1

𝑖 ∈ {1, 2, 3, 4, 5, 6}

Para obtermos os M’s para os splines, fizemos os seguintes cálculos:

2 4 2 7(𝑓(𝑥2)−𝑓(𝑥1)) 7(𝑓(𝑥1)−𝑓(𝑥0))
7*6
𝑀0 + 7*3
𝑀1 + 7*6
𝑀2 = 2
− 2
2 4 2 7(𝑓(𝑥3)−𝑓(𝑥2)) 7(𝑓(𝑥2)−𝑓(𝑥1))
7*6
𝑀1 + 7*3
𝑀2 + 7*6
𝑀3 = 2
− 2
2 4 2 7(𝑓(𝑥4)−𝑓(𝑥3)) 7(𝑓(𝑥3)−𝑓(𝑥2))
7*6
𝑀2 + 7*3
𝑀3 + 7*6
𝑀4 = 2
− 2
2 4 2 7(𝑓(𝑥5)−𝑓(𝑥4)) 7(𝑓(𝑥4)−𝑓(𝑥3))
7*6
𝑀3 + 7*3
𝑀4 + 7*6
𝑀5 = 2
− 2
2 4 2 7(𝑓(𝑥6)−𝑓(𝑥5)) 7(𝑓(𝑥5)−𝑓(𝑥4))
7*6
𝑀4 + 7*3
𝑀5 + 7*6
𝑀6 = 2
− 2
2 4 2 7(𝑓(𝑥7)−𝑓(𝑥6)) 7(𝑓(𝑥6)−𝑓(𝑥5))
7*6
𝑀5 + 7*3
𝑀6 + 7*6
𝑀7 = 2
− 2

A primeira matriz é a inversa da matriz 6x6 com entradas correspondentes aos


coeficientes dos 𝑀𝑖. A segunda matriz corresponde à matriz 6x1, em que as entradas
correspondem à segunda parte da equação acima referida, com o i = 1, ..., 6. O resultado são
os 𝑀𝑖com i = 1, ..., 6. 𝑀0 = 𝑀7 = 0

𝐴𝑀 = 𝐵
−1
𝑀= 𝐴 𝐵

= (...)(...)

4
Análise Numérica (M2018) - 2022/2023

Após encontrarmos o valor dos M’s, utilizamos a seguinte fórmula para encontrar os
𝑆𝑖:
3 3 2 2
(𝑥𝑖−𝑥) (𝑥−𝑥𝑖−1) ℎ𝑖 𝑥𝑖−𝑥 ℎ𝑖 𝑥−𝑥𝑖−1
𝑆𝑖(𝑥) = 𝑀𝑖−1 6ℎ𝑖
+ 𝑀𝑖 6ℎ𝑖
+ (𝑓𝑖−1 − 𝑀𝑖−1 6
) ℎ𝑖
+ (𝑓𝑖 − 𝑀𝑖 6
) ℎ𝑖

Usando os polinómios gerados


pelo código nos respectivos intervalos
chegamos ao gráfico do Spline cúbico
de f(x).

5
Análise Numérica (M2018) - 2022/2023

De seguida calculamos as funções do erro, obtidas subtraindo a f(x) o seu polinómio


interpolador (função a azul) e os splines (funções a vermelho).

Por observação gráfica, é possível concluir quase de imediato que o valor de |f-s| (erro
dos splines) é geralmente menor. Isto diz-nos que a função spline é mais eficiente na
diminuição do erro de interpolação do que a do polinómio de interpolação, que aumenta o
grau do polinómio, fazendo assim com que o erro de interpolação aumente.

(c)
Para achar o majorante do erro do polinómio interpolador em x=0,1 e x=0,9 fizemos o
seguinte cálculo:
| 𝑚𝑎𝑥𝑓(𝑛+1) |
|𝑓(𝑥) − 𝑝𝑛(𝑥)| ≤ | (𝑛+1)! π𝑛+1|, π = (𝑥 − 𝑥0)... (𝑥 − 𝑥𝑛)
| |
Fizemos este cálculo manualmente e obtivemos o seguinte resultado:
2 2 3
𝑓(𝑥) = 𝑥 + 𝑠𝑖𝑛(6𝑥), 𝑓'(𝑥) = 2𝑥 + 6 𝑐𝑜𝑠(6𝑥), 𝑓''(𝑥) = 2 − 6 𝑠𝑖𝑛(6𝑥), 𝑓'''(𝑥) = − 6 𝑐𝑜𝑠(6𝑥)
(4) 4 (5) 5 (6) 6 (7) 7
𝑓 (𝑥) = 6 𝑠𝑖𝑛(6𝑥), 𝑓 (𝑥) = 6 𝑐𝑜𝑠(6𝑥), 𝑓 (𝑥) = − 6 𝑠𝑖𝑛(6𝑥), 𝑓 (𝑥) = − 6 𝑐𝑜𝑠(6𝑥),
(8) 8
𝑓 (𝑥) = 6 𝑠𝑖𝑛(6𝑥)

(8) 8
𝑚𝑎𝑥𝑓 (𝑥) = 6

8
6 −1
|𝐸7(0, 1)| ≤ 8!
0, 0008951380163877285 ≈ 4 × 10
8
6 −1
|𝐸7(0. 9)| ≤ 8!
0, 028169735864393253 ≈ 12 × 10

6
Análise Numérica (M2018) - 2022/2023

Para achar o majorante do erro do spline em x=0,1 e x=0,9 fizemos o seguinte cálculo:

5 4
|𝑓(𝑥) − 𝑆(𝑥)| ≤ 384
𝑀ℎ

(4)
| |
onde 𝑀 = 𝑚𝑎𝑥𝑥∈[𝑎,𝑏] 𝑓 (𝑥) e ℎ = 𝑚𝑎𝑥 ℎ𝑖, 𝑖 = 1, 2,..., 𝑛

(4) 4
𝑚𝑎𝑥𝑓 (𝑥) = 6
2
ℎ = 𝑚𝑎𝑥ℎ𝑖 = 7

2 4
|𝐸7(0, 1)| ≤
5
384
4
×6 × ( )
7
≈ 1, 1 × 10
−1

2 4
×( )
5 4 −1
|𝐸7(0, 9)| ≤ 384
×6 7
≈ 1, 1 × 10

Comparando resultados é possível observar que para ambos os pontos o erro do


polinómio interpolador é maior que o erro dos splines. Concluímos também que o erro do
polinómio interpolador varia consoante o x, pois o seu majorante é localizado, isto é, para
cada ponto existe um majorante diferente, enquanto que o erro dos splines se mantém igual,
pois é independente do x.
Perante os resultados apresentados no exercício podemos observar que o spline cúbico
natural é uma aproximação muito melhor da função do que o polinómio interpolador.

7
Análise Numérica (M2018) - 2022/2023

Exercício 2:
Tem-se a seguinte tabela:

mês 1 2 3 4 6 7 8 9 5 10 11 12

evaporação 8.6 7.0 6.4 4.0 1.8 1.8 2.1 3.2 2.8 4.7 6.2 7.6

(a)
Semelhante ao que fizemos no exercício anterior, usamos o método de Lagrange para
construir o polinómio interpolador, obtendo o seguinte:

−6 11 10
𝑝11(𝑥) =-4.62712441879108x 10 𝑥 + 0.000335758377425044𝑥 -
9 8 7
-0.0107585152116402𝑥 + 0.200388558201058𝑥 - 2.40297428902117𝑥 +
6 5 4 3
+19.4043703703704𝑥 - 107.165343226411𝑥 + 402.378948963844𝑥 - 998.78643882275𝑥
2
+ 1544.21595634921𝑥 - 1319.53448051948𝑥 + 470.3

8
Análise Numérica (M2018) - 2022/2023

ℎ𝑖 ℎ𝑖+ℎ𝑖+1 ℎ𝑖+1 𝑓𝑖+1−𝑓𝑖 𝑓𝑖−𝑓𝑖−1


6
𝑀𝑖−1 + 3
𝑀𝑖 + 6
𝑀𝑖+1 = ℎ𝑖+1
− ℎ𝑖
, ℎ𝑖 = 𝑥𝑖 − 𝑥𝑖−1
𝑖 ∈ {1, 2, 3, 4, 5, 6, 7, 8, 9, 10 }

1 2 1
6
𝑀0 + 3
𝑀1 + 6
𝑀2 =− 0. 6 − (− 1. 6)
1 2 1
6
𝑀1 + 3
𝑀2 + 6
𝑀3 =− 2. 4 − (− 0. 6)
1 2 1
6
𝑀2 + 3
𝑀3 + 6
𝑀4 =− 1. 2 − (− 2. 4)
1 2 1
6
𝑀3 + 3
𝑀4 + 6
𝑀5 =− 1 − (− 1. 2)
1 2 1
6
𝑀4 + 3
𝑀5 + 6
𝑀6 = 0 − (− 1)
1 2 1
6
𝑀5 + 3
𝑀6 + 6
𝑀7 = 0. 3 − 0
1 2 1
6
𝑀6 + 3
𝑀7 + 6
𝑀8 = 1. 1 − 0. 3
1 2 1
6
𝑀7 + 3
𝑀8 + 6
𝑀9 = 1. 5 − 1. 1
1 2 1
6
𝑀8 + 3
𝑀9 + 6
𝑀10 = 1. 5 − 1. 5
1 2 1
6
𝑀9 + 3
𝑀10 + 6
𝑀11 = 1. 4 − 1. 5

A primeira matriz é a inversa da matriz 6x6 com entradas correspondentes aos


coeficientes dos 𝑀𝑖. A segunda matriz corresponde à matriz 6x1, em que as entradas
correspondem à segunda parte da equação acima referida, com o i = 1, ..., 10. O resultado são
os 𝑀𝑖com i = 1, ..., 10. 𝑀0 = 𝑀11 = 0

9
Análise Numérica (M2018) - 2022/2023

Após encontrarmos o valor dos M’s, utilizamos a seguinte fórmula para encontrar os
𝑆𝑖:
3 3 2 2
(𝑥𝑖−𝑥) (𝑥−𝑥𝑖−1) ℎ𝑖 𝑥𝑖−𝑥 ℎ𝑖 𝑥−𝑥𝑖−1
𝑆𝑖(𝑥) = 𝑀𝑖−1 6ℎ𝑖
+ 𝑀𝑖 6ℎ𝑖
+ (𝑓𝑖−1 − 𝑀𝑖−1 6
) ℎ𝑖
+ (𝑓𝑖 − 𝑀𝑖 6
) ℎ𝑖

Alterando os valores no código usado no exercício 1 (b) , chegamos à expressão dos


polinómios do spline, que originou o gráfico da figura 12.

(b)
A função que parece mais aceitável é a do spline, pois, observando a fig. 12 , este
método parece ser mais eficiente, uma vez que os valores não variam tanto . Isto dever-se-ia
ao facto do spline cúbico usar vários polinômios de grau baixo para formar a curva
interpoladora, isso faz com que o erro de interpolação diminua.

10
Análise Numérica (M2018) - 2022/2023

CONCLUSÃO

Este trabalho ajudou-nos a consolidar o conceito de métodos de interpolação, vistos


nas aulas teóricas.
Conseguimos avaliar cada método, nomeadamente o do polinómio interpolador e dos
splines e ver como estes se comportavam e avaliar a sua eficácia e precisão. Além disso,
verificou-se a importância do auxílio computacional em casos que seria impraticável fazer
tantos cálculos manualmente, e obter uma confirmação visual dos estudos por meio dos
gráficos.
Por fim, pensamos que conseguimos resolver e explicar de forma clara e concisa os
exercícios propostos, recorrendo a gráficos e programas.

11

Você também pode gostar