Escolar Documentos
Profissional Documentos
Cultura Documentos
Artigo Elementos Da Matemática
Artigo Elementos Da Matemática
2021
Resumo
Neste artigo fizemos um breve apanhado do método de Newton para o caso de uma raiz
múltipla. Implementamos o método no algoritmo convencional e no algoritmo adaptado
a raiz múltipla e comparamos sua velocidade de convergência. Ao final aplicamos o
método ao exemplo prático das vigas.
Introdução
É muito comum nos problemas de cálculo, não conseguirmos determinar soluções
exatas (analiticamente) de diversos problemas. Ao tratarmos de algumas equações, EDO’s,
EDP’s, integrais, podemos eventualmente precisar de métodos numéricos para otimizar os
cálculos de soluções aproximadas e que tenham considerável confiança em seus resultados.
O método de Newton talvez seja o método mais usado para encontrar raízes de
polinômios. Ele nada mais é do que um caso particular do método do Ponto Fixo, ou seja,
é uma forma especial de encontrar uma função de iteração φ(xk ) = xk+1 que foi publicada
por Newton em 1687. Newton pensou numa forma de garantir e acelerar a convergência
do método do Ponto Fixo através da escolha de uma φ(x) tal que φ0 (ξ) = 0, onde ξ é o
ponto fixo de φ. Esse método requer o conhecimento da forma analítica f 0 (x), mas sua
velocidade de convergência é surpreendente.
Precisamente, temos o seguinte teorema
∗
<claudomiro.aguiar@discente.ufma.br>
†
<laurocesar@laurocesar.com>
‡
<fabricio.alves@discente.ufma.br>
§
<erivan.sampaio@discente.ufma.br>
1
Dada uma função f de classe C 2 , num intervalo I que contenha uma raiz ξ tal que
f (ξ) = 0. Se supormos que f 0 (c) 6= 0, sempre existe um intervalo I ⊂ I, contendo a raiz c
de modo que se x0 ∈ I a sequência {xk } gerada pela fórmula recursiva
f (xk )
xk+1 = xk − (1)
f 0 (xk )
Se supomos que existe apenas uma raíz no intervalo I, então método de Newton
pode ser deduzido com base na forma geral das funções de iteração do Ponto Fixo.
Dada uma equação f (x) = 0 e partindo da forma geral para φ(x) deseja-se encontrar
A(x) de forma que φ0 (ξ) = 0.
Assim, φ0 (ξ) = 0 ⇔ 1 + A(ξ)f 0 (ξ) = 0 ⇒ A(ξ) = −1f 0 (ξ), donde A(x) = −1f (x).
Portanto, dada f (x) = 0 a função de iteração de Newton será:
2
Por exemplo, Seja f (x) = ex − x − 1. Então f (x) tem um zero de multiplicidade 2
em x = 0. Com efeito, temos
De modo que
syms x
fa(x)= exp^{x}-x-1
df(x)= diff(fa(x))
erro=10^(-6)
x1=1
n=0
while abs(fa(x1)) > erro
n=n+1
x2 = double(x1-fa(x1)/df(x1))
x1= x2
end
xa=x2
na=n
double(f(xa))
x0 = 1
f (x0 ) e−2
x1 = x0 − 00
=1− ≈ 0, 58198
f (x0 ) e−1
f (x1 ) 0, 20760
x2 = x1 − 00 = 0, 58198 − ≈ 0, 31906
f (x1 ) 0, 78957
x3 = 0.16800
x4 = 0.08635
x5 = 0.04380
x6 = 0.02206
x7 = 0.01107
x8 = 005545
x9 = 2, 7750 × 10−3
3
x10 = 1, 3881 × 10−3
x11 = 6, 9411 × 10−4
x12 = 3, 4703 × 10−4
x13 = 1, 7416 × 10−4
x14 = 8, 8041 × 10−5
x15 = 4, 2610 × 10−5
x16 = 1, 9142 × 10−6
α(x − ξ)p
f (x) = = β(x − ξ)p
p!
α
onde β = p! . Assim, derivando f ficamos com
f (x)
ξ =x−p (3)
f 0 (x)
Desse modo, demonstramos que a raiz ξ com multiplicidade p nada mais é do que
o método de Newton tradicional à menos do número p multiplicando a parcela ff0(x)
(x) em
cada etapa.
Vamos usar o exemplo para ilustrar como a modificação do método de Newton
dada pela equação 3 melhora a velocidade de convergência. Para calcular a sequência de
iterados nesse caso usaremos o algoritmo a seguir.
syms x
fa(x)= exp^{x}-x-1
4
df(x)= diff(fa(x))
erro=10^(-6)
x1=6
n=0
while abs(fa(x1)) > erro
n=n+1
x2 = double(x1-2*fa(x1)/df(x1))
x1= x2
end
xa=x2
na=n
double(f(xa))
x0 = 1
f (x0 ) e−2
x1 = x0 − p · 00
=1−2 ≈ 0, 16395
f (x0 ) e−1
f (x1 )
x2 = x1 − p · 00 ≈ 4, 4781 × 10−3
f (x1 )
x3 ≈ 3, 3423 × 10−6
x4 ≈ 3, 2005 × 10−9
f (x0 )
x1 = x0 − p ·
f 0 (x0 )
5
para k = 0, 1, . . .. Temos também o problema de conseguir aproximar computacionalmente
uma raiz múltipla e também o de saber qual é essa multiplicidade p. No entanto estes
problemas não serão tratados neste trabalho.
Sejam f ∈ C 2 como no Teorema e ξ uma raiz de multiplicidade p de f (x) = 0.
Então a sequência gerada pelo método de Newton converge quadraticamente.
Pela equação temos que
f (xk )
xk+1 = xk −
f 0 (xk )
f (xk )
⇒ xk+1 − ξ = xk − 0 −ξ
f (xk )
f (xk )
⇒ (xk+1 − ξ)p = (xk − ξ)p − p · 0
f (xk )
f (xk )
⇒ ek+1 = ek − p · 0
f (xk )
ek
onde ek = (xk − ξ)p, isto é, xk − ξ = p .
Por outro lado, a fórmula de Taylor de ordem p = 1 de f (x) = 0 em torno de xk é
dada por:
f 00 (ck )(x − xk )2
f (x) = f (xk ) + f 0 (xk )(x − xk ) +
2
com ck entre x e xk . Assim, analisando a fórmula em x = ξ temos que
f 00 (ck )(ξ − xk )2
0 = f (ξ) = f (xk ) − f 0 (xk )(ξ − xk ) +
2
f 00 (c )(ξ − x )2
k k
⇒ f (x) = f 0 (xk )(ξ − xk ) −
2
f (x) f 00 (ck )(ξ − xk )2
⇒ = (ξ − xk ) −
f 0 (xk ) 2f 0 (xk )
f 00 (ck )(ξ − xk )2 f (x)
⇒ = (ξ − xk ) − 0
2f 0 (xk ) f (xk )
p f 00 (ck )(ξ − xk )2 f (x)
⇒ · = p · (ξ − xk ) − p · 0
2 f 0 (xk ) f (xk )
p f 00 (ck ) e2k f (x)
⇒ · 0 · = ek − p · 0 = ek+1
2 f (xk ) p2 f (xk )
1 f 00 (ck ) ek+1
⇒ =
2p f 0 (xk ) e2k
ek+1 1 f 00 (ck ) 1 f 00 (limk→∞ ck ) 1 f 00 (ξ)
lim = lim 0 = = =C
k→∞ e2 k 2p k→∞ f (xk ) 0
2p f (limk→∞ xk ) 2p f 0 (ξ)
6
1.1 O problema das Vigas
Sejam duas vigas de madeira de 20 e 30 metros respectivamente se apoiam nas
paredes de um galpão como mostra a Figura 2. Se o ponto em que se cruzam está a 8
metros do solo, qual a largura do galpão?
y 30 y · EA
= ⇒ x= (4)
x EA 30
Substituindo 5 em 4 obtemos
√
y 64 + x2
x= ⇒ 900x2 − x2 y 2 = 64y 2
30
8y
⇒ x= p (6)
900 − y 2
v !2
u
u 8y 240
EA = t64 + p =p (7)
900 − y 2 900 − y 2
v !2
u
q
2
u 8y
BE = 64 + (y − x) = t64 + y−p (8)
900 − y 2
7
Como os triângulos ABC e AF E são semelhantes temos que
y 20
= ⇒ y · BE + 20x − 20y = 0
y−x BE
!
yEA
⇒ yBE + 20 −y =0
30
2
⇒ y BE + (EA − 30) = 0 (9)
3
Como y > 0 então 0 não é raiz desta equação. Assim, para que a igualdade seja é
verdadeira é necessário que
v !2 !
u
u 8y 2 240
t64 + y−p + p − 30 =0 (11)
900 − y 2 3 900 − y 2
Queremos enfim, resolver a equação 11, pois esta nos dará a largura do galpão.
Aplicando o método de Newton com x0 = 11 e erro ε = 10−6 obtemos, após n = 5 iterações,
a raíz ξ = 17, 98, a qual é a solução do nosso problema. Segue o algoritmo do MATLAB
usado no calculo das iterações
syms x
fa(x)= sqrt(64+(x-(8*x)/(sqrt(64+x^2)))^2)+(2/3)*(240/(sqrt(900-x^2))-30)
pretty(fa(x))
df(x)= diff(fa(x))
erro=10^(-6)
x1=11
n=0
while abs(fa(x1)) > erro
n=n+1
x2 = double(x1-fa(x1)/df(x1))
x1= x2
end
xa=x2
na=n
double(f(xa))
8
Considerações finais
Referências