aritimetica ponto flutuante e erros
TRANSCRIPT
-
8/6/2019 Aritimetica Ponto Flutuante e Erros
1/8
1
Clculo NumricoFaculdade de Cincias Sociais Aplicadas e Comunicao FCSAC
Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU
Prof. Dr. Sergio Pilling (IPD/ Fsica e Astronomia)
REVISO DA 1 PARTE DO CURSO
1 Aritmtica de Ponto Flutuante e Erros em Maquinas digitaisa. Notao ponto flutuanteb. Converso decimal binrioc. Principais fontes de erros de maquinas digitais (Mantissa finita)d. Erro absoluto e erro relativo
d1. Erros em operaes aritmticasd2. Erros devido a representao truncada ou arredondada dos nmeros
2 Mtodos iterativos para achar zeros (razes) de funes reaisa. Identificando intervalos que contem razes de funes.b. Quando parar de fazer as contas? Critrios de paradac. Mtodos iterativos
- Met. Bisseco- Met. Posio Falsa- Met. Ponto Fixo- Met. Newton- Met. Secante.
3 - Mtodos numricos para resolver sistema de equaes.a. Met. Direto de eliminao de Gauss.b. Met. Iterativos.
- Critrios de parada- Mtodo de Gauss-Jacobi- Mtodos de Gauss-Seidel
c. Critrios de convergncia dos Met. Iterativos: Linhas para o met. Gauss-Jacobi e Sassenfeld para omet. Gauss-Seidel
-
8/6/2019 Aritimetica Ponto Flutuante e Erros
2/8
2
1 Aritmtica de Ponto Flutuante e Erros em Maquinas digitais
Como um mquina digital armazena um nmero internamente:
(N)10 Not. Ponto flutuante (exp)10 Converso para binrio (exp)2 Palavra do(mantissa)10 (mantissa)2 Computador
a. Notao ponto flutuante
- t =mantissa
- o que overflow?
- o que underflow?
b. Converso decimal binrioEx3. (23)10 (x)2 Usando o mtododas divises sucessivas.
23 21 11 2 Resposta: (x)2 = (10111)2
1 5 2
1 2 2
0 1
Ex5. (0,1875)10 (x)2 Usando o mtododas multiplicacoes sucessivas.
0,1875 0,3750 0,750 0,50 Resposta: (x)2 = (0,0011)2x 2 x 2 x 2 x 2
0,3750 0,750 1, 50 1, 00
Ex7. (23,1875)10 (10111,0011)2
Leitura
Dividir at que o ltimo quociente
seja menor que a base
Parar quando no existir mais a
parte fracionriaLeitura
Parte inteira: Mtodo da diviso sucessiva
Parte fracionria: Mtodo da multiplicao sucessiva
t
t
01010010101010101
exp mantissa
-
8/6/2019 Aritimetica Ponto Flutuante e Erros
3/8
3
Ex9. (110,11)2 (x)10 Usando o mtododas multiplicaes pelas potencias da base
(110,11)2 = 1x22
+ 1x21
+ 0x20
+ 1x2-1
+1x2-2
= 6,75 = (6,75)10
c. Principais fontes de erros de maquinas digitais (Mantissa finita)c1. Representao infinita de um numero binrio!
(0,11)10 = (0,000111000010100011110101110000101000111101............)2
Numa maquina com 6 digitos na matissa teremos:
(0,11)10 (0,000111)2 (0,109375)10
c2. Mantissa finita para representao de nmeros!
d. Erro absoluto (EA) e erro relativo (EA)
|| xxEAx = xxx
x
EAER xx
==
onde x o valor preciso e x o valor aproximado (armazenado na mquina). x pode ser ainda um valor
truncado ou arredondado.
d1. Erros em operaes aritmticas (propagao dos erros)i) Propagao dos erros absolutos:
Soma e Subtrao Multiplicao Diviso
ii) Propagao dos erros relativos:
Soma e Subtrao Multiplicao Diviso
onde o fator , associado ao erro devido ao fato do computador trabalhar com nmeros truncados ouarredondados dado por:
= 10-t+1 (no caso de truncamento)
= 10-t+1 (no caso de arredondamento)
4 + 2 + 0 + 1/2 + 1/4
d2
d0
d -1
Repeties
Truncado
||)( yxyx EAEAEA = ||)( xyxy EAyEAxEA += 2)/( y
EAx
y
EAEA
yx
yx =
+
= yxyx ERyx
yER
yx
xER )( += ||)/( yxyx ERERER++= ||)( yxxy ERERER
t = nmero de dgitos da mantissa
-
8/6/2019 Aritimetica Ponto Flutuante e Erros
4/8
4
2 Mtodos iterativos para achar zeros (razes) de funes reaisa. Identificando intervalos que contem razes de funes.
Seja f(x) contnua num intervalo [a,b]- Se f(a)f(b) < 0 existe PELO MENOS uma raiz dentro desse intervalo.- Se f(a)f(b) > 0 existe 1 nica raiz dentro desse intervalo.
b. Quando parar de fazer as contas? Quando se atingir a preciso desejada.- Critrios de paradas dos mtodos iterativos
b1. Nos mtodos com intervalo inicial I=[a,b] (Bisseco e posio falsa). Paramos de fazer a conta quandof(xk)< ou bk-ak< . Qualquer uma das duas condies, a que vier primeiro!
b2. Nos mtodos com chute inicial (MPF, Newton ou Secante). Paramos de fazer a conta quando
f(xk)< ou |xk xk-1| < . Qualquer uma das duas condies, a que vier primeiro!
Em geral (preciso estipulada) um nmero muito pequeno, por exemplo, ~ 0,000001 = 10-6
c. Os mtodos iterativos.- Mecanismos de iterao dos Mtodos de obteno de zeros de funes reais:I) Mtodo da Bisseco
A cada iterao diminui-se o intervalo tomando uma media dos valores anteriores.
Numero de iteraes no mtodo da bisseco:
II) Mtodo da Posio Falsa
Intervalo inicial
2)( kkkk
baxx
+==
Funo recursiva
)()(
)()()(
kk
kkkkkk
afbf
afbbfaxx
==Funo recursiva
-
8/6/2019 Aritimetica Ponto Flutuante e Erros
5/8
5
Os mtodos da bissecao e da Posio Falsa tem convergncia garantida pois os intervalos a cadainterao sempre contem a raiz. Para ambos os mtodos temos o seguinte esquema iterativo:
Paramos de fazer a conta quando satisfeito o critrio de parada f(xk)< ou bk-ak < , o que vierprimerio e a soluo aproximada ser x =xk
III) Mtodo da Ponto Fixo (MPF)
Transformar f(x)=0 numa equao equivalente x=(x) ea partir de um chute inicial x0 gerar uma seqncia { xk}
de aproximaes atravs da relao
xk+1 = (xk)Graficamente, uma raiz da equao x=(x) a abscissado ponto de intercesso da reta y =x e da curva y=(x)
OBS: Esse mtodo nem sempre converge. Uma condio para convergncia que a funo equivalente
escolhida tenha uma inclinao baixa nas proximidades da raiz, ou seja, que |(xk) | < 1 nas proximidades daraiz . Alem disso, a convergncia ser mais rpida quanto menor for ()
IV) Mtodo de Newton ou Newton-RaphsonEsse mtodo bem parecido com o MPF, contudo para
acelerar a convergncia escolhe-se uma () tal que()= 0. Nesse mtodo utilizamos a expresso abaixo no oprocesso iterativo:
onde xk=0 um chute inicial para a raiz
OBS: Esse mtodo nem sempre converge. Se f (xk) ~ 0 o mtodo pode divergir.
Chute
inicial
tangente
Funo recursiva
a0 x0 b0
Sinal da fun o
a1 x 1 b1
Sinal da fun o a2 x 2 b2
Sinal da fun o
.
.
.
Funo recursiva
xk+1 = (xk)
-
8/6/2019 Aritimetica Ponto Flutuante e Erros
6/8
6
IV) Mtodo da SecanteUma das desvantagens no mtodo de Newton a
necessidade de se obter f(x) e calcular seu valor numrico
a cada iterao, nesse mtodo a derivada da funo
aproximada pela expresso abaixo:
onde xk=0 xk=1 so chutes iniciais para a raiz. Nesse
mtodo utilizamos a expresso abaixo no o processo
iterativo:
OBS: Se nesse ltimo mtodo tivermos f(xk) ~ f(xk-1) o mtodo pode divergir!
3 Mtodos numricos para resolver sistemas de equaes lineares
a. Mtodo direto de eliminao de Gauss
Sistema Matriz sanduche Aplicar estratgias para pivoteamento (parcial ou total) Triagularizar a matriz sanduche (Calcular o fator multiplicado e realizar operacoes envolvendo aslinhas) Soluo trivial (de baixo pra cima)Obs. Nas estratgias de pivoteamento parcial trocar a posio de linhas e na estratgia de pivoteamento parcial
trocar a posio de colunas. Antes de eliminar os termos da prxima coluna aplicar as estratgias de
pivoetamento novamente se necessrio.
Exemplo de operaes:
b. Mtodos Iterativos
Sistema Verificar se tem convergncia garantida para um dado mtodo (critrio das linhas ouSassenfeld) Escrever o sistema equivalente (isolar xi de cada linha i) Aplicar o mtodo escolhido parar o clculo ao atingir o critrio de parada.Obs. Se o critrio de verificao de convergncia falhar, trocar a posio das linhas e colunas do sistemae aplicar o critrio de verificao novamente.
Chutes
iniciais
tangente
secante
xk+1 = (xk;xk-1) =Funo recursiva
-
8/6/2019 Aritimetica Ponto Flutuante e Erros
7/8
7
Exerccio resolvido mostrando uma comparao entre dois mtodos iterativos: Calcule as duas primeirasiteraes dos mtodos Gauss-Jacobi e Gauss-Seidel do sistema linear abaixo:
4x1 + 2x2 9x3 = 7
5x1 6x2 8x3 = 3
1x1 2x2 + 15x3 = 5
x1(0)
1
Use como chute inicial o vetor (matriz coluna) x(0)
= x2(0)
= 2x3
(0)3
Etapa inicial Isolar os xi de cada linha i e escrever o sistema de equaes equivalentes.
4x1 + 2x2 9x3 = 7 x1 = + 7 2x2 + 9x3
5x1 6x2 8x3 = 3 4
1x1 2x2 + 15x3 = 5
x2 = + 3 5x1 + 8x3
- 6x
3 = 5 1x
1+ 2x
2
15
Abaixo temos um diagrama mostrando de forma esquemtica a dependncia de cada um dos termos nas trs
primeiras iteraes de uma matriz A:3x3 dos mtodos de Gauss-Jacobi e Gauss-Seidel.
Mtodo de Gauss-Jacobi Mtodo de Gauss-Seidel1(0)
x1(1)
x1(2)
x1(3)
x1(0)
x1(1)
x1(2)
x1(3)
x2(0)
x2(1)
x2(2)
x2(3)
x2(0)
x2(1)
x2(2)
x2(3)
x3(0)
x3(1)
x3(2)
x3(3)
x3(0)
x3(1)
x3(2)
x3(3)
Segue abaixo exemplos para o calculo das trs primeiras iteraes (x(1)
,x
(2)e
x
(3)) pelo
mtodo de Gauss-Jacobi usando como chute inicial:
x1(1)
= (+ 7 2x2(0)
+ 9x3(0)
)/4 = 7.50x2
(1)= (+ 3 5x1
(0)+ 8x3
(0))/(-6) = -3.667
x3(1)
= ( 5 1x1(0)
+ 2x2(0)
)/(15) = -0.133
x1(2)
= (+ 7 2x2(1)
+ 9x3(1)
)/4 = 3.882
x2(2)
= (+ 3 5x1(1)
+ 8x3(1)
)/(-6) = 5.572
x3(2)
= ( 5 1x1(1)
+ 2x2(1)
)/(15) = -1.322
x1(3)
= (+ 7 2x2(2)
+ 9x3(2)
)/4 = -4.010
x2(3)
= (+ 3 5x1(2)
+ 8x3(2)
)/(-6) = 4.497x3
(3)= ( 5 1x1
(2)+ 2x2
(2))/(15) = 0.150
x1(3)
-4.010
x(3) = x2(3) = 4.497
x3(3)
0.150
x1(1)
7.50x(1)
= x2(1)
= -3.667
x3(1)
-0.133
x1(2)
3.882
x(2)
= x2(2)
= 5.572
x3(2)
-1.322
-
8/6/2019 Aritimetica Ponto Flutuante e Erros
8/8
8
Segue abaixo exemplos para o calculo das trs primeiras iteraes (x(1)
,x
(2)e
x
(3)) pelo
mtodo de Gauss-Seidel usando como chute inicial:
x1(1)
= (+ 7 2x2(0)
+ 9x3(0)
)/4 = 7.50
x2(1)
= (+ 3 5x1(1)
+ 8x3(0)
)/(-6) = 1.75
x3(1)
= ( 5 1x1(1)
+ 2x2(1)
)/(15) = -0.60
x1(2)
= (+ 7 2x2(1)
+ 9x3(1)
)/4 = -0.475
x2(2)
= (+ 3 5x1(2)
+ 8x3(1)
)/(-6) = -0.095
x3(2)
= ( 5 1x1(2)
+ 2x2(2)
)/(15) = -0.314
x1(3)
= (+ 7 2x2(2)
+ 9x3(2)
)/4 = 1.091
x2(3)
= (+ 3 5x1(3)
+ 8x3(2)
)/(-6) = 0.827
x3(3)
= ( 5 1x1(3)
+ 2x2(3)
)/(15) = -0.295
Se for dada uma preciso quando parar de fazer os clculos? Quando tivermos satisfeito o critrio deparada.
Critrio de paradaDistancia relativa entre duas iteraes numa certa etapa k, d
(k), deve ser menor que
Obs: No exemplo anterior no fizemos nenhum teste para saber se os mtodos iterativos teriam convergncia assegurada ou no. Na prtica antes de utilizarmos esses mtodosnuma maquina digital verificamos se ocritrio das linhas satisfeito (no caso da utilizaoo mtodo de Gauss-Jacobi) ou ocritrio de Sassenfeld(no caso da utilizao do mtodo deGauss-Seidel).
Critrio das linhas (i < 1) Critrio de Sassenfeld (i < 1)
x1(1)
7.50
x(1)
= x2(1)
= 1.75
x3(1)
-0.60
x1(2)
-0.475
x(2)
= x2(2)
= -0.095
x3(2)
-0.314
x1(3)
1.091
x(3)
= x2(3)
= 0.827
x3(3)
-0.295
(ex A:4x4)