Buscar

Cálculo Numérico - Método da Bisseção

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

2013/1S – EM33D – Cálculo Numérico
Lista 01 – Soluções de Equações – APS
Soluções
Resumo
Os algoritmos indicados nas resoluções representam implementações dos métodos numéricos
no software wxMaxima v11.08.0.
Problema 1. Determine uma aproximação de 3
√
correta até 10−4 utilizando o método da Bissecção.
O método da bissecção permite encontrar uma raíz de uma função contínua f em um intervalo
[a, b] tal que f(a).f(b)< 0. Consideremos, pois, f(x)= x2− 3 com a=1 e b=2, uma vez que
f
(
3
√ )
=
(
3
√ )
2− 3= 0, f(a)= f(1)=−2 e f(b)= f(2)= 1.
O algoritmo do método da bissecção consiste em determinar o ponto médio c=(a+b)/2 e substituir
o extremo cuja função assume o mesmo sinal de f(c). Assim, temos
(%i2) kill(all); reset();
(%i2) f(x) := x^2 - 3;
a : 1; b : 2; N0 : 20; epsilon : 1e-4;
(%o2) f(x)6 x2− 3
(%o3) 1
(%o4) 2
(%o5) 20
(%o6) 1.0× 10−4
(%i7) for i:1 thru N0 step 1 do (
c : (a+b)/2,
if (f(c)*f(a)>0) then (a:c) else (b:c),
if ( (b-a) < epsilon ) then (display(i,float(c)), return(float(c))) );
%^2;
i= 14
float
(
28377
16384
)
= 1.73199462890625
(%o7) 1.73199462890625
(%o8) 2.999805394560099
Ou seja, após 14 iteradas, encontramos
3
√ ≈ 1, 7319
com erro absoluto de 10−4.
PASSO-A-PASSO:
• i=1
1
a=1, f(a) =−2, b=2, f(b)= 1, c= a+ b
2
=1, 5, f(c)=−0, 75
• i=2
f(a).f(c)> 0⇒ a← c, c= a+ b
2
= 1, 75, f(c) = 0, 0625
• i=3
f(a).f(c)< 0⇒ b← c, c= a+ b
2
=1, 625, f(c)=−0, 359375,
• e assim por diante...
Problema 2. Determine um limitante para o número de iterações necessárias para obter uma aproximação
com precisão absoluta de 10−4 da solução de x3−x− 1=0 no intervalo [1, 2] utilizando o método da Bissecção.
Determine uma aproximação da raiz com essa ordem de precisão.
Como o método da bissecção consiste em particionar o intervalo inicial [a0, b0] ao meio, tem-se
bn− an= 1
2
(bn−1− an−1) ⇒ ∆n≡ bn− an= 1
2n
∆0.
Assim, para uma precisão absoluta de ε= 10−4, requer-se
∆n<ε ⇒ 1
2n
∆0<ε ⇒ 2n> ∆0
ε
Uma vez que ambos os termos da inequação são positivos e log2 (x) é uma função crescente para
x> 0,
n> log2
(
∆0
ε
)
.
Como ∆0>ε, o termo à direita é positivo e o limitante para o número de iterações N0 é dado pelo
menor inteiro maior que log2 (∆0/ε). Nesse caso,
log2
(
∆0
ε
)
= log2
(
2− 1
10−4
)
=4 log210≈ 13, 28 ⇒ N0= 14.
(%i9) kill(all); reset();
(%i9) f(x) := x^3-x-1;
a : 1; b : 2; N0 : 14; epsilon : 1e-4;
(%o9) f(x)6 x3− x− 1
(%i2) for i:1 thru N0 step 1 do (
c : (a+b)/2,
if (f(c)*f(a)>0) then (a:c) else (b:c),
if ( (b-a) < epsilon ) then (display(i,float(c)), return(float(c))) );
%^3-%-1;
i= 14
2
float
(
21705
16384
)
= 1.32476806640625
(%o7) 1.32476806640625
(%o8) 2.1370716262936185× 10−4
Ou seja, com erro absoluto de 10−4 encontramos, após 14 iteradas,
p≈ 1, 32476.
Problema 3. Uma partícula começa a se movimentar sobre um plano inclinado liso cujo ângulo θ com a
horizontal está variando a uma velocidade constante θ˙ =ω < 0.
Depois de t segundos, a posição da partícula é dada por
x(t) =− g
2ω2
(
eωt− e−ωt
2
− senωt
)
.
Suponha que a partícula tenha se deslocado 60cm em um segundo. Determine, com precisão relativa de 10−5,
a velocidade ω com a qual θ varia. Suponha que g=9, 80665 m/s2.
Seja x(0) = 0 a posição inicial da partícula. Denotando as quantidades nas unidades do sistema
internacional (SI), o enunciado nos fornece
0, 60=x(1)=−9, 80665
2ω2
(
eω− e−ω
2
− senω
)
.
Ou seja, a velocidade angular ω (em radianos/segundo) pode ser determinada pelo zero (negativo)
de (em que a expressão assima foi multiplicada por ω2� 0):
f(ω)= 0, 60ω2+4, 903325
(
eω− e−ω
2
− senω
)
.
Vemos que f(0)=0 e
f ′(ω)= 1, 2ω+4, 903325
(
eω+ e−ω
2
− cosω
)
⇒ f ′(0)= 0.
f ′′(ω)= 1, 2+ 4, 903325
(
eω− e−ω
2
+ senω
)
⇒ f ′′ (0)= 1, 2> 0.
Esse resultado implica ω=0 ser um ponto de mínimo (local) de f . Ou seja, f(±δ)> 0 para δ≪ 1.
Basta encontrarmos agora algum ω< 0 tal que f(ω)< 0 para que o método da bissecção possa ser
utilizado. Por inspeção, escolhemos
f(−1)≈−1, 03638767
e iniciamos o método no intervalo [−1,−δ], com δ= 10−2. Assim,
(%i9) kill(all); reset();
(%i2) f(x) := 0.60*x^2+4.903325*( (exp(x)-exp(-x))/2 - sin(x) );
a : -1; b : -1e-3; N0 : 20; epsilon : 1e-5;
3
(%i7) for i:1 thru N0 step 1 do (
c : (a+b)/2,
if (f(c)*f(a)>0) then (a:c) else (b:c),
if ( (b-a) < epsilon ) then (display(i,float(c)), return(float(c))) );
f(%);
i= 17
float(−0.36709624481201) =−0.36709624481201
(%o7) −0.36709624481201
(%o8) −1.3974194471993995× 10−6
Ou seja, com erro absoluto de 10−5, encontramos
ω=−0, 36709 rad/s.
Problema 4. Utilize manipulação algébrica para mostrar que cada uma das funções a seguir tem um ponto
fixo em p precisamente quando f(p)= 0, sendo f(x)= x4+2x2− x− 3.
a) g1(x) = (3+ x− 2x2)1/4
b) g2(x) =
(
x+3− x4
2
)
1/2
c) g3(x) =
(
x+3
x2+2
)
1/2
d) g4(x) =
3x4+2x2+3
4x3+4x− 1
(a) Fazendo-se f(x)= 0 e evidenciando x4, temos
f(x)= 0= x4+2x2−x− 3 ⇒ x4=3+ x− 2x2 ⇒ x=(3+ x− 2x2)1/4= g1(x).
(b) Analogamente, fazendo-se f(x)= 0 e evidenciando x2, temos
f(x) = 0= x4+2x2− x− 3 ⇒ x2= 3+ x− x
4
2
⇒ x=
(
3+ x−x4
2
)
1/2
= g2(x).
(c) Manipulando a igualdade f(x)= 0, temos
x4+2x2−x− 3= 0 ⇒ x4+2x2= x+3 ⇒ x2(x2+2)= x+3
Como (x2+2)� 0 para todo x∈R, dividimos a igualdade por (x2+2) e obtemos
x2=
x+3
x2+2
⇒ x=
(
x+3
x2+2
)
1/2
= g3(x).
(d) Seguindo a mesma idéia do idem (c), encontramos
x4+2x2− x− 3=0 ⇒ x4+2x2− x=3.
Somando (3x4+2x2) em ambos os lados da igualdade e evidenciando x à esquerda, temos
4x4+4x2− x= x(4x3+4x− 1)= 3x4+2x2+3.
4
Investiguemos, pois, os zeros de h(x)= 4x3+4x− 1. Note que
h(x)= 0= 4x3+4x− 1 ⇒ 4x3+4x=1 ⇒ 4x(x2+1)= 1.
Essa última equação nos garante que não existe um zero de h para x6 0 (pois o termo à esquerda
deve ser positivo para que a igualdade seja satisfeita). Observe, também, que h é estritamente
crescente para x> 0. Assim, como h(0)=−1, h possui um (único) zero para x> 0. Como h(1)=7,
este zero está contido em (0, 1). Analisemos, pois, a existência de um zero de f em (0,1). Como f
é um polinômio, é contínua em [0, 1] e diferenciável em (0, 1). Assim, o teorema do valor extremo
nos garante que maxx∈(0,1) {f(x)} ocorre em x=0, x=1, ou nos pontos em que f ′(x)= 0. Como
f ′(x)= 4x3+4x− 1≡ h(x),
existe um único ponto em x∈ (0,1) tal que f ′(x)=0. Uma vez que f(0)=−3 e f ′(0)=−1, o ponto
x∈ (0,1) em que f ′(x)= 0 deve satisfazer f(x)< f(0)1. Assim, o máximo de f em [0, 1] ocorre em
x=0 ou x=1. Como f(0)=−3 e f(1)=−1, f não possui nenhum zero em [0,1]. Assim, excluíndo-
se esse intervalo do domínio de g4, temos
x=
3x4+2x2+3
4x3+4x− 1 = g4(x).
Problema 5. Se possível, efetue quatro iterações em cada função gi definida no exercício anterior. Faça p0=1
e pn+1 = g(pn) para n= 0, 1, 2, 3. Qual é a função que você acredita que fornecerá a melhor aproximação da
solução?
(%i2) kill(all); reset();
(%i2) f(x) := x^4 + 2*x^2 - x - 3;
(%o2) f(x)6 x4+2x2− x− 3
(%i3) g[1](x) := (3+x-2*x^2)^(1/4);
p[0] : 1
(%o3) g1(x)6 (3+ x+(−2) x2)
1
4
(%o4) 1
(%i5) for n:0 thru 3 step 1 do (p[n+1] : float(g[1](p[n])));
(%i6) [p[0],p[1],p[2],p[3],p[4]];
f([p[0],p[1],p[2],p[3],p[4]]);
(%o6) [1, 1.189207115002721, 1.080057752667562, 1.149671430589383, 1.10782052951026]
(%o7) [−1, 0.63922000974347,−0.38622826421642, 0.24082562051044,−0.14710524433897]
(%i8) g[2](x) := ((x+3-x^4)/2)^(1/2);
p[0] : 1;
(%o8) g2(x)6
(
x+3− x4
2
)
1
2
(%o9) 1
(%i10) for n:0 thru 3 step 1 do (p[n+1] : float(g[2](p[n])));
(%i11) [p[0],p[1],p[2],p[3],p[4]];
f([p[0],p[1],p[2],p[3],p[4]]);
1. Pois no intervalo (0, x) a função f é estritamentedecrescente, uma vez que sabemos que f ′(x) é contínua em
diferente de zero em todo esse intervalo.
5
(%o13) [1, 1.224744871391589, 0.99366615907748, 1.228568645274987, 0.98750642915089]
(%o14) [−1, 1.025255128608411,−1.044016960914045, 1.068423937076965,−1.086214057530968]
(%i15) g[3](x) := ((x+3)/(x^2+2))^(1/2);
p[0] : 1
(%o15) g3(x)6
(
x+3
x2+2
)
1
2
(%o16) 1
(%i17) for n:0 thru 3 step 1 do (p[n+1] : float(g[3](p[n])));
(%i18) [p[0],p[1],p[2],p[3],p[4]];
f([p[0],p[1],p[2],p[3],p[4]]);
(%o20) [1, 1.154700538379252, 1.116427409872122, 1.126052233002276, 1.123638884713255]
(%o21) [−1, 0.28974390606519,−0.070068796119775, 0.017742879292814,−0.0044414774137986]
(%i22) g[4](x) := (3*x^4+2*x^2+3)/(4*x^3+4*x-1);
p[0] : 1
(%o22) g4(x)6
3x4+2x2+3
4 x3+4 x− 1
(%o23) 1
(%i24) for n:0 thru 3 step 1 do (p[n+1] : float(g[4](p[n])));
(%i25) [p[0],p[1],p[2],p[3],p[4]];
f([p[0],p[1],p[2],p[3],p[4]]);
(%o25) [1, 1.142857142857143, 1.124481690017895, 1.124123163940149, 1.124123029704334]
(%o26) [−1, 0.17534360683049, 0.0032931950564103, 1.2320832358803102× 10−6, 1.73194791841\
52442× 10−13]
Para cada função de iteração gi(x), duas listas foram geradas: [p0, p1, p2, p3, p4] e [f(p0), f(p1),
f(p2), f(p3), f(p4)]. Comparando os resultados, espera-se que g1, g3 e g4 gerem sequências conver-
gentes, sendo g4 apresentou a melhor aproximação.
PASSO-A-PASSO: (para g1)
• n=0
p0=1, p1= g(p0)⇒ p1=(3+ 1− 2 (1)2)1/4≈ 1, 189207
• n=1
p1=1, 189207, p2= g(p1)⇒ p2=(3+ 1, 189207− 2(1, 189207)2)1/2≈ 1, 080057
• e assim por diante...
Problema 6. Utilize ummétodo de iteração de ponto fixo para determinar uma solução com precisão absoluta
de 10−2 para x3− x− 1= 0 em [1, 2]. Utilize p0=1.
Devemos construir uma função de iteração tal que g(p) = p⇒ f(p) = 0, sendo f(x) = x3− x − 1.
Sabemos que a convergência será garantida se g([1, 2])⊂ [1, 2] e se existir constante positiva k < 1
tal que |g ′(x)|< k para todo x ∈ (1, 2). Seguindo o procedimento sugerido no problema anterior,
fazemos f(x)= 0 e isolamos x:
x3− x− 1=0 ⇒ x= g1(x)= x3− 1.
6
Mas observamos que g1
′(x) = 3x2− 1> 1 para todo x∈ (1, 2). Assim, g1 não é uma boa função de
iteração para o método do ponto fixo. Evidenciando x3, temos
x3=1+x ⇒ x= g2(x)= (1+x)1/3.
Vemos que g2′(x)=
1
3(1+ x)2/3
é decrescente em x∈ (1,2). Assim, max |g ′(x)|= |g ′(1)|≈0,2099<1.
Vejamos, pois, se g2([1,2])⊂ [1,2]. Primeiro, notemos que g2 é crescente em [1,2] (pois g2′ é positiva
nesse intervalo). Assim, basta verificarmos se g2(1) e g2(2) pertencem a [1, 2]. Como
g2(1)= 2
1/3≈ 1, 2599 e g2(2)= 31/3≈ 1, 4422,
verificamos que g2([1, 2])⊂ [1,25, 1, 45]⊂ [1,2]. Logo, a sequência {pk}k=0∞ convirgirá para p, sendo
pk= g2(pk−1) para k> 1.
Como conhecemos um limitante k=0,21 para a derivada de g2 em [1,2], podemos estimar o número
máximo de iterações pelas relações
∆n≡ |pn− p|6 knmax{p0− a, b− p0} e ∆n≡ |pn− p|6 k
n
1− k |p1− p0|.
Pela primeira equação, temos (observe que a= p0=1 e b=2),
∆n= ε= 10−26 (0, 21)n(2− 1) ⇒ n> 2, 95 ⇒ N0=3.
Determinando p1= g2(p0)= 1, 2599, a segunda desigualdade fornece
∆n= ε= 10−26
(0, 21)n
1− 0, 21 |1, 2566− 1| ⇒ n> 2, 23 ⇒ N0=3.
Assim, fazemos N0=3 (número máximo de iterações).
(%i2) kill(all); reset();
(%i2) f(x) := x^3 -x - 1;
(%i3) g[2](x) := (1+x)^(1/3);
epsilon : 1e-2;
N0 : 3;
p[0] : 1; k : 0;
(%i8) for n:1 thru N0 step 1 do ( k : n,
p[n] : float(g[2](p[n-1])),
if (abs(p[n]-p[n-1]) < epsilon) then ( return(p[k])) );
(%i9) p[k];
(%o9) 1.322353819138825
Logo, a solução aproximada de f(x) = 0 é x≈ 1, 3223.
Problema 7. Utilize o Teorema 2.2 para mostrar que g(x)=pi+
1
2
sen(x/2) tem um único ponto fixo em [0,2pi].
Aplique a iteração de ponto fixo para encontrar uma aproximação do ponto fixo que tenha precisão de 10−2.
Utilize o Corolário 2.4 para estimar o número de iterações necessárias para que a precisão 10−q seja alcançada,
sendo q um inteiro positivo, e compare essa estimativa teórica para q=2 com o número realmente necessário.
7
A existência e unicidade do ponto fixo de g em um intervalo [a, b] é garantida se g([a, b])⊂ [a, b] e
existir um k< 1 positivo tal que |g ′(x)|<k∀x∈ (a, b). Sabemos que −16 sen(x)6 1 para qualquer
x, assim
min {g(x)}= pi− 1
2
=
2pi− 1
2
> 0 e max {g(x)}= pi+ 1
2
=
2pi+1
2
< 2pi.
Logo, g([0, 2pi]) ⊂ [0, 2pi]. Assim, a existência de um ponto fixo em [0, 2pi] está garantida. Para
verificar a unicidade, analisemos g ′:
g ′(x)=
cos (x/2)
4
⇒ |g ′(x)|6 1
4
∀x∈ [0, 2pi]
pois, assim como o seno, −16 cos (x)61 para qualquer x. Como existe o limitante k=1/4<1 para
a derivada de g em [0, 2pi], o ponto fixo nesse intervalo é único. Aplicando o método de ponto fixo
com ε= 10−2 e p0= pi (arbitrário, pois a convergência está garantida), obtemos:
(%i15) reset(); kill(all);
(%i15) g(x) := %pi + sin(x/2)/2;
epsilon : 1e-2;
N0 : 10;
p[0] : %pi; k : 0;
(%i15) for n:1 thru N0 step 1 do ( k : n,
p[n] : float(g(p[n-1])),
if (abs(p[n]-p[n-1]) < epsilon) then ( return(p[k])) );
(%i8) [k,p[k],float(g(p[k]))];
(%o8) [3, 3.626995622438735, 3.626938794225417]
Ou seja, após 3 iterações encontramos p3≈ 3, 6269 tal que g(p3)≈ 3, 6269.
Pelo Corolário 2.4, temos as seguintes desigualdades, para ∆n≡ |pn− p|= ε= 10−q, com k=1/4,
p0= pi e p1= g(p0)= pi+ sen(pi/2)/2= pi+0, 5:
10−q< 2−2npi ⇒ n> q+ log10pi
log104
e
10−q<
(1/4)n
1− 1/4 |pi− pi− 0, 5|=
2
3
(
1
4
)n
⇒ n> q+ log10
( 2
3
)
log104
.
Como pi > 2/3, utilizamos a primeira desigualdade. Com q=2, encontramos
n>
2+ log10pi
log104
≈ 4, 1475 ⇒ N0=5.
Vemos que a precisão ε=10−2 foi obtida com apenas 3 iterações. Isto se deve ao fato da estimativa
considerar apenas o majorante da derivada da função de iteração. Ou seja, N0 é um limitante
superior para o número de iteradas.
Problema 8. Para cada uma das equações a seguir, (i) determine um intervalo [a, b] no qual a interação de
ponto fixo convirja. (ii) Estime o número de iterações necessárias para se obter aproximações do ponto fixo com
uma precisão de 10−5 e (iii) efetue os cálculos.
a) x=
2− ex+ x2
3
8
b) x=
5
x2
+2
c) x=
(
ex
3
)
1/2
d) x=5−x
e) x=6−x
f) x=
senx+ cosx
2
A primeira etapa consiste em determinar um intervalo [a,b] tal que g([a, b])⊂ [a, b]. Isto é garantido
quando max {g(x)}6 b e min {g(x)}> a para qualquer x ∈ [a, b]. Pelo teorema do valor extremo
sabemos que, se g é contínua em [a, b] e diferenciável em (a, b), então seus máximos e mínimos
ocorrem em x = a, x = b ou nos pontos em que g ′(x) = 0. Em seguida, é necessário que ∃k < 1
positivo tal que |g ′(x)| < k para todos x ∈ [a, b]. Caso exista, então a iteração convergirá para o
único ponto fixo de g em [a, b]. Por fim, o número de iterações será extimado pelas desigualdades
|pn− p|<knmax{p0− a, b− p0} e |pn− p|< k
n
1− k |p1− p0|.
Analisemos, pois, as funções g(x)≡ x dadas.
(a) g(x)= (2− e−x+ x2)/3
Derivando, obtemos
g ′(x)=
2x+ e−x
3
⇒ g ′′(x) = 2− e
−x
3
⇒ g ′′′(x) = e
−x
3
.
Para determinar se g é crescente ou decrescente em um intervalo, devemos analisar g ′. Como
g ′′′(x)> 0 para qualquer x, sabemos que qualquer z tal que g ′′(z) = 0 será um ponto de mínima
para g ′. Resolvendo g ′′(z) = 0 encontramos o único ponto de mínima z=−ln 2. Como
g ′(−ln 2)= 2(−ln 2)+ e
−(−ln 2)
3
=
eln 2− 2 ln2
3
=
2(1− ln 2)
3
> 0,
vemos que g ′(x)>g ′(z)>0 para qualquer x de tal modo que g(x) é crescente em qualquer intervalo
[a, b]. Assim, g([a, b]) ⊂ [a, b] é garantido se g(a) > a e g(b) 6 b (pois sabemos que g(b) > g(a)).
Substituindo b na expressão de g, encontramos, da segunda desigualdade,
g(b)=
2− e−b+ b2
3
6 b ⇒ b2− 3b+26 e−b.
Como e−b>0 para qualquer b, basta que b2−3b+260 para que a inequação seja satisfeita. Assim,qualquer b∈ [1,2] garante b2− 3b+26 0⇒ g(b)<b. Como g ′(x) é crescente para x>z, escolhemos
b=1. Note que
g ′(1)=
2+ e−1
3
< 1.
Analogamente, substituindo a, temos
g(a) =
2− e−a+ a2
3
> a ⇒ a2− 3a+2> e−a.
com a restrição de que a < b = 1. Esta desigualdade é um pouco mais difícil de se analisar. Por
inspeção, vemos que a=0 satisfaz as condições necessárias, pois
g(0)=
2− 1+ 0
3
=
1
3
> 0 e g ′(0)=
1
3
< 1.
Mais ainda, aplicando o teorema do valor extremo para g ′ em um intervalo arbitrário [a,b], sabemos
que m= g ′(a) ou m= g ′(b) (pois z é o único ponto de mínima de g ′). Como g ′(0)< g ′(1), temos,
portanto,
|g ′(x)|<k= g ′(1)= 2+ 1/e
3
≈ 0, 79 ∀x∈ (0, 1).
9
Assim, a existência de um único ponto fixo de g em [0, 1] está demonstrada.
Assumindo como p0 o ponto médio, p0=0, 5, estimamos o número de iterdadas por
ε= 10−5=∆n6 knmax{p0− a, b− p0}=(0, 79)n0, 5 ⇒ n> 45, 9 ⇒ N0= 46
e
ε= 10−5=∆n6
kn
1− k |g(p0)− p0|=
(0, 79)n
1− 0, 790, 547823 ⇒ n> 52, 91.
Como o majorante da derivada no intervalo escolhido é próximo de um, o número de iteradas
esperado é alto. Iterando, temos:
(%i1) reset(); kill(all);
(%i1) g(x) := (2 - exp(-x) + x^2)/3;
epsilon : 1e-5;
N0 : 46;
p[0] :0.5; k : 0;
(%i6) for n:1 thru N0 step 1 do ( k : n,
p[n] : float(g(p[n-1])),
if (abs(p[n]-p[n-1]) < epsilon) then ( return(p[k])) );
(%i7) [k,p[k],float(g(p[k]))];
(%o7) [17, 0.60897756585781, 0.60898232735509]
Ou seja, após 17 iteradas encontramos p≈ 0, 60897 tal que g(p)≈ 0, 60898.
(b) g(x)=
5
x2
+2
Como g é proporcional a +x−2, g é uma função simétrica (isto é, g(−x)= g(x)) e g(x)>0∀x. Assim,
qualquer ponto fixo de g deve ser positivo. Como g ′(x) = −10/x3, g é estritamente decrescente
para x> 0. Assim, g([a, b])⊂ [a, b] está garantido se g(a)< b e g(b)>a, restringindo 0<a< b. É
necessário, também, que |g ′(x)|6k<1 para qualquer x∈ [a, b]. Isso é garantido desde que a>101/3.
Assim, temos
g(b)>a ⇒ 5
b2
+2>a> 101/3 ⇒ 5> (101/3− 2)b2 ⇒ b < 5
101/3− 2
√
≈ 32, 3761
Assim, é garantida a existência de um ponto fixo de g no intervalo
(
101/3,32,3761
)
. Para obter uma
melhor estimativa de convergência, devemos evitar as vizinhanças de x=101/3, pois
∣∣g ′(101/3)∣∣=1.
Como
g(32, 3761) = 101/3, g
(
101/3
)≈ 4, 320794 e g(4, 320794)≈ 2, 267819
escolhemos [a, b] = [2, 26, 4, 32], pois g(a)<b e
k= max
x∈[a,b]
{|g ′(x)|}= |g ′(2, 26)| ≈ 0, 8663.
Isto é, a convergência para o único ponto fixo em [a,b] é garantida. Estimando o número de iteradas,
para p0=
a+ b
2
=3, 29, encontramos
ε=∆n<k
nmax{p0− a, b− p0} ⇒ 10−5< (0, 8663)n1, 03 ⇒ n> 80, 42 ⇒ N0= 81
ε=∆n<
kn
1− k |p1− p0| ⇒ 10
−5<
(0, 8663)n
1− 0, 8663 |2, 461932− 3, 29| ⇒ n> 92, 92.
10
Iterando, temos:
(%i1) reset(); kill(all);
(%i1) g(x) := 5/x^2 + 2;
epsilon : 1e-5;
N0 : 81;
p[0] :3.29; k : 0;
(%i1) for n:1 thru N0 step 1 do ( k : n,
p[n] : float(g(p[n-1])),
if (abs(p[n]-p[n-1]) < epsilon) then ( return(p[k])) );
(%i7) [k,p[k],float(g(p[k]))];
(%o7) [18, 2.690650423743068, 2.690645920391698]
Assim, após 18 iteradas, o método de iteração resulta em p18=2, 69065 tal que g(p18) = 2, 69064.
Observe que, novamente, k= 18≪N0.
(c) g(x)=
(
ex
3
)
1/2
Novamente, esta função satisfaz g(x)> 0∀x. Assim, o(s) ponto(s) fixo(s) deve(m) ser positivo(s).
Como
g ′(x)=
1
2
(
3
ex
)
1/2ex
3
=
ex/2
2 3
√ > 0∀x,
a função g é estritamente crescente em [a,b]. Assim, g([a,b])⊂ [a,b] é garantido se g(a)>a e g(b)<b.
Como requeremos que |g ′(x)|6 k < 1∀x∈ [a, b], temos
|g ′(x)|= e
x/2
2 3
√ < 1 ⇒ ex/2< 2 3√ ⇒ x< ln (12).
Assim, já temos as restrições 06 a< b< ln (12). Uma vez que
g(0)=
(
e0
3
)
1/2
=
3
√
3
> 0, g(ln 12)=
(
eln 12
3
)
1/2
=2 e g(2)=
e
3
√ < 2,
delimitamos um intervalo [a, b]= [0, 2] tal que qualquer p0∈ [0, 2] converge para o único ponto fixo
de g nesse intervalo. Como
k= max
x∈[0,2]
|g ′(x)|= e
2/2
2 3
√ ≈ 0, 7847,
estimamos o limitante para o número de iteradas com p0=1:
ε=∆n<knmax{p0− a, b− p0} ⇒ 10−5< (0, 7847)n ⇒ n> 47, 48
ε=∆n<
kn
1− k |p1− p0| ⇒ 10
−5<
(0, 7847)n
1− 0, 7847 |0,951889−1| ⇒ n>28,63 ⇒ N0=29
Assim, iterando, temos
(%i8) reset(); kill(all);
11
(%i1) g(x) := sqrt(exp(x)/3);
epsilon : 1e-5;
N0 : 29;
p[0] :1; k : 0;
(%i1) for n:1 thru N0 step 1 do ( k : n,
p[n] : float(g(p[n-1])),
if (abs(p[n]-p[n-1]) < epsilon) then ( return(p[k])) );
(%i7) [k,p[k],float(g(p[k]))];
(%o7) [12, 0.9100149616732, 0.91001093460184]
ou seja, após k= 12 iteradas, obtemos p12=0, 910014 tal que g(p12)= 0, 910010.
(d) e (e) g(x) =α−x, com α> 1
Como g(x)> 0 ∀x, g(p)= p só pode ser satisfeito para p> 0. Assim, a> 0. Mais ainda, como
g ′(x)=−(lnα)α−x,
g é estritamente decrescente, [a, b] deve ser tal que g(a)<b e g(b)>a. Para que o ponto fixo exista
e seja único em [a, b], é necessário que |g ′(x)|6 k < 1∀x∈ [a, b]. Ou seja,
(lnα)α−x< 1 ⇒ −x lnα<−ln (lnα) ⇒ x> ln (lnα)
lnα
.
Como α> 1, encontramos a> ln (lnα)/lnα. Observe que a restrição sobre a derivada não limita o
valor de b.
Como g é decrescente, se definirmos b= g(a) temos a garantia de que g(x)<b para x∈ (a, b), pois
se a<x<b, g(a)> g(x)> g(b)⇒ b > g(x)> g(b). Assim, o intervalo (β, g(β)) com
β=
ln (lnα)
lnα
certamente contem um único ponto fixo de g e a convergência para este é garantida. Como β é
o ponto em que |g ′(β)| = 1, a estimativa da convergência será, certamente, superestimada para
qualquer a≈ β. Definimos, então, b= g(β) e a= g(b), de tal modo que
k= max
x∈[a,b]
{|g ′(x)|}=−g ′(a)= lnα 1
α−a
, a= g(g(β)).
Assim, para α=5, temos
β≈ 0, 295683 ⇒ b=0, 621334 ⇒ a=0, 367879 ⇒ k=0, 890303
Assim, estimando o número máximo de iteradas para p0=(a+ b)/2= 0, 494606, temos
ε=∆n<k
nmax{p0−a, b− p0} ⇒ 10−5< (0,8903)n0,1267 ⇒ n>81,30 ⇒ N0=82
ε=∆n<
kn
1− k |p1− p0| ⇒ 10
−5<
(0, 8903)n
1− 0, 8903 |0, 451112− 0, 494606| ⇒ n> 91, 11.
Iterando, encontramos:
(%i1) reset(); kill(all);
12
(%i1) alpha : 5;
g(x) := alpha^(-x);
epsilon : 1e-5;
N0 : 82;
beta : float(log(log(alpha))/log(alpha));
b : g(beta);
a : g(b);
p[0] : (a+b)/2; k : 0;
(%i1) for n:1 thru N0 step 1 do ( k : n,
p[n] : float(g(p[n-1])),
if (abs(p[n]-p[n-1]) < epsilon) then ( return(p[k])) );
(%i11) [k,p[k],float(g(p[k]))];
(%o11) [31, 0.46961771852934, 0.46962510075152]
Ou seja, após k = 31 iterações, com p0 = 0, 494606, encontramos p31 = 0, 469617 tal que
g(p31)= 0, 469625.
Com α=6, temos
β≈ 0, 325489 ⇒ b=0, 558106 ⇒ a=0, 367879 ⇒ k=0, 926859
Assim, estimando o número máximo de iteradas para p0=(a+ b)/2= 0, 462992, temos
ε=∆n<k
nmax{p0−a, b− p0} ⇒ 10−5< (0,926)n0,0951 ⇒ n>120,5 ⇒ N0=121
ε=∆n<
kn
1− k |p1− p0| ⇒ 10
−5<
(0, 9268)n
1− 0, 9268 |0, 436236− 0, 462992| ⇒ n> 138, 2.
Iterando, encontramos:
(%i32) reset(); kill(all);
(%i32) alpha : 6;
g(x) := alpha^(-x);
epsilon : 1e-5;
N0 : 121;
beta : float(log(log(alpha))/log(alpha));
b : g(beta);
a : g(b);
p[0] : (a+b)/2; k : 0;
(%i32) for n:1 thru N0 step 1 do ( k : n,
p[n] : float(g(p[n-1])),
if (abs(p[n]-p[n-1]) < epsilon) then ( return(p[k])) );
(%i11) [k,p[k],float(g(p[k]))];
(%o11) [37, 0.44805869405237, 0.44806659509971]
Ou seja, com p0 = 0, 462992 encontramos, após k = 37 iteradas, p37 = 0, 448058 tal que
g(p37)= 0, 448066.
(f) g(x)= (senx+ cos x)/2
Como g ′(x)= (cosx− senx)/2 e −16 senx, cosx6 1 para qualquer x, a condição |g ′(x)|6 k < 1 é
satisfeita para qualquer intervalo [a, b], pois senx=±1⇒ cosx=0 (e vice-versa). Vemos, também,
que g(x)∈ [−g(m), g(m)]∀x sendo m dado pela menor solução positiva de
g ′(m) = 0 ⇒ cosm− senm
2
= 0 ⇒ cosm= senm ⇒ m= pi
4
.
13
Ou seja, g(x) ∈ [− 2√ /2, 2√ /2]∀x.Assim, a escolha [a, b] com a = −b e b = 2√ /2 satisfaz as
condições para a convergência da série gerada por g para o único ponto fixo em [a, b], pois
k= max
x∈[a,b]
{|g ′(x)|}= 2
√
2
< 1.
Seguindo o processo iterativo, determinemos a estimativa para o número máximo de iteradas,
fazendo p0=(a+ b)/2= 0:
ε=∆n<k
nmax{p0− a, b− p0} ⇒ 10−5<
(
2
√
2
)n
2
√
4
⇒ n> 30, 2 ⇒ N0= 31
ε=∆n<
kn
1− k |p1− p0| ⇒ 10
−5<
(
2
√
/2
)n
1− 2√ /2 |0, 5− 0| ⇒ n> 34, 76.
Iterando, encontramos:
(%i12) reset(); kill(all);
(%i12) g(x) := (sin(x) + cos(x))/2;
epsilon : 1e-5;
N0 : 31;
p[0] : 0; k : 0;
(%i12) for n:1 thru N0 step 1 do ( k : n,
p[n] : float(g(p[n-1])),
if (abs(p[n]-p[n-1]) < epsilon) then ( return(p[k])) );
(%i7) [k,p[k],float(g(p[k]))];
(%o7) [6, 0.70481167720145, 0.70481198351321]
Ou seja, após k=6 iteradas obtemos p6=0, 704811 tal que g(p6) = 0, 704811≈ 2
√
/2.
OBSERVAÇÃO: Para esse exercício, é possível delimitar o intervalo [a, b] pela análise gráfica de g
(para verificar a condição g([a, b])⊂ [a, b]) e de g ′ (para verificar a condição |g ′(x)|< 1∀x∈ [a, b]).
Problema 9. Um objeto em queda vertical no ar está sujeito à resistência viscosa, bem como à força da
gravidade. Suponha que um objeto commassam=50g seja solto a uma altura s0=10m e que a altura do objeto
após t segundos seja
s(t) = s0−
mg
k
t+
m2g
k2
(
1− e−kt/m
)
,
em que g = 9, 80665m/s2 é a aceleração gravitacional e k = 0, 05kg/s é o coeficiente de resistência do ar.
Determine, com precisão de 0,01 segundo, o tempo necessário para o objeto alcance o solo.
Como s(t) é a altura do objeto, queremos determinar t tal que s(t) = 0m. Convertendo k = 0,
05 kg/s=50g/s, temos, nas unidades do SI,
s(t)=α− βt+ γ(1− eδt)
sendo α= 10, β=mg/k=9, 80665, γ=m2g/k2=9, 80665 e δ= k/m=1. Utilizando o método de
Newton,
tn+1= tn− s(tn)
s′(tn)
14
em que n=0, 1,	 , t0=0 e
s′(t) =−β − γet,
encontramos o seguinte método iterativo:
t0=0, tn+1= g(tn)= tn+
α− βt+ γ(1− e t)
β+ γet
, n> 0
Iterando, encontramos, com ε= 10−2,
(%i1) kill(all); reset(); kill(all);
(%i1) alpha : 10; beta : 9.80665; gamma : beta;
g(t) := t + (alpha - beta*t + gamma*(1-exp(t)))/(beta + gamma*exp(t));
epsilon : 1e-2;
N0 : 100;
t[0] : 0; k : 0;
s(t) := alpha - beta*t + gamma*(1-exp(t));
(%i1) for n:1 thru N0 step 1 do ( k : n,
t[n] : float(g(t[n-1])),
if (abs(s(t[n])) < epsilon) then ( return(t[k])) );
(%i11) [k,t[k],float(g(t[k])),s(t[k])];
(%o11) [3, 0.45054693657685, 0.4505465819868,−8.9338796156468447× 10−6]
Ou seja, após 3 iteradas o método de Newton, com t0=0 resultou em t3=0, 450546 tal que
s(t3) =−8, 93× 10−6.
Ou seja, o tempo para que o objeto chegue ao solo é aproximadamente 0,450 segundos.
PASSO-A-PASSO:
• n=0
t0=0, s(t0) = 10, s′(t0) =−19, 6133, t1= g(t0)= t0− s(t0)
s′(t0)
= 0, 509858
• n=1
t1=0, 509858, |s(t1)=−1, 521960|>ε, s′(t1)=−26, 1352, t2= g(t1) = 0, 451624
• n=2
t2=0, 451624, |s(t2) =−0.027157|>ε, s′(t2)=−25, 2115, t3= g(t2)= 0, 450546
• n=3
t3=0, 450546, |s(t3)=−8, 93387× 10−6|<ε
Problema 10. Utilize o método de Newton para encontrar soluções com precisão absoluta de 10−5 para os
problemas abaixo:
a) ex+2−x+2 cosx− 6= 0 para 16x6 2 b) ln (x− 1)+ cos (x− 1)= 0 para 1, 36 x6 2
15
c) 2x cos (2x) − (x − 2)2 = 0 para 2 6 x 6 3 e
36 x6 4
d) (x− 2)2− lnx=0 para 16 x6 2 e e6x6 4
e) ex− 3x2=0 para 06 x6 1 e 36 x6 5
f) sen x − e−x = 0 para 0 6 x 6 1, 3 6 x 6 4 e
66x6 7
Em cada um dos casos, utilizaremos p0= (a+ b)/2 como ponto inicial, sendo a6 x6 b dado pelo
enunciado. Utilizaremos como critério de parada |f(x)| < ε=10−5 e colocaremos N0 = 100 como
limitante do número de iteradas. Para cada um dos casos, fl(x)≡ f ′(x) e o resultado está indicado
em uma lista [k, pk, f(pk)] sendo k o menor número inteiro tal que |f(pk)|<ε.
(a) p6=1, 829383
(%i1) kill(all); reset(); kill(all);
(%i1) a : 1; b : 2;
f(x) := exp(x) + 2^(-x) + 2*cos(x) - 6;
fl(x) := exp(x) + log(2)*2^(-x) - 2*sin(x);
epsilon : 1e-5;
N0 : 100;
p[0] : float((a+b)/2); k : 0;
(%i1) for n:1 thru N0 step 1 do ( k : n,
p[n] : float(p[n-1] - f(p[n-1])/fl(p[n-1])),
if (abs(f(p[n])) < epsilon) then ( return(p[k])) );
(%i10) [k,p[k],f(p[k])];
(%o10) [6, 1.829383901514923, 1.2287320254600331× 10−6]
(b) p5=1, 397748
(%i11) kill(all); reset(); kill(all);
(%i1) a : 1.3; b : 2;
f(x) := log(x-1) + cos(x-1);
fl(x) := 1/(x-1) - sin(x-1);
epsilon : 1e-5;
N0 : 100;
p[0] : (a+b)/2; k : 0;
(%i1) for n:1 thru N0 step 1 do ( k : n,
p[n] : float(p[n-1] - f(p[n-1])/fl(p[n-1])),
if (abs(f(p[n])) < epsilon) then ( return(p[k])) );
(%i10) [k,p[k],f(p[k])];
(%o10) [5, 1.397748475911459,−1.0057221722092891× 10−10]
(c) p2=2, 370687∈ [2, 3] e p4=3, 722112∈ [3, 4]
(%i1) kill(all); reset(); kill(all);
(%i1) a : 2; b : 3;
f(x) := 2*x*cos(2*x) - (x-2)^2;
fl(x) := 2*cos(2*x) - 4*x*sin(2*x) - 2*(x-2);
epsilon : 1e-5;
N0 : 100;
p[0] : (a+b)/2; k : 0;
(%i1) for n:1 thru N0 step 1 do ( k : n,
p[n] : float(p[n-1] - f(p[n-1])/fl(p[n-1])),
if (abs(f(p[n])) < epsilon) then ( return(p[k])) );
(%i10) [k,p[k],f(p[k])];
(%o10) [2, 2.370687825747464, 7.9869315916525352× 10−6]
16
(%i1) kill(all); reset(); kill(all);
(%i1) a : 3; b : 4;
f(x) := 2*x*cos(2*x) - (x-2)^2;
fl(x) := 2*cos(2*x) - 4*x*sin(2*x) - 2*(x-2);
epsilon : 1e-5;
N0 : 100;
p[0] : (a+b)/2; k : 0;
(%i1) for n:1 thru N0 step 1 do ( k : n,
p[n] : float(p[n-1] - f(p[n-1])/fl(p[n-1])),
if (abs(f(p[n])) < epsilon) then ( return(p[k])) );
(%i10) [k,p[k],f(p[k])];
(%o10) [4, 3.722112773106613,−7.8667738989679492× 10−11]
(d) p3=1, 412391∈ [1, 2] e p3=3, 057104∈ [e, 4]
(%i1) kill(all); reset(); kill(all);
(%i1) a : 1; b : 2;
f(x) := (x-2)^2 - log(x);
fl(x) := 2*(x-2) - 1/x;
epsilon : 1e-5;
N0 : 100;
p[0] : (a+b)/2; k : 0;
(%i1) for n:1 thru N0 step 1 do ( k : n,
p[n] : float(p[n-1] - f(p[n-1])/fl(p[n-1])),
if (abs(f(p[n])) < epsilon) then ( return(p[k])) );
(%i10) [k,p[k],f(p[k])];
(%o10) [3, 1.412391171725005, 5.6286036942410078× 10−10]
(%i11) kill(all); reset(); kill(all);
(%i1) a : float(exp(1)); b : 4;
f(x) := (x-2)^2 - log(x);
fl(x) := 2*(x-2) - 1/x;
epsilon : 1e-5;
N0 : 100;
p[0] : (a+b)/2; k : 0;
(%i1) for n:1 thru N0 step 1 do ( k : n,
p[n] : float(p[n-1] - f(p[n-1])/fl(p[n-1])),
if (abs(f(p[n])) < epsilon) then ( return(p[k])) );
(%i10) [k,p[k],f(p[k])];
(%o10) [3, 3.057104002504877, 8.0868112517507029× 10−7]
(d) p4=0, 910007∈ [0, 1] e p4= 3.733079∈ [3, 5]
(%i1) kill(all); reset(); kill(all);
(%i1) a : 0; b : 1;
f(x) := exp(x) - 3*x^2;
fl(x) := exp(x) - 6*x;
epsilon : 1e-5;
N0 : 100;
p[0] : (a+b)/2; k : 0;
(%i1) for n:1 thru N0 step 1 do ( k : n,
p[n] : float(p[n-1] - f(p[n-1])/fl(p[n-1])),
if (abs(f(p[n])) < epsilon) then ( return(p[k])) );
17
(%i10) [k,p[k],f(p[k])];
(%o10) [4, 0.91000766186313,−2.6595183566513469× 10−7]
(%i11) kill(all); reset(); kill(all);
(%i1) a : 3; b : 5;
f(x) := exp(x) - 3*x^2;
fl(x) := exp(x) - 6*x;
epsilon : 1e-5;
N0 : 100;
p[0] : (a+b)/2; k : 0;
(%i1) for n:1 thru N0 step 1 do ( k : n,
p[n] : float(p[n-1] - f(p[n-1])/fl(p[n-1])),
if (abs(f(p[n])) < epsilon) then ( return(p[k])) );
(%i10) [k,p[k],f(p[k])];
(%o10) [4, 3.733079028654685, 4.2448533577044145× 10−10]
(f) p2=0, 588529∈ [0, 1], p3=3, 096363∈ [3, 4] e p2=6, 285049∈ [6, 7]
(%i11) kill(all); reset(); kill(all);
(%i1) a : 0; b : 1;
f(x) := sin(x) - exp(-x);
fl(x) := cos(x) + exp(-x);
epsilon : 1e-5;
N0 : 100;
p[0] : (a+b)/2; k : 0;
(%i1) for n:1 thru N0 step 1 do ( k : n,
p[n] : float(p[n-1] - f(p[n-1])/fl(p[n-1])),
if (abs(f(p[n])) < epsilon) then ( return(p[k])) );
(%i10) [k,p[k],f(p[k])];
(%o10)[2, 0.58852941262635,−4.6202542183237938× 10−6]
(%i11) kill(all); reset(); kill(all);
(%i1) a : 3; b : 4;
f(x) := sin(x) - exp(-x);
fl(x) := cos(x) + exp(-x);
epsilon : 1e-5;
N0 : 100;
p[0] : (a+b)/2; k : 0;
(%i1) for n:1 thru N0 step 1 do ( k : n,
p[n] : float(p[n-1] - f(p[n-1])/fl(p[n-1])),
if (abs(f(p[n])) < epsilon) then ( return(p[k])) );
(%i10) [k,p[k],f(p[k])];
(%o10) [3, 3.096363932421375,−1.0233223990407936× 10−11]
(%i11) kill(all); reset(); kill(all);
(%i1) a : 6; b : 7;
f(x) := sin(x) - exp(-x);
fl(x) := cos(x) + exp(-x);
epsilon : 1e-5;
N0 : 100;
p[0] : (a+b)/2; k : 0;
18
(%i1) for n:1 thru N0 step 1 do ( k : n,
p[n] : float(p[n-1] - f(p[n-1])/fl(p[n-1])),
if (abs(f(p[n])) < epsilon) then ( return(p[k])) );
(%i10) [k,p[k],f(p[k])];
(%o10) [2, 6.285049264874215,−8.5242161697307584× 10−9]
Problema 11. Repita o exercício anterior utilizando o método da Secante.
O método da secante consiste em substituir o cálculo da derivada da função f por uma “aproxi-
mação finita”, dada por f ′(x)≈ f(b)− f(a)
b− a
quando x= a − δ = b+ δ e 0 < δ≪ 1. Neste exercício,
consideraremos p0 = (2a+ b)/3 e p1 = (a+ 2b)/3 como pontos iniciais, sendo [a, b] o intevalo que
contém a raíz dado pelo enunciado. Note que essa escolha é arbitrária.
Novamente, para a implementação, faremos ε= 10−5 e N0= 100.
Como exemplo, temos o algoritmo explicitamente indicado abaixo e, em seguida, as operações
explícitas das primeiras iteradas, para o item (a). Os demais foram obtidos de modo análogo e
apenas a os valores numéricos da sequência [n, pn, f(pn)] com n=0, 1,	 , k está indicada, tal que
k é o menor inteiro em que |f(pk)|<ε.
(a)
(%i1) kill(all); reset(); kill(all);
(%i1) a : 1; b : 2;
f(x) := exp(x) + 2^(-x) + 2*cos(x) - 6;
epsilon : 1e-5;
N0 : 100;
p[0] : float((2*a+b)/3); p[1] : float((a+2*b)/3); k : 0;
(%i1) for n:2 thru N0 step 1 do ( k : n,
p[n] : float( p[n-1] - f(p[n-1])*(p[n-1]-p[n-2])/(f(p[n-1])-f(p[n-2])) ),
if (abs(f(p[n])) < epsilon) then ( return(p[k])) )
(%i10) for n:0 thru k step 1 do (disp([n,p[n],f(p[n])]));
[0, 1.333333333333333,−1.339006695718794]
[1, 1.666666666666667,−0.581976783085]
[2, 1.922921086460217, 0.41484626548166]
[3, 1.816276091425861,−0.053172744190985]
[4, 1.82839228098871,−0.0040625250562822]
[5, 1.829394563702024, 4.4960103105395888× 10−5]
[6, 1.829383592820235,−3.7379484396637963× 10−8]
(%o11) done
PASSO-A-PASSO:
• n=0 e n=1
p0=
2a+ b
3
=1, 33333, f(p0)=−1, 33900, p1= a+2b
3
= 1, 66666, f(p1)=−0, 58197
19
• n=2
p2= p1− f(p1) (p1− p0)
f(p1)− f(p0) = 1, 922921, |f(p2)= 0, 414846|>ε
• n=3
p3= p2− f(p2) (p2− p1)
f(p2)− f(p1) = 1, 816276, |f(p3) =−0, 053172|>ε
• e assim por diante, até n=6 tal que (p4=1, 828392 e p5=1, 829394)
p6= p5− f(p5) (p5− p4)
f(p5)− f(p4) = 1, 829383, |f(p6)=−3, 73794× 10
−8|<ε
(b)
(%i12) kill(all); reset(); kill(all);
(%i1) a : 1.2; b : 2;
f(x) := log(x-1) + cos(x-1);
epsilon : 1e-5;
N0 : 100;
p[0] : float((2*a+b)/3); p[1] : float((a+2*b)/3); k : 0;
(%i1) for n:2 thru N0 step 1 do ( k : n,
p[n] : float( p[n-1] - f(p[n-1])*(p[n-1]-p[n-2])/(f(p[n-1])-f(p[n-2])) ),
if (abs(f(p[n])) < epsilon) then ( return(p[k])) )
(%i10) for n:0 thru k step 1 do (disp([n,p[n],f(p[n])]));
[0, 1.466666666666667, 0.13093290115153]
[1, 1.733333333333333, 0.4327924395202]
[2, 1.350998828254909,−0.10794264552751]
[3, 1.427321225480112, 0.059859925850834]
[4, 1.400094866544541, 0.0049704534535085]
[5, 1.397629414721318,−2.5327175126566015× 10−4]
[6, 1.397748951886167, 1.0122054784345025× 10−6]
(%o10) done
(c)
(%i11) kill(all); reset(); kill(all);
(%i1) a : 2; b : 3;
f(x) := 2*x*cos(2*x) - (x-2)^2;
epsilon : 1e-5;
N0 : 100;
p[0] : float((2*a+b)/3); p[1] : float((a+2*b)/3); k : 0;
(%i1) for n:2 thru N0 step 1 do ( k : n,
p[n] : float( p[n-1] - f(p[n-1])*(p[n-1]-p[n-2])/(f(p[n-1])-f(p[n-2])) ),
if (abs(f(p[n])) < epsilon) then ( return(p[k])) )
20
(%i10) for n:0 thru k step 1 do (disp([n,p[n],f(p[n])]));
[0, 2.333333333333334,−0.32440757322449]
[1, 2.666666666666667, 2.658507501471132]
[2, 2.369585071996235,−0.009687805786293]
[3, 2.370663729463333,−2.0394691604963544× 10−4]
[4, 2.370686925597618, 6.9794253515498283× 10−8]
(%o10) done
(%i11) a : 3; b : 4;
p[0] : float((2*a+b)/3); p[1] : float((a+2*b)/3); k : 0;
(%i11) for n:2 thru N0 step 1 do ( k : n,
p[n] : float( p[n-1] - f(p[n-1])*(p[n-1]-p[n-2])/(f(p[n-1])-f(p[n-2])) ),
if (abs(f(p[n])) < epsilon) then ( return(p[k])) )
(%i17) for n:0 thru k step 1 do (disp([n,p[n],f(p[n])]));
[0, 3.333333333333334, 4.404673575895391]
[1, 3.666666666666667, 0.87013492374774]
[2, 3.748726873988588,−0.44126505995858]
[3, 3.721114930451893, 0.016257675807783]
[4, 3.722096097050512, 2.7187355257840551× 10−4]
[5, 3.722112783935823,−1.7663171147930257× 10−7]
(%o17) done
(d)
(%i18) kill(all); reset(); kill(all);
(%i1) a : 1; b : 2;
f(x) := (x-2)^2-log(x);
epsilon : 1e-5;
N0 : 100;
p[0] : float((2*a+b)/3); p[1] : float((a+2*b)/3); k : 0;
(%i1) for n:2 thru N0 step 1 do ( k : n,
p[n] : float( p[n-1] - f(p[n-1])*(p[n-1]-p[n-2])/(f(p[n-1])-f(p[n-2])) ),
if (abs(f(p[n])) < epsilon) then ( return(p[k])) )
(%i10) for n:0 thru k step 1 do (disp([n,p[n],f(p[n])]));
[0, 1.333333333333333, 0.15676237199266]
[1, 1.666666666666667,−0.39971451265488]
[2, 1.427235030670952,−0.027679317484776]
[3, 1.409421381976789, 0.0056038512922186]
[4, 1.412420646828124,−5.5506949740768974× 10−5]
21
[5, 1.412391230057486,−1.0929101085244142× 10−7]
(%o10) done
(%i11) a : float(exp(1)); b : 4;
p[0] : float((2*a+b)/3); p[1] : float((a+2*b)/3); k : 0;
(%i11) for n:2 thru N0 step 1 do ( k : n,
p[n] : float( p[n-1] - f(p[n-1])*(p[n-1]-p[n-2])/(f(p[n-1])-f(p[n-2])) ),
if (abs(f(p[n])) < epsilon) then ( return(p[k])) )
(%i17) for n:0 thru k step 1 do (disp([n,p[n],f(p[n])]));
[0, 3.145521218972696, 0.16623925729281]
[1, 3.572760609486348, 1.20023735781907]
[2, 3.076832544468293, 0.035667655654329]
[3, 3.061643594060686, 0.0081352268022652]
[4, 3.057155593488045, 9.3009785026243463× 10−5]
[5, 3.057103688899104, 2.4823602484680407× 10−7]
(%o17) done
(e)
(%i1) kill(all); reset(); kill(all);
(%i1) a : 0; b : 1;
f(x) := exp(x) - 3*x^2;
epsilon : 1e-5;
N0 : 100;
p[0] : float((2*a+b)/3); p[1] : float((a+2*b)/3); k : 0;
(%i1) for n:2 thru N0 step 1 do ( k : n,
p[n] : float( p[n-1] - f(p[n-1])*(p[n-1]-p[n-2])/(f(p[n-1])-f(p[n-2])) ),
if (abs(f(p[n])) < epsilon) then ( return(p[k])) )
(%i10) for n:0 thru k step 1 do (disp([n,p[n],f(p[n])]));
[0, 0.33333333333333, 1.062279091752756]
[1, 0.66666666666667, 0.61440070772134]
[2, 1.123934182155312,−0.71274848972444]
[3, 0.87835762475556, 0.092407003320651]
[4, 0.90654223499685, 0.010290692722792]
[5, 0.91007428802497,−1.9853351795706686× 10−4]
[6, 0.91000743553298, 4.075397046499063× 10−7]
(%o10) done
(%i11) a : 3; b : 5;
p[0] : float((2*a+b)/3); p[1] : float((a+2*b)/3); k : 0;
22
(%i11) for n:2 thru N0 step 1 do ( k : n,
p[n] : float( p[n-1] - f(p[n-1])*(p[n-1]-p[n-2])/(f(p[n-1])-f(p[n-2])) ),
if (abs(f(p[n])) < epsilon) then ( return(p[k])) )
(%i17) for n:0 thru k step 1 do (disp([n,p[n],f(p[n])]));
[0, 3.666666666666667,−1.212049335180119]
[1, 4.333333333333333, 19.86452323963724]
[2, 3.705004631117562,−0.53094237734503]
[3, 3.721361518534282,−0.22498004494528]
[4, 3.733389055510208, 0.0060190832390674]
[5, 3.733075657157634,−6.543730758323818× 10−5]
[6, 3.733079027668792,−1.8710871074745228× 10−8]
(%o17) done
(f)
(%i18) kill(all); reset(); kill(all);
(%i1) a : 0; b : 1;
f(x) := sin(x) - exp(-x);
epsilon : 1e-5;
N0 : 100;
p[0] : float((2*a+b)/3); p[1] : float((a+2*b)/3); k : 0;
(%i1)for n:2 thru N0 step 1 do ( k : n,
p[n] : float( p[n-1] - f(p[n-1])*(p[n-1]-p[n-2])/(f(p[n-1])-f(p[n-2])) ),
if (abs(f(p[n])) < epsilon) then ( return(p[k])) )
(%i10) for n:0 thru k step 1 do (disp([n,p[n],f(p[n])]));
[0, 0.33333333333333,−0.38933661377764]
[1, 0.66666666666667, 0.10495268403714]
[2, 0.59588983988315, 0.010173470253652]
[3, 0.58829275278793,−3.3287511928248303× 10−4]
[4, 0.58853345316311, 9.835612988506881× 10−7]
(%o10) done
(%i11) a : 3; b : 4;
p[0] : float((2*a+b)/3); p[1] : float((a+2*b)/3); k : 0;
(%i11) for n:2 thru N0 step 1 do ( k : n,
p[n] : float( p[n-1] - f(p[n-1])*(p[n-1]-p[n-2])/(f(p[n-1])-f(p[n-2])) ),
if (abs(f(p[n])) < epsilon) then ( return(p[k])) )
(%o16) 3.096363633495409
(%i17) for n:0 thru k step 1 do (disp([n,p[n],f(p[n])]));
[0, 3.333333333333334,−0.22624195622274]
[1, 3.666666666666667,−0.52683858179485]
23
[2, 3.08245232206434, 0.013259175058276]
[3, 3.096794540983691,−4.1070734771160577× 10−4]
[4, 3.096363633495409, 2.850946038829294× 10−7]
(%o17) done
(%i18) a : 6; b : 7;
p[0] : float((2*a+b)/3); p[1] : float((a+2*b)/3); k : 0;
(%i18) for n:2 thru N0 step 1 do ( k : n,
p[n] : float( p[n-1] - f(p[n-1])*(p[n-1]-p[n-2])/(f(p[n-1])-f(p[n-2])) ),
if (abs(f(p[n])) < epsilon) then ( return(p[k])) );
(%i24) for n:0 thru k step 1 do (disp([n,p[n],f(p[n])]));
[0, 6.333333333333333, 0.048350906336438]
[1, 6.666666666666667, 0.37287859676988]
[2, 6.283670487129711,−0.0013813569746096]
[3, 6.285084088661371, 3.4880110503015529× 10−5]
[4, 6.285049273461183, 7.8743192521990579× 10−11]
(%o25) done
Problema 12. A equação de iteração do método da Secante pode ser escrita na forma mais simples
pn=
f(pn−1)pn−2− f(pn−2)pn−1
f(pn−1)− f(pn−2)
.
Explique porque essa equação tende a ser menos precisa que
pn= pn−1−
f(pn−1)(pn−1− pn−2)
f(pn−1)− f(pn−2)
.
Sabemos que no cálculo com precisão finita, como no caso da álgebra de ponto flutuante, os erros
de arredondamento e truncamento são, tipicamente, maiores para multiplicações (e divisões) que
para adições (e subtrações). Portanto, uma maneira de se reduzir os erros de arredondamento e
manipular algebricamente as expressões para que um menor número de multiplicações (e divisões)
esteja presenta. Vemos que na primeira forma, o método da secante envolve duas multiplicações,
uma divisão e duas subtrações (5 operações). Na segunda forma, no entanto, exite uma multi-
plicação, uma divisão e três subtrações (também 5 operações). Como o número de produtos na
segunda forma é menor que na primeira, espera-se que a segunda forma seja menos sensível à erros
de arredondamento e truncamento.
Problema 13. A soma de dois numeros é 20. Se a cada número for adicionado à respectiva raiz quadrada, o
produto das duas somas será 155,55. Determine os dois números com precisão 10−4.
Sejam x e y esses números. Então
{
x+ y = 20
(x+ x
√
)(y+ y
√
) = 155, 55
24
Da primeira equação, temos y= 20− x. Substituindo na segunda, temos
f(x) = (x+ x
√
)(20− x+ 20− x√ )− 155, 55=0.
Ou seja, podemos utilizar qualquer método visto até agora para estimar x (e, consequentemente,
y) com precisão de 10−4. Observando que
13+7= 20,
(
13+ 13
√ )(
7+ 7
√ )≈ 160, 17,
14+6= 20,
(
14+ 14
√ )(
6+ 6
√ )≈ 149, 90
temos duas boas aproximações iniciais x0= 13 e x1= 14 (ou x0=7 e x1=6) para x.
Utilizando o método da secante, encontramos
x0= 13 ⇒ |f(x0) = 4, 623018|>ε
x1= 14 ⇒ |f(x1) =−5, 6420479|>ε
x2= 13, 450364 ⇒ |f(x2) = 0, 37401|>ε
x3= 13, 484535 ⇒ |f(x2) = 0, 026738|>ε
x4= 13, 487166 ⇒ |f(x2) =−1, 46209296× 10−4|>ε
x5= 13, 487151 ⇒ |f(x2) = 5, 65559617× 10−8|<ε= 10−4
Assim, x= 13, 4871 e y=6, 5129 são as aproximações para tais números. Note que
(x+ x
√
)(y+ y
√
)= 155, 5505.
Problema 14. O valor acumulado em uma poupança com base em pagamentos regulares pode ser determinado
a partir da equação da anuidade antecipada,
A=
P
i
[(1+ i)n− 1].
Nessa equação, A é a quantia na conta, P é a quantia depositada de forma regular e i é a taxa de juros por
período para n períodos de depósito. Um engenheiro gostaria de ter uma poupança de R$2.000.000,00 ao se
aposentar, depois de 30 anos de trabalho, e pode depositar R$2.000,00 por mês para esse fim. Qual é a taxa de
juros mínima com a qual essa quantia pode ser alcançada, supondo que os juros sejam compostos mensalmente?
Buscamos determinar a taxa de juros i tal que em n= 30×12= 360 meses tenhamos A=2× 106,
com P = 2000. Assim, buscamos uma raiz de
f(i)=
2000
i
[(1+ i)360− 1]− 2000000.
Podemos utilizar o método de Newton, com condição inicial i0=0, 01 (um rendimento mensal de
1%). Derivando, temos
f ′(i)=
2000
i
[360(1+ i)359]− 2000
i2
[(1+ i)360− 1].
Determinamos, portanto, in por
in= in−1− f(in−1)
f ′(in−1)
. n> 1.
25
Temos
n in f(in) f
′(in)
0 0, 01 4, 98992× 106 1, 86375×109
1 0, 007322 1, 50309× 106 8, 71164× 108
2 0, 005597 307.846 5, 41801× 108
3 0, 005029 22.488, 3 4, 64744× 108
4 0, 004980 145, 477 4, 58745× 108
5 0, 004980 � �
Ou seja, a aplicação de R$2.000,00 mensais deve ser ter um rendimento de 0,49% ao mês para que,
ao cabo de 30 anos, a aplicação totalize R$2.000.000,00.
Problema 15. (APS) No projeto de veículos para qualquer tipo de terreno, é necessário considerar falhas do
veículo quando este tenta transpor dois obstáculos. Um tipo de falha é denominado falha de suspensão e ocorre
quando o veículo tenta cruzar um obstáculo onde sua parte inferior toca o chão. Outro tipo de falha é chamado
falha dianteira e ocorre quando o veículo desce em uma vala e sua parte dianteira toca o chão. A figura abaixo
mostra os componentes envolvidos na falha dianteira de um veículo.
Figura 1. Esquema do projeto e cálculo de falhas do veículo.
O ângulo máximo α que pode ser transposto por um veículo quando β é o ângulo máximo para o qual a falha
de suspensão não ocorre satisfaz a seguinte equação
A senα cosα+B sen2α−C cosα−E senα=0,
sendo
A= l sen β1, B= l cos β1, C =(h+0, 5D)sen β1− 0, 5D tanβ1 e E=(h+0, 5D)cos β1− 0, 5D.
a) Afirma-se que quando l=226cm, h=125cm, D=140cm e β1=11, 5
o, o ângulo α é de aproximadamente
33o. Verifique esse resultado.
b) Determine α para a situação em que l, h e β1 tenham os mesmos valores da parte (a) mas D= 76cm.
(a) Fazendo a conversão β1 = 11, 5o =
11, 5pi
180
= 0, 2007 rad(neste caso, podemos manter todas as
unidades em cm), temos:
A = l sen β1= 45, 0571
B = l cos β1= 221, 4619
C = (h+0, 5D)sen β1− 0, 5D tanβ1= 25, 2331
E = (h+0, 5D)cosβ1− 0, 5D= 124, 0250
de tal modo que, com α= 33o=0, 5759 rad, temos
f(α)=A senα cosα+B sen2α−C cosα−E senα=−2, 4374
26
Este resultado, certamente, poderia ser refinado, pois espera-se que f(α) = 0.
(b) Para determinar α nesse caso, calculamos novamente os parâmetros com D= 76, para obter
C = 24, 6350 e E= 121, 0853.
Então, utilizamos algum método iterativo para encontrar a raíz de f(α). Fazemos α0 = 33o = 0,
5759 rad e α1 = 34o= 0, 5934 rad (novamente, escolhas arbitrárias próximas da raiz) e obtemos a
sequência {αk}k=0n pelo método da secante:
k αk f(αk)
0 0, 5759 −0, 334696
1 0, 5934 2, 005414
2 0, 5784 −0, 003344
3 0, 5784 �
, αk=αk−1− f(αn−1)(αn−1−αn−2)
f(αn−1)− f(αn−2)
Assim, o ângulo máximo para que a falha de suspensão não ocorra nesse caso é
α=
180× 0, 5784
pi
= 33, 13o.
27

Outros materiais