Slides utilizados nas aulas - DCA

Propaganda
Universidade Federal do Rio Grande do Norte
Métodos Computacionais
Marcelo Nogueira
Raízes de Equações Algébricas
Achar a raiz de uma função significa achar um
número tal que 0
Algumas funções podem ter suas raízes calculadas
analiticamente, porém outras são de difícil solução
(algumas funções transcendentes, por exemplo) ou de
solução desconhecida (polinômios de ordem maior que 4,
por exemplo), sendo necessário a solução por métodos
numéricos
Passos para a solução numérica
Achar um intervalo fechado [a,b] que contenha somente uma
solução
Refinar a raiz até o grau de exatidão requerido
Isolamento de raízes
Se uma função contínua assume valores de sinais
opostos entre o intervalo [a,b], então a função possui pelo
menos uma raiz neste intervalo
Teorema do valor médio
Se a derivada da função preservar o sinal dentro do
intervalo, ou seja, se a função for estritamente crescente ou
estritamente decrescente, a raiz será única
Pode-se estimar o intervalo [a,b] pelo esboço do gráfico da
função ou pela construção de tabelas para análise da
variação do sinal da função
Isolamento de raízes por esboço do gráfico
Dada a função f, o ponto 0 é
exatamente o ponto onde a função cruza o eixo
y
a
x0
b
x
Caso a função f(x) seja complexa, podemos tentar
escrevê-la na forma Supondo f 0 teremos
g (ξ ) − h (ξ ) = 0 ⇒ g (ξ ) = h (ξ )
Dessa forma, podemos traçar os gráficos das
funções e e o ponto de interseção destes
irá nos fornecer a raiz da função y
h(x)
ξ
g(x)
x
Ex 1: trace o gráfico e determine um intervalo que
contenha raízes de 2
Quadro
Solução Ex 1
2 g 2
Raiz no intervalo [0,5; 1,5]
Exercício 1: trace o gráfico e determine um intervalo
que contenha raízes das seguintes funções:
1
log Critérios de parada
Procedimentos iterativos
Para quando atingir um determinado critério
Existem vários tipo de critérios de parada
Analise do valor da função: f (x ) < δ
Erro absoluto:
Erro relativo:
xi − xi −i < δ
xi − xi −i
<δ
xi
b−a
<δ
2
Número de iterações
Limites do intervalo:
Método da bisseção
Seja uma função contínua no intervalo [a,b]
e · 0, dividindo o intervalo ao meio,
obtém-se x0.
Caso f ( x0 ) = 0, ξ = x0
Caso contrário,
Se f (a ) ⋅ f ( x0 ) < 0 então a raiz está no intervalo [a, x0 ]
Se f ( x0 ) ⋅ f (b) < 0 então a raiz está no intervalo
[x0 ,b]
Divide-se novamente o intervalo obtendo x1 e
assim sucessivamente até a precisão desejada
y
a
x1
x0
b
x
Convergência
Chamando os intervalos de a1,b1,a2,b2,...,an,bn então:
Se
então
bn − a n
b − a
=
2 n +1
bn − an ≤ ε
b − a
≤ ε
n +1
2
3
Ex 2: Achar a raiz da equaçãof ( x) = x − 10
no intervalo [2,3] com o erro absoluto δ < 0,1
Quadro
Solução Ex 2:
3
Raiz de f ( x) = x − 10 em [2,3] com δ < 0,1
f (2) ⋅ f (3) = −2 ⋅17 < 0
OK!
x0 = (2 + 3) / 2 = 2,5 → f (2,5) = 5,62
x1 = (2 + 2,5) / 2 = 2,25 → f (2,25) = 1,39
x2 = (2 + 2,25) / 2 = 2,125 → f (2,125) = −0,40
x3 = (2,125 + 2,25) / 2 = 2,1875 → f (2,1875) = 0,46
ε = 2,18 − 2,12 = 0,06
Exercício 2: Calcular a raiz de ln com o
erro relativo 0,1
Exercício 3: Utilize o método da bisseção para calcular
5.
Solução Exercício 2: intervalo da raiz [0,5; 1]
em torno de 0,65
Solução Exercício 3: achar a raiz de 5 0
5 # 5 #
Exercício 4: Utilize os intervalos calculados no Exercício 1 para cada
uma das funções e calcule uma raiz aproximada, utilizando o método
da bisseção
1
log Exercício 5: uma gamela (barril serrado ao meio ao longa da altura) de
comprimento $ e secção transversal semicircular com raio %, cheia de
água até uma distancia do topo tem volume dado por:
& $'0.5)% % %
% *.+ ,
%
Suponha que $ 10, % 1 e & 12.4 e
calcule a profundidade da água na gamela.
O método sempre converge para uma solução
O esforço computacional do método da bisseção
cresce demasiadamente quando se aumenta a
exatidão da raiz desejada
Deve ser usado apenas para diminuir o intervalo
que contém a raiz para posterior aplicação de outro
método, como o método das cordas ou o método
de Newton, por exemplo
Algoritmo Bisseção
Entrada: intervalo [a,b], tolerância e número máximo de iterações N
cont=0
enquanto (b-a)/2 > e cont<N
raiz = a + (b-a/2); //o mesmo que (a+b)/2, mas com menos erro
se f(a)*f(raiz)<0
b = raiz
senao
a = raiz
fim_se
cont = cont+1;
fim_enquanto
Saída(“Apos “, i,” iteracoes, o intervalo final é [“,a, ” , ” , b, ”]”)
Método das cordas
È semelhante ao método da bisseção
A derivada segunda do método, .., deve ter
sinal constante no intervalo
O intervalo [a,b] não é dividido ao meio, mas sim
em partes proporcionais a razão − f (a) / f (b)
Apenas um dos valores do intervalo é atualizado,
gerando uma sequencia de de intervalos ', / ,(ou
', / ,), onde / são aproximações da raíz da
equação
Existem duas possibilidades:
x0 = a −
f (a)
( a − b)
f (a) − f (b)
x0 = b +
f (b)
(b − a )
f (a) − f (b)
Podemos substituir essas duas equações pela equação
f ( xn )
xn +1 = xn −
( xn − c )
f ( xn ) − f ( c )
onde c é um ponto da função onde esta tem o mesmo sinal
de sua derivada segunda ( f (c) ⋅ f ′′(c) > 0 )
Ex: Achar a raiz da equação f ( x) = x 3 − 10
no intervalo [2,3] com o critério de parada de análise
do valor da função / 0,1
Quadro
Solução
f ( x) = x 3 − 10
f ' ' ( x) = 6 x
Escolha do ponto c
2 · 88 2 2 · 12 24 0 Não é o ponto c
3 · 88 3 17 · 18 306 = 0 OK! Então c=3 e * 2
x0 = 2 −
f (2)
−2
(2 − 3) = 2 −
(−1) = 2,11 → f (2,11) = −0,74
f (2) − f (3)
− 19
f (2,11)
(2,11 − 3)
x1 = 2,11 −
f (2,11) − f (3)
− 0,74
= 2,11 −
(−0,89) = 2,15 → f (2,15) = −0,07
− 17,74
> =0,1
Continua…
> <0,1
Parou!
• Podemos ver que o método das cordas converge bem
mais rápido que o método da bisseção
Exercício: Ache uma aproximação da raiz da função
2 no intervalo [0.5; 1.5] com um
erro absoluto de ? 0.01
Algoritmo Cordas
Entrada: intervalo [a,b], tolerância e número máximo de iterações N
se f(a)*f’’(a)>0
rn = b; //raiznova
c=a;
senão
rn = a;
c=b;
fim_se
ra=c;
//raizantiga
cont=1
enquanto |rn - ra|/|rn| > e cont<N
ra=rn;
rn = ra - f(ra)/(f(ra) - f(c))*(ra - c);
cont = cont + 1;
fim_enquanto
Saída(“Apos “, i,” iteracoes, a raiz calculada foi “,rn)
Método de Newton
Supondo uma aproximação 0 para a raiz de , no ponto
0, 0 passa apenas uma única reta tangente, que é a
derivada de em 0. Esta reta tangente corta o eixo na
coordenada 1,definindo por sua vez, o ponto 1, 1
Por este novo ponto também passa uma única reta tangente
que corta o eixo em 2. Esta nova coordenada define
outro ponto 2, 2 que repete todo o processo
0, 1, … são aproximações cada vez melhores para a raiz da
função
Pela figura temos que tan(θ ) =
f ( xi )
f ( xi )
⇒ xi +1 = xi −
xi − xi +1
tan(θ )
Já que f ′( x) = tan(θ ) podemos concluir
f ( xi )
xi +1 = xi −
f ′( xi )
Exige o conhecimento
da derivada segunda
da função
Usando a formula de Taylor (em torno de * )
* 8 * *
88 * *
2!
B
Se CD for suficientemente próximo da raiz da função, ,
então podemos desconsiderar os termos * E , = 1
0 * 8 * *
Uma aproximação para a raiz será dada por (chamando
esta aproximação de > )
* > * . *
Convergência
Caso se escolha 0 de forma que 1 saia do intervalo
', , o método poderá não convergir.
Caso f ′(x ) e f ′′(x ) sejam não nulas e preservem o
sinal no intervalo e 0 seja tal que
f ( x0 ) ⋅ f ′′( x0 ) > 0
a convergência é garantida (se as derivadas não tiverem
sinal constante, o método pode ou não convergir).
Ex: Ache a raiz da equação ln para o erro
relativo F 0,001 (ou seja):
/G> /
F
/G>
Quadro
Se
f ( x ) = x 2 + ln( x )
Então
1
1
f ′′( x) = x − 2
f ′( x ) = 2 x +
x
x
Plotando o Gráfico, podemos ver que a raiz
está próxima de 0,5. Podemos fazer * 0,5?
0 0,5 pois f (0,5) ⋅ f ′′(0,5) = −0,44 ⋅ −3,5 = 1,54 > 0
f ( 0,5)
− 0, 44
0 , 65 − 0 ,5
= 0 . 23 > 0 , 01
x 1 = 0 ,5 −
= 0 ,5 −
= 0,65
0 ,65
f ′ ( 0 ,5 )
3
Continua…
f (0,65)
x 2 = 0,65 −
= 0,65 0 , 65 − 0 ,65 = 0 < 0 ,01 Parou!
f ′(0,65)
0 , 65
Exercício: Ache uma aproximação da raiz da função
10 H 2 com um erro absoluto de
? 0.01
Algoritmo Newton
Entrada: * , tolerância e número máximo de iterações N
se f * I 88 * 0
saida(“convergencia não garantida. Abortando”)
senão
rn=* ;
//raiz nova
cont=1
faça
ra=rn; //raiz antiga = raiz nova
rn = ra - f(ra)/f’(ra);
i = i+1;
enquanto |rn - ra|/|rn| > e cont < N
Saída(“Apos “, i,” iteracoes, a raiz calculada foi “,rn)
fim_se
Método da Secante
Uma modificação do método de Newton que
substitui o a derivada da função pela equação
f ′( x i ) =
f ( x i −1 ) − f ( x i )
x i −1 − x i
Substituindo o novo valor da derivada na formula de
Newton, a fórmula do método da secante fica da seguinte
maneira
São necessários dois pontos iniciais(xi e xi-1)
Semelhante ao método das cordas, mas agora o ponto não
é mais fixo
Ex: Determine a raiz da função J com erro
absoluto de ? 0.05
Solução
J Intervalo com uma raiz: 0 1 e 1 0. 632, portanto
existe uma raiz no intervalo [0,1]
* 0 > 1
0.632 · 1
> * >
1
0.613
> 1 0.632
* > | > | 0.4 = 0.05 Continua…
0.6127 0.071
> 0.071 · 1 0.613
H 0.613 0.632 0.071
> 0.564
H 0.049 0.05 Parou!
Algoritmo Secante
Entrada: * , > , tolerância e número máximo de iterações N
se f * I 88 * 0
saida(“convergencia não garantida. Abortando”)
senão
ra2=* ;
ra1=> ;
//raiz antiga 1 e 2
cont=1
faça
rn = ra1 - f(ra1)(ra2-ra1)/(f(ra2)-f(ra1));
ra2=ra1;
ra1=rn;
cont = cont+1;
enquanto |rn – ra1|/|rn| > e cont < N
Saída(“Apos “, i,” iteracoes, a raiz calculada foi “,rn)
fim_se
Exercício: Considere a série M 1 H N B , que converge para 1 1.
a) Para calcular o valor de que leva a série a convergir
para o valor 1.5 podemos utilizar quais métodos?
Escolha um e calcule com erro absoluto menor que
0,01. Quais tipos de erro estamos cometendo neste
calculo?
b) Utilizando a formula fechada M >
,
>J
verifique que
podemos utilizar o método de Newton no intervalo
[0; 0,99] e o utilize para calcular novamente o valor de
com a mesma precisão.
c) Compare o esforço e os resultados obtidos em a) e b)
com o valor real .
Comparação entre os métodos
O método da bisseção é bastante simples por não exigir o
conhecimento da derivada da equação em questão, porém
possui uma convergência lenta
O método das cordas exige que o sinal da derivada segunda
permaneça constante no intervalo, porém, se o ponto
inicial c estiver suficientemente próximo da raiz
( f ( c ) < 10) o método apresenta uma convergência bem
mais rápida que o método da bisseção
O método de Newton é o que apresenta a convergência
mais rápida, porém exige o conhecimento da derivada
analítica da função em questão
O método da Secante é menos rápido que o de Newton,
porém não exige o conhecimento da derivada analítica da
função em questão
Download