Você está na página 1de 12

UFMG.ICEx.

DCC

Análise Numérica/ Cálculo Numérico

Lista de exercícios # 3: integração numérica e raízes de equações


Para as quatro questões a seguir, considere os pontos de uma função f desconhecida.

x 1 3 5 7 9 11 13
f (x) 1 0,577 0,447 0,378 0,333 0,302 0,277

Q.1) Quais as fórmulas de Newton-Cotes (simplesZ e13 compostas) e quais as quadratu-


ras de Gauss-Legendre que permitem aproximar f ? Justifique. Qual das fórmulas
Z 13 1
aplicáveis aproxima provavelmente melhor f ? Justifique.
1

As fórmulas de Newton-Cotes avaliam f em abscissas igualmente espaçadas em


[1; 13] e podem ser compostas somente se o número de subintervalos for múltiplo
do grau do polinômio interpolador empregado. Logo:
• Usando os pontos de abscissas 1 e 13 (1 subintervalo): regra do trapézio
simples;

• Usando os pontos de abscissas 1, 7 e 13 (2 subintervalos): a regra do trapézio


composta duas vezes e a regra do 1/3 de Simpson simples;

• Usando os pontos de abscissas 1, 5, 9 e 13 (3 subintervalos): a regra do


trapézio composta três vezes e a regra dos 3/8 de Simpson simples;

• Usando todos os pontos (6 subintervalos): a regra do trapézio composta seis


vezes, a regra do 1/3 de Simpson composta três vezes, a regra dos 3/8 de
Simpson composta duas vezes, a fórmula simples de Newton-Cotes baseada
no polinômio interpolador de grau 6.
A quadratura de Gauss-Legendre com um ponto (médio, aqui de abscissa 7) pode
ser empregada, ao contrário de qualquer quadratura de Gauss-Legendre com mais
pontos, sempre ausentes da tabela.

Geralmente:

• Quanto mais pontos, melhor a aproximação;

• Usando um mesmo número de pontos, a regra do 1/3 de Simpson é melhor


que a regra do trapézio e que a regra dos 3/8 de Simpson;

• Usando um mesmo número de pontos, a regra do 1/3 de Simpson pode ou não


ser melhor que a fórmula de Newton-Cotes baseada no polinômio interpolador
de grau 6 (o fenômeno de Runge pode ou não acontecer: depende de f ).

Não sabendo nada de f (exceto os pontos da tabela), é aqui aconselhável usar a


regra do 1/3 de Simpson composta três vezes, ou seja, com seis subintervalos.
Z 13
Q.2) Usando três casas decimais, aproxime f pela regra do 1/3 de Simpson com-
1
posta.

Integração via Newton-Cotes com polinômio de grau 2

x(i) f(x(i)) c(i) c(i)*f(x(i))


1 1.000 1 1.000
3 0.577 4 2.308
5 0.447 2 0.894
7 0.378 4 1.512
9 0.333 2 0.666
11 0.302 4 1.208
13 0.277 1 0.277

soma = sum(f(x(i))*c(i)) = 7.865


I2 = 2/3*soma = 5.243

1
Q.3) f é, na verdade, x 7→ √ . Calcule analiticamente o erro absoluto cometido na
x
questão anterior.

Z 13
dx √ √
√ = 2 x|13
1 = 2 13 − 2 ≈ 5,211.
1 x

Erro absolto cometido na questão anterior: |5,211 − 5,243| = 0,032.


Z 13
1
Q.4) Agora sabendo que queremos aproximar √ dx, calcule a partir da fórmula
1 x
do erro de integração o número mínimo de subintervalos que garante que a regra do
1/3 de Simpson cometerá em erro absoluto menor que 0,01.

1
x 7→ √ tendo quatro derivadas contínuas, existe θ ∈ (1; 13) tal que o erro absoluto
x
(13 − 1)5 (iv)

cometido pela regra do 1/3 de Simpson com m subintervalos é − f (θ) .
180m4

Cálculo de f (iv) , derivando f (x) = √1x = x−1/2 quatro vezes:


1 3 15 105 −9/2
f 0 (x) = − x−3/2 ; f 00 (x) = x−5/2 ; f 000 (x) = − x−7/2 ; f (iv) (x) = x
2 4 8 16
105 −9/2
Em [1; 13], f (iv) é positiva e decrescente. Logo, sup(1;13) |f (iv) | = f (iv) (1) = 1 ea
16
(13 − 1)5 105 −9/2 9072

cota superior do erro absoluto cometido é − × 1 = .
180m4 16 m4
 1/4
9072 9072
< 0,01 ⇔ m > = 30, 8621 garante um erro absoluto menor que 0,01.
m4 0,01
Adicionalmente, a regra do 1/3 de Simpson simples integrando um polinômio in-
terpolador de grau 2, a sua composição requer um número m de subintervalos par.
Logo o número mínimo de subintervalos é 32.
Verificando o resultado:

Integração via Newton-Cotes com polinômio de grau 2

i x(i) y(i) c(i)


0 1.00000 1.00000 1
1 1.37500 0.85280 4
2 1.75000 0.75593 2
3 2.12500 0.68599 4
4 2.50000 0.63246 2
5 2.87500 0.58977 4
6 3.25000 0.55470 2
7 3.62500 0.52523 4
8 4.00000 0.50000 2
9 4.37500 0.47809 4
10 4.75000 0.45883 2
11 5.12500 0.44173 4
12 5.50000 0.42640 2
13 5.87500 0.41257 4
14 6.25000 0.40000 2
15 6.62500 0.38851 4
16 7.00000 0.37796 2
17 7.37500 0.36823 4
18 7.75000 0.35921 2
19 8.12500 0.35082 4
20 8.50000 0.34300 2
21 8.87500 0.33567 4
22 9.25000 0.32880 2
23 9.62500 0.32233 4
24 10.00000 0.31623 2
25 10.37500 0.31046 4
26 10.75000 0.30500 2
27 11.12500 0.29981 4
28 11.50000 0.29488 2
29 11.87500 0.29019 4
30 12.25000 0.28571 2
31 12.62500 0.28144 4
32 13.00000 0.27735 1

I2 = 5.2113
ERRO = Exata - I2 = -1.6811e-04

Vê-se que com 32 subintervalos a regra do 1/3 de Simpsom cometerá um erro absoluto
de 1,6811×10−4 < 1×10−2 como pedido no exercício.
Z 2,1
Q.5) Usando quatro casas decimais, aproxime xx dx pela quadratura de Gauss-
0,1
Legendre com quatro pontos.

Integração numérica via Gauss-Legendre com 4 pontos


usando variável de ponto flutuante com 4 dígitos decimais Não resolver a
i t(i) x(i) f(x(i)) W(i)
Integral, só substituir
1 -0.86110 0.23890 0.71030 0.34790
=A no x^x.
2 -0.34000 0.76000 0.81170 0.65210
3 0.34000 1.44000 1.69060 0.65210
4 0.86110 1.96110 3.74650 0.34790

I4 = 3.1822
Z 2,1
Q.6) Usando quatro casas decimais, aproxime xx dx por composição da quadra-
0,1
tura de Gauss-Legendre com dois pontos, subdividindo [0,1; 2,1] em [0,1; 1,1] e [1,1; 2,1].

Integração numérica via Gauss-Legendre com 2 pontos


usando variável de ponto flutuante com 4 dígitos decimais

i t(i) x(i) f(x(i)) W(i)


1 -0.57740 0.31130 0.69540 1.00000
2 0.57740 0.88870 0.90040 1.00000

I4a = 0.79790
Info = 0

Integração numérica via Gauss-Legendre com 2 pontos


usando variável de ponto flutuante com 4 dígitos decimais

i t(i) x(i) f(x(i)) W(i)


1 -0.57740 1.31130 1.42670 1.00000
2 0.57740 1.88870 3.32340 1.00000

I4b = 2.37510
I4ab = I4a + I4b
I4ab = 3.1730
Z 2,1
Q.7) Um método de integração iterativa fornece a aproximação xx dx ≈ 3, 1830.
0,1
Quais os erros absolutos cometidos nas duas questões anteriores? Esse exemplo
confirma a preferência, na quadratura de Gauss-Legendre, para o aumento do grau
do polinômio interpolador em vez da composição?

e1 = abs(3.1830 - I4) = 8.0000e-04 (erro cometido na questão 5)


e2 = abs(3.1830 - I4ab) = 0.0100 (erro cometido na questão 6)

Sim. Com os resultados obtidos percebe-se claramente que ao usarmos a quadra-


tura de Gauss-Legendre é possível melhorarmos o resultado com o aumento do
grau do polinômio interpolador, em vez, de subdividir o intervalo.

Z 2,1
Q.8) Por que não se pode calcular xx dx analiticamente?
0,1

Porque a primitiva de f (x) = xx não se expressa com funções usuais.


Q.9) Calcular os limites e o número de raízes reais de P (x) = 2x3 − 3x2 − 6x + 5 = 0 e
f (x) = x4 − 2x3 + 2x − 1 = 0.

L = limites_raizes([2 -3 -6 5], '%4i', '%10.4f');

Limites das raízes de equação algébrica pelo Teorema de Lagrange grau: 3


coeficientes c_3 ... c_0: 2 -3 -6 5

LIMITES: 0.4545 <= R+ <= 4.0000 e -2.7321 <= R- <= -0.5635

L = limites_raizes([1 -2 0 2 -1], '%4i', '%10.4f');

Limites das raízes de equação algébrica pelo Teorema de Lagrange grau: 4


coeficientes c_4 ... c_0: 1 -2 0 2 -1

LIMITES: 0.3333 <= R+ <= 3.0000 e -2.2599 <= R- <= -0.4425

Q.10) Usando o método da bisseção com tolerância ε 6 10−3 , calcular pelo menos uma
raiz da equação f (x) = e2x − 2x3 − 5 = 0, sabendo-se que ξ− ∈ [−2, −1] e ξ+ ∈ [0, 1].

Para ξ− ∈ [−2, −1]

bissecao('exp(2*x)-2*x^3-5', -2, -1, 1e-3, 20, '%10.4f');

Cálculo de raiz de equação pelo método da bisseção

k a_k Fa_k b_k Fb_k deltax_k x_k Fx_k


0 -2.00000 11.01832 -1.00000 -2.86466 5.0000e-01 -1.50000 1.7998e+00
1 -1.50000 1.79979 -1.00000 -2.86466 2.5000e-01 -1.25000 -1.0117e+00
2 -1.50000 1.79979 -1.25000 -1.01167 1.2500e-01 -1.37500 2.6315e-01
3 -1.37500 0.26315 -1.25000 -1.01167 6.2500e-02 -1.31250 -4.0559e-01
4 -1.37500 0.26315 -1.31250 -0.40559 3.1250e-02 -1.34375 -7.9227e-02
5 -1.37500 0.26315 -1.34375 -0.07923 1.5625e-02 -1.35938 8.9936e-02
6 -1.35938 0.08994 -1.34375 -0.07923 7.8125e-03 -1.35156 4.8515e-03
7 -1.35156 0.00485 -1.34375 -0.07923 3.9062e-03 -1.34766 -3.7313e-02
8 -1.35156 0.00485 -1.34766 -0.03731 1.9531e-03 -1.34961 -1.6262e-02
9 -1.35156 0.00485 -1.34961 -0.01626 9.7656e-04 -1.35059 -5.7132e-03
10 -1.35156 0.00485 -1.35059 -0.00571 4.8828e-04 -1.35107 -4.3279e-04

Raiz = -1.3511
Iter = 10
Info = 0
Para ξ+ ∈ [0, 1]

bissecao('exp(2*x)-2*x^3-5', 0, 1, 1e-3, 20, '%10.4f');

Cálculo de raiz de equação pelo método da bisseção

k a_k Fa_k b_k Fb_k deltax_k x_k Fx_k


0 0.00000 -4.00000 1.00000 0.38906 5.0000e-01 0.50000 -2.5317e+00
1 0.50000 -2.53172 1.00000 0.38906 2.5000e-01 0.75000 -1.3621e+00
2 0.75000 -1.36206 1.00000 0.38906 1.2500e-01 0.87500 -5.8524e-01
3 0.87500 -0.58524 1.00000 0.38906 6.2500e-02 0.93750 -1.2713e-01
4 0.93750 -0.12713 1.00000 0.38906 3.1250e-02 0.96875 1.2308e-01
5 0.93750 -0.12713 0.96875 0.12308 1.5625e-02 0.95312 -3.9155e-03
6 0.95312 -0.00392 0.96875 0.12308 7.8125e-03 0.96094 5.9099e-02
7 0.95312 -0.00392 0.96094 0.05910 3.9062e-03 0.95703 2.7472e-02
8 0.95312 -0.00392 0.95703 0.02747 1.9531e-03 0.95508 1.1749e-02
9 0.95312 -0.00392 0.95508 0.01175 9.7656e-04 0.95410 3.9092e-03
10 0.95312 -0.00392 0.95410 0.00391 4.8828e-04 0.95361 -4.9533e-06

Raiz = 0.9536
Iter = 10
Info = 0

Q.11) Use os métodos secante, regula falsi e pégaso para determinar pelo menos uma
raiz de f (x) = 2x3 + 5x2 − sen(x) − 30 = 0, ξ ∈ [1, 4], com tolerância ε 6 10−4 . Compare o
número de iterações gasto por cada método.

secante('2*x^3+5*x^2-sin(x)-30', 1, 4, 1e-4, 100, '%10.5f');

Cálculo de raiz de equação pelo método da secante

k a_k Fa_k b_k Fb_k deltax_k x_k Fx_k


0 1.00000 -23.84147 4.00000 178.75680 2.6470e+00 1.35304 -1.6869e+01
1 4.00000 178.75680 1.35304 -16.86884 -2.2825e-01 1.58128 -1.0590e+01
2 1.35304 -16.86884 1.58128 -10.58978 -3.8495e-01 1.96623 3.6106e+00
3 1.58128 -10.58978 1.96623 3.61061 9.7877e-02 1.86835 -4.5845e-01
4 1.96623 3.61061 1.86835 -0.45845 -1.1028e-02 1.87938 -1.6186e-02
5 1.86835 -0.45845 1.87938 -0.01619 -4.0358e-04 1.87978 7.7191e-05
6 1.87938 -0.01619 1.87978 0.00008 1.9156e-06 1.87978 -1.2891e-08

Raiz = 1.87978
Iter = 6
Info = 0
regula_falsi('2*x^3+5*x^2-sin(x)-30', 1, 4, 1e-4, 100, '%10.5f');

Cálculo de raiz de equação pelo método da regula falsi

k a_k Fa_k b_k Fb_k deltax_k x_k Fx_k


0 1.00000 -23.84147 4.00000 178.75680 2.6470e+00 1.35304 -1.6869e+01
1 4.00000 178.75680 1.35304 -16.86884 -2.2825e-01 1.58128 -1.0590e+01
2 4.00000 178.75680 1.58128 -10.58978 -1.3527e-01 1.71656 -6.1406e+00
3 4.00000 178.75680 1.71656 -6.14062 -7.5835e-02 1.79239 -3.3954e+00
4 4.00000 178.75680 1.79239 -3.39543 -4.1151e-02 1.83354 -1.8279e+00
5 4.00000 178.75680 1.83354 -1.82792 -2.1929e-02 1.85547 -9.6985e-01
6 4.00000 178.75680 1.85547 -0.96985 -1.1572e-02 1.86705 -5.1060e-01
7 4.00000 178.75680 1.86705 -0.51060 -6.0752e-03 1.87312 -2.6772e-01
8 4.00000 178.75680 1.87312 -0.26772 -3.1806e-03 1.87630 -1.4007e-01
9 4.00000 178.75680 1.87630 -0.14007 -1.6628e-03 1.87796 -7.3202e-02
10 4.00000 178.75680 1.87796 -0.07320 -8.6863e-04 1.87883 -3.8234e-02
11 4.00000 178.75680 1.87883 -0.03823 -4.5359e-04 1.87929 -1.9963e-02
12 4.00000 178.75680 1.87929 -0.01996 -2.3681e-04 1.87952 -1.0422e-02
13 4.00000 178.75680 1.87952 -0.01042 -1.2362e-04 1.87965 -5.4404e-03
14 4.00000 178.75680 1.87965 -0.00544 -6.4530e-05 1.87971 -2.8398e-03
15 4.00000 178.75680 1.87971 -0.00284 -3.3684e-05 1.87975 -1.4823e-03
16 4.00000 178.75680 1.87975 -0.00148 -1.7582e-05 1.87976 -7.7373e-04
17 4.00000 178.75680 1.87976 -0.00077 -9.1772e-06 1.87977 -4.0387e-04
18 4.00000 178.75680 1.87977 -0.00040 -4.7902e-06 1.87978 -2.1080e-04
19 4.00000 178.75680 1.87978 -0.00021 -2.5003e-06 1.87978 -1.1003e-04
20 4.00000 178.75680 1.87978 -0.00011 -1.3051e-06 1.87978 -5.7433e-05

Raiz = 1.87978
Iter = 20
Info = 0

pegaso('2*x^3+5*x^2-sin(x)-30', 1, 4, 1e-4, 100, '%10.5f');

Cálculo de raiz de equação pelo método pégaso

k a_k Fa_k b_k Fb_k deltax_k x_k Fx_k


0 1.00000 -23.84147 4.00000 178.75680 2.6470e+00 1.35304 -1.6869e+01
1 4.00000 178.75680 1.35304 -16.86884 -2.2825e-01 1.58128 -1.0590e+01
2 4.00000 109.81687 1.58128 -10.58978 -2.1273e-01 1.79401 -3.3349e+00
3 4.00000 83.51634 1.79401 -3.33488 -8.4705e-02 1.87872 -4.3003e-02
4 4.00000 82.45312 1.87872 -0.04300 -1.1058e-03 1.87982 1.5442e-03
5 1.87872 -0.04300 1.87982 0.00154 3.8330e-05 1.87978 -6.8544e-07

Raiz = 1.87978
Iter = 5
Info = 0
Os resultados obtidos ilustram como método pégaso (ordem de convergencia ≈
1,642) é melhor em relação aos demais métodos baseados em aproximação linear
para obter-se uma boa aproximação da raiz com a tolerância ε 6 10−4 . Apesar de o
método da secante ter gasto apenas 6 iterações, mostrando-se um método rápido
(ordem de convergencia ≈ 1,618), vale lembrar que possui o inconveniente de obter
uma aproximação da raiz fora do intervalo. Também é possível ver claramente a
ineficiência do método regula-falsi (ordem de convergencia 1) gastando 20 iterações
para obter a aproximação da raiz com a tolerância exigida.

Q.12) Encontre pelo menos uma raiz positiva pelos métodos de Newton e de Schröder
com tolerância ε 6 10−5 ou no máximo cinco iterações.

i) f (x) = x4 − 2x3 + 2x − 1 = 0, a partir de x0 = 3 e multiplicidade m = 3;

newton_raphson('x^4-2*x^3+2*x-1', '4*x^3-6*x^2+2', 3, 1e-5, 5, '%10.5f');

Cálculo de raiz de equação pelo método de Newton-Raphson

k x_k Fx_k DFx_k deltax_k


0 3.00000 3.20000e+01 5.60000e+01 5.71429e-01
1 2.42857 9.99584e+00 2.39067e+01 4.18118e-01
2 2.01045 3.10585e+00 1.02528e+01 3.02926e-01
3 1.70753 9.58965e-01 4.42031e+00 2.16945e-01
4 1.49058 2.94060e-01 1.91630e+00 1.53452e-01
5 1.33713 8.95521e-02 8.35209e-01

Raiz = 1.33713
Iter = 5
Info = 1

schroder('x^4-2*x^3+2*x-1', '4*x^3-6*x^2+2', 3, 3, 1e-5, 5, '%10.5f');

Cálculo de raiz de equação pelo método de Schröder

k x_k Fx_k DFx_k deltax_k


0 3.00000 3.20000e+01 5.60000e+01 1.71429e+00
1 1.28571 5.33111e-02 5.83090e-01 2.74286e-01
2 1.01143 3.00248e-06 7.89644e-04 1.14070e-02
3 1.00002 2.04281e-14 2.80046e-09 2.18836e-05
4 1.00000 0.00000e+00 4.68958e-13 0.00000e+00
5 1.00000 0.00000e+00 4.68958e-13

Raiz = 1.00000
Iter = 5
Info = 0
ii) f (x) = (x + 1)(x − 1)(x − 3)5 = 0, a partir de x0 = 4 e multiplicidade m = 5.

newton_raphson('(x+1)*(x-1)*(x-3)^5',
'(x-1)*(x-3)^5+(x+1)*(x-3)^5+5*(x-1)*(x+1)*(x-3)^4', 4, 1e-5, 5, '%10.5f');

Cálculo de raiz de equação pelo método de Newton-Raphson

k x_k Fx_k DFx_k deltax_k


0 4.00000 1.50000e+01 8.30000e+01 1.80723e-01
1 3.81928 5.01503e+00 3.34259e+01 1.50034e-01
2 3.66924 1.67322e+00 1.34860e+01 1.24070e-01
3 3.54517 5.57104e-01 5.45089e+00 1.02204e-01
4 3.44297 1.85120e-01 2.20698e+00 8.38792e-02
5 3.35909 6.13974e-02 8.95016e-01

Raiz = 3.35909
Iter = 5
Info = 1
% não convergiu

schroder('(x+1)*(x-1)*(x-3)^5',
'(x-1)*(x-3)^5+(x+1)*(x-3)^5+5*(x-1)*(x+1)*(x-3)^4', 5, 4, 1e-5, 5, '%10.5f');

Cálculo de raiz de equação pelo método de Schröder

k x_k Fx_k DFx_k deltax_k


0 4.00000 1.50000e+01 8.30000e+01 9.03614e-01
1 3.09639 7.14384e-05 3.75738e-03 9.50640e-02
2 3.00132 3.22757e-14 1.22141e-10 1.32125e-03
3 3.00000 9.83179e-33 1.87799e-25

Raiz = 3.00000
Iter = 3
Info = 1
% derivada nula

Q.13) Seja o cálculo de p a, a > 0 pelo método de Newton, a partir de x0 > 0. Qual a
expressão da aproximação x2 da raiz?


Tem-se que x = p
a, com a > 0.

Elevando ambos lados da igualdade a p temos xp = a.

Portanto, precisamos determinar a aproximação x2 da raiz da função

f (x) = xp − a = 0.

Para utilizar o método de Newton é necessário obtermos a derivada da função.

f 0 (x) = pxp−1

A fórmula de recorrência do método de Newton é dada por


f (xk )
xk+1 = xk −
f 0 (xk )
Iniciando de um valor x0 > 0, substituindo f (x) e f 0 (x) na expressão acima obtemos
a expressão da aproximação x2

xp1 − a xp1 a x1 a
x2 = x1 − p−1 = x1 − p−1 + p−1 = x1 − + p−1
px1 px1 px1 p px1
 
1 a
= px1 − x1 + p−1
p x1
 
1 a
x2 = (p − 1)x1 + p−1
p x1

Você também pode gostar