Escolar Documentos
Profissional Documentos
Cultura Documentos
M2018 - 2022/23
Análise Numérica
Departamento de Matemática
Faculdade de Ciências da Universidade do Porto
2
Introdução
O presente relatório é relativo ao terceiro trabalho prático da unidade curricular
Análise Numérica da Licenciatura em Matemática.
3
Exercício 1
Neste exercício, é dada a seguinte função 𝑓(𝑥) = 𝑥 2 + 𝑠𝑖𝑛(6𝑥), para
−1 ≤ 𝑥 ≤ 1.
Alínea a)
De forma a obter n+1=8 pontos que definem uma partição de [−1, 1], em n
subintervalos de igual amplitude, fizemos o seguinte programa:
4
Figura 2:. Gráfico de f(x) com os pontos encontrados.
Alínea b)
• Polinómio interpolador
Para construir o polinómio interpolador dos pontos e das abcissas calculadas na
alínea anterior, usamos o Método de Newton em diferenças divididas. Uma vez que
temos 8 pontos, queremos 𝑝7 (𝑥).
i 𝒙𝒊 f(𝒙𝒊 ) f[,] f[ , , ] f[ , , ,] f[ , , , ,] f[ , , , , , ] f[ , , , , , ,] f[ , , , , , , ,]
0 -1 1,27942 0,49396 -11,74614 23,68755 -17,6361 -4,94542 23,05731 -23,05697
1 -0,71429 1,42055 -6,21814 8,55740 3,531923 -24,701 34,58127 -23,0566
2 -0,42857 - 0,35610 -1,32818 11,58479 -24,6979 24,70075 -4,94448
3 -0,14286 -0,73557 5,29172 -9,58475 3,531372 17,63721
4 0,14286 0,77638 -0,18529 -6,55787 23,68824
5 0,42857 0,72344 -3,93259 13,74627
7 0,71428 -0,40014 3,92244
8 1 0,72058
5
𝑝7 (𝑥) = 1.27942 + (𝑥 + 1) × (0.49396) + (x + 1)(x + 0.71429)(−11.74614)
+ (x + 1)(x + 0.71429)(x + 0.42857)(23.68755)
+ (x + 1)(x + 0.71429)(x + 0.42857)(x + 0.14286)(−17.63613)
+ (x + 1)(x + 0.71429)(x + 0.42857)(x + 0.14286)(x
− 0.14286)(−4.94542)
+ (x + 1)(x + 0.71429)(x + 0.42857)(x + 0.14286)(x − 0.14286)(x
− 0.42857)(23.05731)
+ (x + 1)(x + 0.71429)(x + 0.42857)(x + 0.14286)(x − 0.14286)(x
− 0.42857)(x − 0.71428)(−23.05697)
2. é uma função contínua em [𝑥0 , 𝑥1 ] que possui primeira e segunda derivadas contínuas
nos nós interiores, 𝑥𝑖 , 𝑖 = 1, … , 𝑛 − 1
6
(𝑥𝑖 − 𝑥)3 (𝑥 − 𝑥𝑖−1 )3 ℎ𝑖 2 𝑥𝑖 − 𝑥
𝑆𝑖 (𝑥) = 𝑀𝑖−1 + 𝑀𝑖 + (𝑓𝑖−1 − 𝑀𝑖−1 ) + (𝑓𝑖
6ℎ𝑖 6ℎ𝑖 6 ℎ𝑖
ℎ𝑖 2 𝑥 − 𝑥𝑖−1
− 𝑀𝑖 )
6 ℎ𝑖
em que ℎ𝑖 = 𝑥𝑖 − 𝑥𝑖−1 , 𝑖 = 1, … , 𝑛.
Com este sistema temos como objetivo determinar as 𝑛 + 1 incógnitas (os coeficientes
𝑀𝑖 , 𝑖 = 0, … , 𝑛).
𝑀0 = 0 e 𝑀𝑛 = 0
O spline que se obtém nestas condições chama-se spline cúbico natural e spline
pedido é:
7
𝑀 = 0, 𝑀 = −0.00163, 𝑀 = 15.95950, 𝑀3 = 38.85910, 𝑀4 = −32.65038,
(𝑥 + 1)30 1 −𝑥
−0.71429 2 0.285712 𝑥+1
−0.00163 + 1.27942 + (1.42055 − (−0.00163 × )) , − 1 ≤ 𝑥 ≤ −0.71429
𝑀5 = −23.27395, 𝑀6 = 47.05739 e 𝑀7 = 0
6 × 0.28571 0.28571 6 0.28571
(−0.42857 − 𝑥)3 (𝑥 + 0.71429) 3 0.285722 −0.42857 − 𝑥 0.285722 𝑥 + 0.71429
−0.00163 + 15.95950 + (1.42055 + 0.00163 ) + (−0.35610 − 15.95950 ) , −0.71429 ≤ 𝑥 ≤ −0.42857
6 × 0.28572
Assim, 6dispomos
× 0.28572
finalmente de 6todos2 0.28572 os dados necessários para 6 0.28572
construir o
(−0.14286 − 𝑥)3 (𝑥 + 0.428579) 3 0.28571 −0.14286 − 𝑥 0.285712 𝑥 + 0.42857
15.95950 + 38.85910
spline cúbico natural + (−0.35610 − 15.95950
da função no intervalo6dado,0.28571 ) + (−0.73556
então o spline é: − 38.85910 ) , −0.42857 ≤ 𝑥 ≤ −0.14286
6 × 0.28571 6 × 0.28571 6 0.28571
(0.14285 − 𝑥)3 (𝑥 + 0.14286)3 0.285712 0.14285 − 𝑥 0.285712 𝑥 + 0.14286
𝑆(𝑥) = 38.85910 − 32.65038 + (−0.73556 − 38.85910 ) + (0.77638 + 32.65038 ) , − 0.14286 ≤ 𝑥 ≤ 0.14285
6 × 0.28571 6 × 0.28571 6 0.28571 6 0.28571
(0.42857 − 𝑥)3 (𝑥 − 0.14285)3 0.285722 0.42857 − 𝑥 0.285722 𝑥 − 0.14285
−32.65038 − 23.27395 + (0.77638 + 32.65038 ) + (0.72344 + 23.27395 ) , 0.14285 ≤ 𝑥 ≤ 0.42857
6 × 0.28572 6 × 0.28572 6 0.28572 6 0.28572
(0.71429 − 𝑥)3 (𝑥 − 0.42857)3 0.285722 0.71429 − 𝑥 0.285722 𝑥 − 0.42857
−23.27395 + 47.05739 + (0.72344 + 23.27395 ) + (−0.40014 − 47.05739 ) , 0.42857 ≤ 𝑥 ≤ 0.71429
6 × 0.28572 6 × 0.28572 6 0.28572 6 0.28572
(1 − 𝑥)3 0.285712 1 − 𝑥 𝑥 − 0.71429
47.05739 + (−0.40014 − 47.05739 ) + 0.72058 , 0.71429 ≤ 𝑥 ≤ 1
{ 6 × 0.28571 6 0.28571 0.28571
Figura 5:. Representação gráfica da função erro Figura 6:. Representação gráfica da função erro
|𝑓 − 𝑝|, no intervalo [-1,1]. |𝑓 − 𝑠|, 𝑥 𝜖 [−1,1].
Observando os gráficos, podemos mais uma vez concluir que o polinómio interpolador
e o spline são ambos uma aproximação à função inicial. Podemos também afirmar que
nos intervalos em que a função f se encontra mais afastada do polinómio
interpolador/spline os valores da função erro são mais elevados. Da mesma forma, nos
8
intervalos em que a diferença entre o polinómio interpolador/spline e a função f é
praticamente impercetível, os valores da função erro estão mais perto de zero.
Alínea c)
∎ Majorantes dos erros cometidos ao estimar 𝑓(0.1) e 𝑓(0.9) usando o polinómio
interpolador obtido.
1 (8)
𝐸(𝑥) = |𝑓(𝑥) − 𝑝7 (𝑥)| = 𝑓 (𝑐𝑥 )𝜋8 (𝑥), 𝑐𝑥 ∈ I
(8)!
1,67962×106
• 𝐸(0,1) = |𝑓(0,1) − 𝑝7 (0,1)| ≤≤ |(0.1 + 1)(0,1 + 0,71429)(0,1 +
8!
1,67962×106
• 𝐸(0,9) = |𝑓(0,9) − 𝑝8 (0,9)| ≤≤ |(0.9 + 1)(0.9 + 0.71429)(0.9 +
8!
∎ Majorantes dos erros cometidos ao estimar 𝑓(0.1) e 𝑓(0.9) usando o spline natural
cúbico.
Relativamente ao cálculo do majorante do erro cometido ao estimar 𝑓(0.1) e
𝑓(0.9) usando o spline, sabemos que:
Se 𝑓(𝑥) ∈ 𝐶 4 [𝑎, 𝑏] então mostra-se que ∀𝑥 ∈ [𝑎, 𝑏]
5
|𝑓(𝑥) − 𝑆(𝑥)| ≤ 𝑀ℎ4
384
9
Onde 𝑀 = 𝑚𝑎𝑥𝑥∈[𝑎,𝑏] |𝑓 (4) (𝑥)| e ℎ = 𝑚𝑎𝑥ℎ𝑖 , 𝑖 = 1,2, … , 𝑛.
Exercício 2
Neste exercício é dada a seguinte tabela com os pontos da função evaporação.
Mês 1 2 3 4 5 6 7 8 9 10 11 12
Evaporação 8.6 7.0 6.4 4.0 2.8 1.8 1.8 2.1 3.2 4.7 6.2 7.6
10
Alínea a)
• Polinómio interpolador
O objetivo desta alínea é construir o polinómio interpolador com os dados da
tabela anterior, e para tal, usamos o Método de Newton em diferenças divididas. Uma
vez que temos 12 pontos, queremos 𝑝11 (𝑥).
i 𝒙𝒊 f(𝒙𝒊 ) f[,] f[ , , ] f[ , , ,] f[ , , , ,] f[ , , , , , ] f[ , , , , , ,] f[ , , , , , , ,]
0 1 8,6 -1,60000 0,50000 -0,46667 0,24167 -0,08167 0,021667 -0,00490
1 2 7 -0,60000 -0,90000 0,5 -0,16667 0,048333 -0,01264 0,00300
2 3 6,4 -2,40000 0,60000 -0,16667 0,07500 -0,0275 0,008333 -0,00214
3 4 4 -1,20000 0,10000 0,133333 -0,06250 0,0225 -0,00667 0,00155
4 5 2,8 -1,00000 0,50000 -0,11667 0,05000 -0,0175 0,004167 -0,00071
5 6 1,8 0,00000 0,15000 0,083333 -0,03750 0,0075 -0,00083
6 7 1,8 0,30000 0,40000 -0,06667 0,00000 0,0025
7 8 2,1 1,10000 0,20000 -0,06667 0,01250
8 9 3,2 1,50000 0,00000 -0,01667
9 10 4,7 1,50000 -0,05000
10 11 6,2 1,40000
11 12 7,6
11
i 𝒙𝒊 f(𝒙𝒊 ) f[ , , , , , , , ,] f[ , , , , , , , , ,] f[ , , , , , , , , , , ] f[ , , , , , , , , , , , ]
0 1 8,6 0,0009871 -0,000181 3,03682E-05 -4,62712E-06
1 2 7 -0,000642 0,0001226 -2,05302E-05
2 3 6,4 0,0004613 -8,27E-05
3 4 4 -0,000283
4 5 2,8
5 6 1,8
6 7 1,8
7 8 2,1
8 9 3,2
9 10 4,7
10 11 6,2
11 12 7,6
12
1 2 1
𝑀0 + 𝑀1 + 𝑀2 = 1
6 3 6
1 2 1
𝑀 + 𝑀 + 𝑀 = −1.8
6 1 3 2 6 3
1 2 1
𝑀2 + 𝑀3 + 𝑀4 = 1.2
6 3 6
1 2 1
𝑀3 + 𝑀4 + 𝑀5 = 0.2
6 3 6
1 2 1
𝑀4 + 𝑀5 + 𝑀6 = 1
6 3 6
1 2 1
𝑀 + 𝑀 + 𝑀 = 0.3
6 5 3 6 6 7
1 2 1
𝑀6 + 𝑀7 + 𝑀8 = 0.8
6 3 6
1 2 1
𝑀 + 𝑀 + 𝑀 = 0.4
6 7 3 8 6 9
1 2 1
𝑀8 + 𝑀9 + 𝑀10 = 0
6 3 6
1 2 1
𝑀 + 𝑀 + 𝑀 = −0.1
6 9 3 10 6 11
𝑀0 = 0
{ 𝑀11 = 0
Resolvendo este sistema através do programa Matrix calculator obtemos que:
𝑀0 = 0, 𝑀1 = 2.52346, 𝑀2 = −4.09385, 𝑀3 = 3.05193, 𝑀4 = −0.91386, 𝑀5 =
1.80351, 𝑀6 = −0.30017, 𝑀7 = 1.19717, 𝑀8 = 0.31147, 𝑀9 = −0.04306, 𝑀10 =
−0.13924 e 𝑀11 = 0
Então, o spline é:
(𝑥 − 1)3 1
2.52346 × + 8.6 × (2 − 𝑥) + (7 − 2.52346 × ) (𝑥 − 1), 1≤𝑥≤2
6 6
(3 − 𝑥) 3 (𝑥 − 2) 3 1 1
2.25346 × − 4.09385 × + (7 − 2.52346 × ) (3 − 𝑥) + (6.4 + 4.09385 × ) (𝑥 − 2), 2≤𝑥≤3
6 6 6 6
(4 − 𝑥) 3 (𝑥 − 3) 3
1 1
−4.09385 × + 3.05193 × + (6.4 + 4.09385 × ) (4 − 𝑥) + (4 − 3.05193 × ) (𝑥 − 3), 3≤𝑥≤4
6 6 6 6
(5 − 𝑥) 3 (𝑥 − 4) 3 1 1
3.05193 × − 0.91386 × + (4 − 3.05193 × ) (5 − 𝑥) + (2.8 + 0.91386 × ) (𝑥 − 4), 4≤𝑥≤5
6 6 6 6
(6 − 𝑥)3 (𝑥 − 5)3 1 1
−0.91386 × + 1.80351 × + (2.8 + 0.91386 × ) (6 − 𝑥) + (1.8 − 1.80351 × ) (𝑥 − 5), 5≤𝑥≤6
6 6 6 6
(7 − 𝑥)3 (𝑥 − 6)3 1 1
𝑆(𝑥) = 1.80351 × − 0.30017 × + (1.8 − 1.80351 × ) (7 − 𝑥) + (1.8 + 0.30017 × ) (𝑥 − 6), 6≤𝑥≤7
6 6 6 6
(8 − 𝑥) 3 (𝑥 − 7) 3
1 1
−0.30017 × + 1.19717 × + (1.8 + 0.30017 × ) (8 − 𝑥) + (2.1 − 1.19717 × ) (𝑥 − 7), 7≤𝑥≤8
6 6 6 6
(9 − 𝑥) 3 (𝑥 − 8) 3
1 1
1.19717 × + 0.31147 × + (2.1 − 1.19717 × ) (9 − 𝑥) + (3.2 − 0.31147 × ) (𝑥 − 8), 8≤𝑥≤9
6 6 6 6
(10 − 𝑥) 3 (𝑥 − 9) 3
1 1
0.31147 × − 0.04306 × + (3.2 − 0.31147 × ) (10 − 𝑥) + (4.7 + 0.04306 × ) (𝑥 − 9), 9 ≤ 𝑥 ≤ 10
6 6 6 6
(11 − 𝑥) 3 (𝑥 − 10) 3
1 1
−0.04306 × − 0.13924 × + (4.7 + 0.04306 × ) (11 − 𝑥) + (6.2 + 0.13924 × ) (𝑥 − 10), 10 ≤ 𝑥 ≤ 11
6 6 6 6
(12 − 𝑥)3 1
{ −0.13924 × + (6.2 + 0.13924 × ) (12 − 𝑥) + 7.6 × (𝑥 − 11), 11 ≤ 𝑥 ≤ 12
6 6
13
Figura 8:. Representação gráfica das funções evaporação, 𝒑 e S no intervalo dado.
Alínea b)
A aproximação que nos parece mais aceitável é o spline cúbico natural pois vai
mantendo a aproximação ao longo de todo o intervalo a aproximar, enquanto o
polinómio interpolador apresenta valores às vezes muito distantes dos ideais. Esta
discrepância de resultados pode dever-se ao facto de nos valores no polinómio, ao usar
as diferenças divididas recorrermos à recursão, acumulando desta forma erros,
aumentando-os o que leva a uma aproximação menos eficaz.
14
Conclusão
Através da realização deste trabalho pudemos aprender mais sobre os métodos
de interpolação polinomial e aproximação numérica de funções e ter uma visão mais
clara de como funcionam na prática. Por exemplo, como podem ser usados para estudar
fenómenos do nosso dia a dia como os níveis de evaporação da água tal como foi
apresentado no exercício 2. Para além disso, este trabalho mostrou-nos que em
diferentes situações há métodos mais eficientes do que outros, ou seja, em que o erro é
menor e, portanto, conduzem-nos a uma melhor aproximação da função em estudo.
15
Bibliografia
• https://moodle.up.pt/pluginfile.php/130589/mod_resource/content/1/slides89_13
6.pdf
16