





























Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Os melhores documentos à venda: Trabalhos de alunos formados
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Comunidade
Peça ajuda à comunidade e tire suas dúvidas relacionadas ao estudo
Descubra as melhores universidades em seu país de acordo com os usuários da Docsity
Guias grátis
Baixe gratuitamente nossos guias de estudo, métodos para diminuir a ansiedade, dicas de TCC preparadas pelos professores da Docsity
metodos numericos de aproximação de funçoes, erros de funções.
Tipologia: Notas de estudo
1 / 37
Esta página não é visível na pré-visualização
Não perca as partes importantes!
Equa¸c˜oes n˜ao lineares
Neste cap´ıtulo vai mostra-se os diferentes m´etodos num´ericos usados na procura de zeros de fun¸c˜oes n˜ao lineares [BF97, Gau97].
Os m´etodos num´ericos que se estudar˜ao neste cap´ıtulo permitem resolver equa¸c˜oes
´e necess´ario fornecer uma aproxima¸c˜ao inicial x 0 para a solu¸c˜ao da equa¸c˜ao f (x) = 0 sendo depois gerado uma sucess˜ao de aproxima¸c˜oes x 1 , x 2 ,.. ., ou {xi}∞ i=1, que convergem para a solu¸c˜ao da equa¸c˜ao, que se designar´a por p. Muitas das sucess˜oes que, muito provavelmente, o leitor conhece s˜ao cons- tru´ıdas atrav´es de algoritmos simples, definidas de uma forma expl´ıcita ou por recorrˆencia.
Exemplo 2.1 (Sucess˜oes convergentes de n´umeros reais).
xn = 1 +^1 n → 0 , n → +∞ yn =
1 + n^1
)n → e, n → +∞
zn = ∑^ n k=
(−1)k+ 2 k − 1 →^ π/^4 , n^ →^ +∞ w 0 = 1, wn+1 = 12 wn − (^2) w^3 n →
3 , n → +∞
2.1 Introdu¸c˜ao 28
Claro que, na grande maioria dos casos, a demonstra¸c˜ao da convergˆencia pouco esclarece sobre o tipo de convergˆencia, isto ´e, se a convergˆencia ´e “r´apida” ou “lenta”. De modo a tornar estes conceitos mais rigorosos veja-se a seguinte defini¸c˜ao.
Defini¸c˜ao 2.1. Dada uma sucess˜ao de pontos {xn}+ 0 ∞convergente para p, por valores diferentes de p, chama-se ordem de convergˆencia α e constante as- simpt´otica de erro λ `as quantidades definidas por
n→^ lim+∞^ | |xxn+1^ −^ p| n −^ p|α^ = λ, (2.1)
se existir e for finito o limite.
Se α = 1 diz-se que a sucess˜ao tem uma convergˆencia linear, ou converge linearmente para p. Se α = 2 a convergˆencia diz-se quadr´atica. Se 1 < α ≤ 2 diz-se que a sucess˜ao tem uma convergˆencia supra-linear.
Exemplo 2.2 (Convergˆencia linear vs convergˆencia quadr´atica). Considere-se as sucess˜oes {xn} e {˜xn} convergentes para 0. A sucess˜ao {xn} converge linear- mente
nlim→∞^ |x |xn+1n| |= 0.^5 ,
e {˜xn} tem uma ordem de convergˆencia quadr´atica
nlim→∞^ |˜x |˜xnn+1|^2 |^ = 0.^5.
Admita-se, por simplicidade, que |xn+1| |xn| ≃^0.^5 ,^
|˜xn+1| |x˜n|^2 ≃^0.^5. No caso da convergˆencia linear, a hip´otese anterior implica que,
|xn − 0 | = |xn| ≃ 0. 5 |xn− 1 | ≃ (0.5)^2 |xn− 2 | ≃ · · · ≃ (0.5)n|x 0 |,
enquanto no caso quadr´atico se obt´em
|x˜n − 0 | = |˜xn| ≃ 0. 5 |˜xn− 1 |^2 ≃ (0.5) [ 0. 5 |x˜n− 2 |^2 ]^2 = (0.5)^3 |x˜n− 2 |^4 ≃ (0.5) 3 [ 0. 5 |x˜n− 3 |^2 ]^4 = (0.5)^7 |x˜n− 3 |^8 ≃ · · · ≃ (0.5)^2 n^ −^1 |˜x 0 |^2 n.
As seguintes instru¸c˜oes em GNU/Octave mostram os valores sucessivos do erro para cada uma das sucess˜oes anteriores
2.1 Introdu¸c˜ao 30
xy wz
Figura 2.1: Gr´aficos das sucess˜oes de definidas no Exemplo 2.
for i=1:n- Kv(i)=(x(i+2)-x(i+1))/(x(i+1)-x(i)); endfor endfunction
´e poss´ıvel obter-se a seguinte tabela
n Kx Ky Kz Kz 1 0.33333 0.48148 -0.6 -0. 2 0.5 0.59014 -0.71429 0. 3 0.6 0.66042 -0.77778 0. 4 0.66667 0.70995 -0.81818 2.6572e- 5 0.71429 0.7468 -0.84615 - 25 0.92593 0.92835 -0.96226 NaN 50 0.96154 0.9622 -0.98058 NaN 75 0.97403 0.97433 -0.98693 NaN 100 0.98039 0.98057 -0.99015 NaN
A tabela anterior mostra bem qual o tipo de convergˆencia associado a cada sucess˜ao.
2.1 Introdu¸c˜ao 31
Na impossibilidade de calcular o limite quando n → +∞ adopta-se os se- guintes crit´erios de paragem de modo a obter uma solu¸c˜ao do problema com uma precis˜ao pr´e-definida, 0 < ǫ < 1:
Cada um dos crit´erios enumerados acima tˆem vantagens e inconvenientes. Por ordem inversa, no caso 3 pode acontecer que |f (xn)| seja muito pequeno e xn ainda esteja longe de p. No caso 2 ´e necess´ario ter-se sempre xn 6 = 0, n ≥ 0, o que nem sempre ´e poss´ıvel. Assim na maioria das aplica¸c˜oes ´e usual usar-se o caso 1. No entanto nem sempre a convergˆencia para zero da distˆancia entre duas aproxima¸c˜oes sucessivas ´e sinal de convergˆencia da sucess˜ao como se pode observar no exemplo seguinte.
Exemplo 2.4 (Crit´erio de paragem: s´erie harm´onica). Considere-se a sucess˜ao
zn = ∑^ n k=
k →^ +∞, n^ →^ +∞.
No entanto |zn+1 − zn| = 1/(n + 1) → 0 , n → +∞.
Assim, dado o exposto acima, ´e sempre necess´ario interpretar os resultados de qualquer aproxima¸c˜ao ou c´alculo num´erico. Para al´em disso uma boa apro- xima¸c˜ao inicial x 0 criteriosamente escolhida tamb´em ´e essencial para a con- vergˆencia r´apida do m´etodo. Esta escolha pode ser feita atrav´es de um estudo pr´evio da fun¸c˜ao cujo zero se quer aproximar, estudo qualitativo da fun¸c˜ao bem conhecido da an´alise matem´atica. Um exerc´ıcio simples que se poder´a fazer ´e estudar a ordem de convergˆencia de alguma sucess˜oes not´aveis da an´alise matem´atica estudadas nos primeiros anos de uma licenciatura em ciˆencias. Verifica-se que, em termos gerais, a quase totalidade das sucess˜oes estudadas s˜ao pouco eficientes para o c´alculo aproximado do valor do seu limite (se for n˜ao trivial). Este coment´ario aplica-se `as sucess˜oes descritas no Exemplo 2.1.
2.2 M´etodo da bissec¸c˜ao 33
ou ainda com o comando inline como foi mostrado anteriormente. Os parˆametros de input s˜ao: os extremos do intervalo a e b, a tolerˆancia tol requerida, a quan- tidade ǫ, e o n´umero m´aximo de itera¸c˜oes Niter. O output ´e dado pela seguinte tabela
format short g; bissec(0,pi/2,100,.01)
Output for the Bisection method
n a b x f(x) 1 0 1.5708 0.7854 -0. 2 0 0.7854 0.3927 0. 3 0.3927 0.7854 0.58905 0. 4 0.58905 0.7854 0.68722 0. 5 0.68722 0.7854 0.73631 0. 6 0.73631 0.7854 0.76085 -0. 7 0.73631 0.76085 0.74858 -0. 8 0.73631 0.74858 0.74245 -0.
The method completed successfully!
Programa 2.2 (M´etodo da bissec¸c˜ao: bissec.m). function bissec(a,b,Niter,tol) disp("") disp ("Output for the Bisection method") disp("") disp (" n a b x f(x)") fa=f(a); for i=1:Niter fb=f(b); x=(b+a)/2; fx=f(x);
disp ([i, a, b, x, fx]);
2.2 M´etodo da bissec¸c˜ao 34
if (fx==0 |(b-a)/2<tol) disp("") disp ("The method completed successfully!") disp("") return; else if (fa*fx>0) a=x; fa=fx; else b=x; endif endif endfor disp("") disp ("The method failed after (Niter)") disp (Niter) disp ("iterations") disp("") endfunction
Exemplo 2.5 (Aplica¸c˜ao do m´etodo da bissec¸c˜ao: f (x) = x^2 − 3 ). Para se poder perceber graficamente, ver Figura 2.2, em que consiste o m´etodo da bissec¸c˜ao considere-se a fun¸c˜ao f (x) = x^2 − 3 no intervalo [1, 3]. Correndo o programa bissec obt´em-se:
bissec(1,3,100,.01)
Output for the Bisection method
n a b x f(x) 1 1 3 2 1 2 1 2 1.5 -0. 3 1.5 2 1.75 0. 4 1.5 1.75 1.625 -0.
2.3 M´etodo da falsa posi¸c˜ao 36
cos(x)−x
Figura 2.3: Gr´afico da fun¸c˜ao f (x) = cos x − x no intervalo ]0, π/2[ e a apro- xima¸c˜ao ao seu zero ¯p = 0.73909.
Apesar da sua simplicidade o m´etodo da bissec¸c˜ao n˜ao garante uma redu¸c˜ao do erro em cada itera¸c˜ao de uma forma mon´otona. Este m´etodo n˜ao tem em con- sidera¸c˜ao o comportamento da fun¸c˜ao f. O facto mais relevante ´e que o m´etodo demora mais do que uma itera¸c˜ao a encontrar o zero de uma fun¸c˜ao linear, a menos que esse zero seja o ponto m´edio do primeiro intervalo considerado.
O m´etodo da falsa posi¸c˜ao ´e um dos m´etodos num´ericos mais antigos. A sua descoberta remonta ao s´eculo quinto nos textos de matem´atica indianos e nos textos medievais ´arabes. A designa¸c˜ao de regula falsi, pela qual tamb´em ´e conhecido, remonta aos s´eculos 16 e 17. Para se construir o m´etodo da falsa posi¸c˜ao admite-se, como no m´etodo da
e f (a)f (b) < 0. Do mesmo modo este m´etodo gera uma sucess˜ao de intervalos, de tamanho cada vez mais reduzido, Ii = [ai, bi] i = 1, 2 ,... onde f (ai)f (bi) < 0. A diferen¸ca est´a em que as sucessivas aproxima¸c˜oes xi n˜ao s˜ao o ponto m´edio
2.3 M´etodo da falsa posi¸c˜ao 37
do intervalo Ii mas solu¸c˜ao da equa¸c˜ao linear
f (ai) + f^ (b bi)i −−^ fa^ i(ai) (x − ai) = 0, x ∈ Ii.
Esta abordagem parece ser mais eficiente que o m´etodo da bissec¸c˜ao j´a que solu¸c˜ao da equa¸c˜ao anterior estar´a mais perto do ponto onde o valor de |f | ´e mais pequeno (talvez seja isto que justifica o nome do m´etodo – falsa posi¸c˜ao). Se f ´e uma fun¸c˜ao linear o m´etodo da falsa posi¸c˜ao converge numa itera¸c˜ao para o zero da fun¸c˜ao. Explicitamente, tem-se ent˜ao, para o m´etodo da falsa posi¸c˜ao
xi = ai − (^) f (aaii)^ −−^ bfi (bi) f (ai), f (ai)f (bi) < 0 , i = 1, 2 ,...
O m´etodo da falsa posi¸c˜ao tem uma convergˆencia linear com constante as- simpt´otica de erro
λ = 1 − (b − p) f^
′(p) f (b). O Programa 2.3 implementa o m´etodo da falsa posi¸c˜ao. Como input tem-se os extremos do intervalo inicial a e b, o n´umero m´aximo de itera¸c˜oes permitido Niter e uma dada tolerˆancia tol.
Programa 2.3 (M´etodo da falsa posi¸c˜ao: regulafalsi.m). function regulafalsi(x,y,Niter,tol) disp("") disp ("Output for the Regula Falsi method") disp("") disp (" n a b x f(x)") for i=1:Niter oldy=y; y=y-f(y)*(y-x)/(f(y)-f(x)); if (f(y)==0 |abs(y-x)<tol) disp("") disp ("The method completed successfully!") disp("") return; else
2.4 M´etodo da secante 39
dos intervalos. Assim dado duas aproxima¸c˜oes iniciais x 0 e x 1 faz-se
xi+1 = xi − (^) f (xxi^ −^ xi−^1 i)^ −^ f^ (xi− 1 )^ f (xi), i = 1, 2 ,...
Esta simplifica¸c˜ao tem como consequˆencia a obten¸c˜ao de um m´etodo que dever´a ter uma ordem de convergˆencia supra linear. De facto a ordem de convergˆencia ´e α = (1 + √5)/ 2 ≃ 1. 61803.. ., n´umero conhecido por n´umero de ouro.
Programa 2.4 (M´etodo da secante: secant.m). function secant(x,y,Niter,tol) disp("") disp ("Output for the Secant method") disp("") disp (" n x err f(x)")
for i=1:Niter if (f(x)==0 |abs(x-y)<tol) disp("") disp ("The method completed successfully!") disp("") return; else epsilon=abs(f(y)(y-x)/(f(y)-f(x))); disp ([i-1,x, epsilon, f(x)]); oldx=y; y=y-f(y)(y-x)/(f(y)-f(x)); x=oldx; endif endfor disp("") disp ("The method failed after (Niter)") disp (Niter) disp ("iterations") disp("") endfunction
2.4 M´etodo da secante 40
Exemplo 2.7 (Aplica¸c˜ao do m´etodo da secante: f (x) = cos x − x).
format short g secant(0,1,10,.0001)
Output for the Secant method
n x err f(x) 0 0 0.31493 1 1 1 0.051226 -0. 2 0.68507 0.0028204 0. 3 0.7363 3.425e-05 0.
The method completed successfully!
Exemplo 2.8 (Compara¸c˜ao: falsa posi¸c˜ao, secante). Considere-se a fun¸c˜ao f (x) = x^2 − 3. E f´´ acil ver a diferen¸ca dos extremos do intervalo onde se encontra o zero da fun¸c˜ao aplicando os m´etodos da falsa posi¸c˜ao e da secante.
x.^2−
Figura 2.4: Trˆes itera¸c˜oes pelo m´etodo da secante.
Para o m´etodo da secante obt´em-se:
secant(0,2,10,.0001)
2.4 M´etodo da secante 42
4 1.7308 2 1.732 -0.
The method completed successfully!
Os comandos para a obten¸c˜ao da Figura 2.5 s˜ao:
clg hold grid a=-.5; b=2.5; x=[a:.01:b]; axis([-.1,2.1,-3.1,1.1]); fplot(’x.^2-3’,[a,b]) y1=f(0)+(f(2)-f(0))/(2-0)(x.-0); y2=f(1.5)+(f(2)-f(1.5))/(2-1.5)(x.-1.5); y3=f(1.7143)+(f(2)-f(1.7143))/(2-1.7143)(x.-1.7143); plot([0 2],[f(0) f(2)],’’) plot([1.5 2],[f(1.5) f(2)],’’) plot([1.5 1.7143],[f(1.5) f(1.7143)],’’) plot(x,y1,’r- ’) plot(x,y2,’g-’) plot(x,y3,’b-’)
Para a Figura 2.4 s˜ao:
clg hold grid a=-.5; b=2.5; x=[a:.01:b]; axis([-.1,2.1,-3.1,1.1]); fplot(’x.^2-3’,[a,b]) y1=f(0)+(f(2)-f(0))/(2-0)(x.-0); y2=f(1.5)+(f(2)-f(1.5))/(2-1.5)(x.-1.5);
2.5 M´etodo Newton 43
y3=f(1.5)+(f(1.7143)-f(1.5))/(1.7143-1.5)(x.-1.5); plot([0 2],[f(0) f(2)],’’) plot([1.5 2],[f(1.5) f(2)],’’) plot([1.5 1.7143],[f(1.5) f(1.7143)],’’) plot(x,y1,’r- ’) plot(x,y2,’g-’) plot(x,y3,’b-’)
O m´etodo de Newton ´e um dos m´etodos mais poderosos para estimar zeros de fun¸c˜oes. A sua particularidade deve-se a usar o comportamento da fun¸c˜ao para obter de uma forma muito eficiente a aproxima¸c˜ao desejada. No entanto este m´etodo “exige” mais da fun¸c˜ao que o m´etodo da bissec¸c˜ao. A recta tangente ao gr´afico da fun¸c˜ao f num ponto (xi, f (xi)) ´e dada por y(x) = f (xi) + f ′(xi)(x − xi).
Como se quer determinar um xi+1 tal que y(xi+1) ≃ 0, obt´em-se
xi+1 = xi − (^) ff ′((xxii)) , i = 0, 1 ,... (2.4)
desde que f ′(xi) 6 = 0. A f´ormula (2.4) permite, fornecendo uma aproxima¸c˜ao inicial x 0 , construir uma sucess˜ao de pontos, xi, i = 0, 1 ,... que convergem, dependendo das propriedades da fun¸c˜ao f , para a solu¸c˜ao da equa¸c˜ao f (x) = 0. E f´´ acil ver que se f (x) = a 1 x + a 0 ent˜ao a regra (2.4) converge para p = −a 0 /a 1 numa itera¸c˜ao. O m´etodo de Newton n˜ao converge em geral para qualquer aproxima¸c˜ao ini- cial x 0 , mas apenas para aquelas suficientemente pr´oximas de p. Uma primeira an´alise revela que esta hip´otese parece absurda, de facto, p n˜ao ´e conhecido. Na pr´atica ´e usual usar-se o m´etodo da bissec¸c˜ao para estimar um intervalo pequeno dentro do qual se pode encontrar o zero e depois aplicar o m´etodo de Newton. Um estudo simples do gr´afico da fun¸c˜ao tamb´em ´e bastante elucidativo para a escolha de uma boa aproxima¸c˜ao inicial. Para uma aproxima¸c˜ao inicial bem escolhida e no caso em que p ´e um zero simples da fun¸c˜ao f , isto ´e, f ′(p) 6 = 0, o m´etodo de Newton tem ordem de
2.5 M´etodo Newton 45
else epsilon=abs(x-xo); disp ([i-1, xo, epsilon, f(xo)]); xo=x; endif endfor disp("") disp ("The method failed after (Niter)") disp (Niter) disp ("iterations") disp("") endfunction
Exemplo 2.9 (Aplica¸c˜ao do m´etodo de Newton: f (x) = cos x − x). Considere-se a fun¸c˜ao f (x) = cos x − x no intervalo [0, π/2] anteriormente considerada no m´etodo da bissec¸c˜ao no exemplo 2.5. No caso do m´etodo de Newton com uma aproxima¸c˜ao inicial xo=.5 o output ´e:
newton(.5,10,.01)
Output for the Newton method
n x err f(x) 0 0.5 0.25522 0. 1 0.75522 0.016081 -0.
The method completed successfully!
Este exemplo mostra bem a r´apida convergˆencia para o zero da fun¸c˜ao f.
Defini¸c˜ao 2.2. Diz-se que p ´e um zero de multiplicidade m de uma fun¸c˜ao
f (p) = f ′(p) = f ′′(p) = · · · = f (m−1)(p) = 0, f (m)(p) 6 = 0. No caso de zeros da fun¸c˜ao com multiplicidade m maior do que um perde-se a convergˆencia quadr´atica do m´etodo. Nestes casos ´e necess´ario modificar o
2.5 M´etodo Newton 46
m´etodo de forma a recuperar a convergˆencia quadr´atica
xi+1 = xi − m ff ′^ ((xxi) i)^ , i = 0, 1 ,... (2.5)
onde f ′(xi) 6 = 0. Como ´e claro a escolha do valor de m adequado depende um conhecimento a priori do comportamento da fun¸c˜ao em p.
Exemplo 2.10 (Perda de convergˆencia para zeros m´ultiplos: m´etodo de Newton). Considere-se a fun¸c˜ao f (x) = ex^ − x − 1 que tem um zero com multiplicidade dois em p = 0. Aplicando o m´etodo de Newton obt´em-se
newton(1,16,.001)
Output for the Newton method
n x err f(x) 1 0.58198 0.41802 0. 2 0.31906 0.26292 0. 3 0.168 0.15106 0. 4 0.086349 0.081647 0. 5 0.043796 0.042553 0. 6 0.022058 0.021738 0. 7 0.011069 0.010988 6.1492e- 8 0.0055449 0.0055245 1.5401e- 9 0.002775 0.0027699 3.8539e- 10 0.0013881 0.0013869 9.6392e-
The method completed successfully!
Claramente a sucess˜ao de valores gerados n˜ao tem uma convergˆencia quadr´atica.
E poss´^ ´ ıvel estender o m´etodo de Newton estudado na sec¸c˜ao anterior a sistemas de equa¸c˜oes n˜ao lineares. De modo a se perceber melhor o m´etodo de Newton