Baixe o app para aproveitar ainda mais
Prévia do material em texto
GEX114 - Ca´lculo Nume´rico Profa.Dra.Amanda Castro Oliveira Departamento de Cieˆncias Exatas - DEX/UFLA amanda@dex.ufla.br Aula 4- 1.5 Erros Uma ma´quina representa um nu´mero real no sistema denominado aritme´tica de ponto flutuante. Neste sistema, o nu´mero x sera´ representado na forma: ±(.d1d2 · · · dt) ∗ βe onde: β e´ a base em que a ma´quina trabalha; t e´ o nu´mero de d´ıgitos na mantissa,t ∈ N; 0 ≤ dj ≤ (β − 1),j = 1, · · · , t com d1 6= 0; e e´ o expoente no intervalo [l , u]. A unia˜o de todos os nu´meros em ponto flutuante, juntamente com a representac¸a˜o do zero, constitui o sistema de ponto flutuante normalizado que e´ indicado por: SPF(β, t, l , u). 1.5.1 Erros absolutos e relativos Definimos como erro absoluto a diferenc¸a entre o valor exato de um nu´mero x e o seu valor aproximado x¯ : EAx = x − x¯ . Em geral, conhecemos apenas o valor aproximado x¯ , e nete caso, e´ imposs´ıvel obter o valor exato do erro absoluto. Na pra´tica temos um limitante superior ou uma estimativa para o mo´dulo do erro absoluto. Ex.: Sabe-se que pi ∈ (3.14, 3.15) enta˜o |EApi| = |pi − p¯i| < 0.01. Lembrete: |x | = { x , se x > 0 −x , se x < 0 1.5.1 Erros absolutos e relativos Seja x¯ = 3456.7 de tal forma que |EAx | < 0.1, isto e´, x ∈ (3456.6, 3456.8). Agora considere y¯ = 1.9 de tal forma que |EAy | < 0.1, ou seja, y ∈ (1.8, 2.0). Vemos que os limitantes superiores para estes erros absolutos sa˜o os mesmos. O que podemos dizer sobre a precisa˜o com a qual estes nu´meros esta˜o representados? Para isto e´ preciso comparar a ordem de grandeza de x e y . Ao fazermos isto veremos que x , neste caso, e´ mais preciso que y . Muitas vezes o erro absoluto na˜o e´ suficiente para descrever a precisa˜o de um determinado ca´lculo. Nestes casos o erro relativo nos diz o quanto estamos errando de forma mais precisa. O erro relativo e´ definido como o erro absoluto dividido pelo valor aproximado ERx = x − x¯ x¯ . 1.5.1 Erros absolutos e relativos Exs. |ERx | = |0.1||3456.7| = 0.000028929 |ERy | = |0.1||1.9| = 0.052631579, assim podemos perceber que o nu´mero x e´ representado com uma precisa˜o muito maior que o nu´mero y . Exerc´ıcio 1: calcule os erros absolutos e relativos nos seguintes casos: 1 a = 2345.713 e a¯ = 2345.000 2 b = 1.713 e b¯ = 1.000 1.5.2 Erros de arredondamento e truncamento num SPF A representac¸a˜o de um nu´mero depende fundamentalmente da ma´quina utilizada que define o SPF(β,t,l,u). Seja uma ma´quina que opera em um sistema de ponto flutuante SPF(10,t,l,u) e seja x escrito na forma: x = fx ∗ 10e + gx ∗ 10e−t , onde 0.1 ≤ fx < 1 e 0 ≤ gx < 1. Por exemplo, se t = 4 e x = 198.26 enta˜o x = 0.1982 ∗ 103 + 0.6 ∗ 10−1 neste caso fx = 0.1982 e gx = 0.6. Fica evidente que a representac¸a˜o de x nesta ma´quina na˜o tera´ como incorporar totalmente a` mantissa a parte de gx ∗ 10e−t . O que fazer? 1.5.2 Erros de arredondamento e truncamento num SPF A representac¸a˜o de um nu´mero depende fundamentalmente da ma´quina utilizada que define o SPF(β,t,l,u). Seja uma ma´quina que opera em um sistema de ponto flutuante SPF(10,t,l,u) e seja x escrito na forma: x = fx ∗ 10e + gx ∗ 10e−t , onde 0.1 ≤ fx < 1 e 0 ≤ gx < 1. Por exemplo, se t = 4 e x = 198.26 enta˜o x = 0.1982 ∗ 103 + 0.6 ∗ 10−1 neste caso fx = 0.1982 e gx = 0.6. Fica evidente que a representac¸a˜o de x nesta ma´quina na˜o tera´ como incorporar totalmente a` mantissa a parte de gx ∗ 10e−t . O que fazer? 1.5.2 Erros de arredondamento e truncamento num SPF Neste caso surgem 2 alternativas: Truncamento(cancelamento): despreza-se a parte de gx ∗ 10e−t e x¯ = fx ∗ 10e . Neste caso temos que: |EAx | = |x − x¯ | = gx ∗ 10e−t < 10e−t pois gx < 1. E o erro relativo e´ dado por: |Erx | = |EAx ||x¯ | = |gx | ∗ 10e−t |fx | ∗ 10e < 10e−t 0.1 ∗ 10e = 10 −t+1 Pois 0.1 e´ o menor valor para fx . No truncamento sempre desprezamos a parte que na˜o cabe na mantissa sem qualquer considerac¸a˜o. 1.5.2 Erros de arredondamento e truncamento num SPF Arredondamento:fx e´ modificado para levar em considerac¸a˜o gx .A forma mais utilizada e´ o arredondamento sime´trico: x¯ = { fx ∗ 10e , se |gx | < 0.5 fx ∗ 10e + 10e−t , se |gx | ≥ 0.5 Portanto se |gx | < 0.5, esta parte e´ desprezada, caso contra´rio, somamos 1 ao u´ltimo d´ıgito de fx . Ex.gx = 0.6 > 0.5 enta˜o x¯ = 0.1982∗103 + 1∗10−1 = 0.1983∗103 1.5.2 Erros de arredondamento e truncamento num SPF Estudo do erro cometido no arredondamento 1 Se gx < 0.5 |EAx | = |x − x¯ | = gx ∗ 10e−t < 0.5 ∗ 10e−t |Erx | = |EAx ||x¯ | = |gx | ∗ 10e−t |fx | ∗ 10e < 0.5 ∗ 10e−t 0.1 ∗ 10e = 0.5 ∗ 10 −t+1 2 Se gx ≥ 0.5 |EAx | = |(fx ∗ 10e + gx ∗ 10e−t)− (fx ∗ 10e + 10e−t)| = |gx ∗ 10e−t − 10e−t < |(gx − 1)| ∗ 10e−t ≥ 0.5 ∗ 10e−t |Erx | = |EAx ||x¯ | ≤ 0.5 ∗ 10e−t |fx | ∗ 10e + 10e−t < 0.5 ∗ 10e−t |fx | ∗ 10e = 0.5∗10 −t+1 1.5.2 Erros de arredondamento e truncamento num SPF Estudo do erro cometido no arredondamento 1 Se gx < 0.5 |EAx | = |x − x¯ | = gx ∗ 10e−t < 0.5 ∗ 10e−t |Erx | = |EAx ||x¯ | = |gx | ∗ 10e−t |fx | ∗ 10e < 0.5 ∗ 10e−t 0.1 ∗ 10e = 0.5 ∗ 10 −t+1 2 Se gx ≥ 0.5 |EAx | = |(fx ∗ 10e + gx ∗ 10e−t)− (fx ∗ 10e + 10e−t)| = |gx ∗ 10e−t − 10e−t < |(gx − 1)| ∗ 10e−t ≥ 0.5 ∗ 10e−t |Erx | = |EAx ||x¯ | ≤ 0.5 ∗ 10e−t |fx | ∗ 10e + 10e−t < 0.5 ∗ 10e−t |fx | ∗ 10e = 0.5∗10 −t+1 1.5.2 Erros de arredondamento e truncamento num SPF Podemos resumir da seguinte forma: 1 Truncamento:|EAx | < 10e−t e |Erx | < 10−t+1 2 Arredondamento: |EAx | < 0.5 ∗ 10e−t e |Erx | < 0.5 ∗ 10−t+1 O erro de arredondamento e´ sempre menor que o do truncamento, entretanto acarreta num custo computacional mais elevado, por esta raza˜o o truncamento, em geral, e´ o mais utilizado. 1.5.4 Ana´lise de erros nas operac¸o˜es de aritme´ticas de ponto flutuante Ja´ vimos como uma ma´quina representa um nu´mero no SPF. Vamos ver agora como o erro cometido nessa representac¸a˜o propaga-se ao longo das operac¸o˜es. “O erro total em uma operac¸a˜o e´ composto pelo erro das parcelas ou fatores e tambe´m pelo erro no resultado da operac¸a˜o.” Vamos supor que as operac¸o˜es de ponto flutuante sa˜o feitas com 4 d´ıgitos na mantissa com base 10 e com acumulador de precisa˜o dupla. Ex.SPF(10, 4,−5, 5) considere que os nu´meros a e b estejam representados exatamente: 1. a = 0.5324 ∗ 103 e b = 0.4212 ∗ 10−2 assim se efetuarmos a operac¸a˜o a ∗ b = 0.22424688 ∗ 101 teremos uma mantissa com 8 d´ıgitos e tal resultado se´ra armazenado como: (a ∗ b)t = 0.2242 ou (a ∗ b)a = 0.2242 pois gx = 0.4 < 0.5. 1.5.4 Ana´lise de erros nas operac¸o˜es de aritme´ticas de ponto flutuante Ja´ vimos como uma ma´quina representa um nu´mero no SPF. Vamos ver agora como o erro cometido nessa representac¸a˜o propaga-se ao longo das operac¸o˜es. “O erro total em uma operac¸a˜o e´ composto pelo erro das parcelas ou fatores e tambe´m pelo erro no resultado da operac¸a˜o.” Vamos supor que as operac¸o˜es de ponto flutuante sa˜o feitas com 4 d´ıgitos na mantissa com base 10 e com acumulador de precisa˜o dupla. Ex.SPF(10, 4,−5, 5) considere que os nu´meros a e b estejam representados exatamente: 1. a = 0.5324 ∗ 103 e b = 0.4212 ∗ 10−2 assim se efetuarmos a operac¸a˜o a ∗ b = 0.22424688 ∗ 101 teremos uma mantissa com 8 d´ıgitos e tal resultado se´ra armazenado como: (a ∗ b)t = 0.2242 ou (a ∗ b)a = 0.2242 pois gx = 0.4 < 0.5. 1.5.4 Ana´lise de erros nas operac¸o˜es de aritme´ticas de ponto flutuante 2. a = 0.937 ∗ 104 e b = 0.1272 ∗ 102 a + b = (0.937 + 0.001272) ∗ 104 = 0.938272 ∗ 104 assim (a + b)t = 0.9382 ∗ 104 ou (a + b)a = 0.9383 ∗ 104 Estes exemplos nos mostram que ainda que as parcelas ou fatores estejam representados exatamente no SPF, o resultado final armazenado pode na˜o ser exato.Em geral, a operac¸a˜o e´ efetuada e o resultado final desta operac¸a˜o e´ truncado ou arredondado e enta˜o armazenado. Neste caso, o erro relativo cometido no resultado de cada operac¸a˜o em que as parcelas estejam representadas exatamente sera´: a) |ERop| < 10−t+1 no truncamento b) |ERop| < 0.5 ∗ 10−t+1 no arredondamento. 1.5.4 Ana´lise de erros nas operac¸o˜es de aritme´ticas de ponto flutuante 2. a = 0.937 ∗ 104 e b = 0.1272 ∗ 102 a + b = (0.937 + 0.001272) ∗ 104 = 0.938272 ∗ 104 assim (a + b)t = 0.9382 ∗ 104 ou (a + b)a = 0.9383 ∗ 104 Estes exemplos nos mostram que ainda que as parcelas ou fatores estejam representados exatamente no SPF, o resultado final armazenado pode na˜o ser exato. Em geral, a operac¸a˜o e´ efetuada e o resultado final desta operac¸a˜o e´ truncado ou arredondado e enta˜o armazenado. Neste caso, o erro relativo cometido no resultado de cada operac¸a˜o em que as parcelas estejam representadas exatamente sera´: a) |ERop| < 10−t+1 no truncamento b) |ERop| < 0.5 ∗ 10−t+1 no arredondamento. 1.5.5 Propagac¸a˜o de Erros Sejam a = 50± 3 e b = 21± 1 calcule o maior e o menor valor de a + b e a− b a ∈ [47, 53] enquanto b ∈ [20, 22]. Assim o menor valor da soma seria 47 + 20 = 67 e o maior valor seria 53 + 22 = 75. Logo, a + b = (50 + 21)± 4 = 71± 4, variando de 67 a 75. O menor valor da subtrac¸a˜o seria 47–22 = 25 e o maior valor da subtrac¸a˜o seria 53–20 = 33. Logo, a–b = (50–21)± 4 = 29± 4 , variando de 25 a 33. Observe que na subtrac¸a˜o, os erros absolutos se somam, pois sempre se admite o pior caso; nunca se subtraem erros, contando com a sorte; preveˆ-se, sempre, o caso mais desfavora´vel. 1.5.5 Propagac¸a˜o de Erros Sejam a = 50± 3 e b = 21± 1 calcule o maior e o menor valor de a + b e a− b a ∈ [47, 53] enquanto b ∈ [20, 22]. Assim o menor valor da soma seria 47 + 20 = 67 e o maior valor seria 53 + 22 = 75. Logo, a + b = (50 + 21)± 4 = 71± 4, variando de 67 a 75. O menor valor da subtrac¸a˜o seria 47–22 = 25 e o maior valor da subtrac¸a˜o seria 53–20 = 33. Logo, a–b = (50–21)± 4 = 29± 4 , variando de 25 a 33. Observe que na subtrac¸a˜o, os erros absolutos se somam, pois sempre se admite o pior caso; nunca se subtraem erros, contando com a sorte; preveˆ-se, sempre, o caso mais desfavora´vel. 1.5.5 Propagac¸a˜o de Erros Sejam a = 50± 3 e b = 21± 1 calcule o maior e o menor valor de a + b e a− b a ∈ [47, 53] enquanto b ∈ [20, 22]. Assim o menor valor da soma seria 47 + 20 = 67 e o maior valor seria 53 + 22 = 75. Logo, a + b = (50 + 21)± 4 = 71± 4, variando de 67 a 75. O menor valor da subtrac¸a˜o seria 47–22 = 25 e o maior valor da subtrac¸a˜o seria 53–20 = 33. Logo, a–b = (50–21)± 4 = 29± 4 , variando de 25 a 33. Observe que na subtrac¸a˜o, os erros absolutos se somam, pois sempre se admite o pior caso; nunca se subtraem erros, contando com a sorte; preveˆ-se, sempre, o caso mais desfavora´vel. 1.5.5 Propagac¸a˜o de Erros As fo´rmulas para os erros absoluto e relativo nas operac¸o˜es aritme´ticas com erros nas parcelas ou fatores sa˜o dadas por: Sejam x e y , tais que x = x¯ + EAx e y = y¯ + EAy . Adic¸a˜o: x + y x + y = (x¯ + EAx) + (y¯ + EAy ) = (x¯ + y¯) + (EAx + EAy ) 1 Erro Absoluto: EAx+y = EAx + EAy 2 Erro Relativo: ERx+y = EAx+EAy x¯+y¯ = EAx x¯ ( x¯ x¯+y¯ ) + EAy y¯ ( y¯ x¯+y¯ ) 1.5.5 Propagac¸a˜o de Erros As fo´rmulas para os erros absoluto e relativo nas operac¸o˜es aritme´ticas com erros nas parcelas ou fatores sa˜o dadas por: Sejam x e y , tais que x = x¯ + EAx e y = y¯ + EAy . Adic¸a˜o: x + y x + y = (x¯ + EAx) + (y¯ + EAy ) = (x¯ + y¯) + (EAx + EAy ) 1 Erro Absoluto: EAx+y = EAx + EAy 2 Erro Relativo: ERx+y = EAx+EAy x¯+y¯ = EAx x¯ ( x¯ x¯+y¯ ) + EAy y¯ ( y¯ x¯+y¯ ) 1.5.5 Propagac¸a˜o de Erros As fo´rmulas para os erros absoluto e relativo nas operac¸o˜es aritme´ticas com erros nas parcelas ou fatores sa˜o dadas por: Sejam x e y , tais que x = x¯ + EAx e y = y¯ + EAy . Adic¸a˜o: x + y x + y = (x¯ + EAx) + (y¯ + EAy ) = (x¯ + y¯) + (EAx + EAy ) 1 Erro Absoluto: EAx+y = EAx + EAy 2 Erro Relativo: ERx+y = EAx+EAy x¯+y¯ = EAx x¯ ( x¯ x¯+y¯ ) + EAy y¯ ( y¯ x¯+y¯ ) 1.5.5 Propagac¸a˜o de Erros Subtrac¸a˜o: x − y x − y = (x¯ + EAx)− (y¯ + EAy ) = (x¯ − y¯) + (EAx − EAy ) 1 Erro Absoluto: EAx−y = EAx − EAy . O erro absoluto da subtrac¸a˜o e´ menor ou igual a` soma dos erros absolutos das parcelas. Sempre consideramos o pior caso, na˜o ha´ cancelamento de erros!! 2 Erro Relativo: ERx−y = EAx−EAy x¯−y¯ = EAx x¯ ( x¯ x¯−y¯ )− EAyy¯ ( y¯x¯−y¯ ) 1.5.5 Propagac¸a˜o de Erros Subtrac¸a˜o: x − y x − y = (x¯ + EAx)− (y¯ + EAy ) = (x¯ − y¯) + (EAx − EAy ) 1 Erro Absoluto: EAx−y = EAx − EAy . O erro absoluto da subtrac¸a˜o e´ menor ou igual a` soma dos erros absolutos das parcelas. Sempre consideramos o pior caso, na˜o ha´ cancelamento de erros!! 2 Erro Relativo: ERx−y = EAx−EAy x¯−y¯ = EAx x¯ ( x¯ x¯−y¯ )− EAyy¯ ( y¯x¯−y¯ ) 1.5.5 Propagac¸a˜o de Erros Subtrac¸a˜o: x − y x − y = (x¯ + EAx)− (y¯ + EAy ) = (x¯ − y¯) + (EAx − EAy ) 1 Erro Absoluto: EAx−y = EAx − EAy . O erro absoluto da subtrac¸a˜o e´ menor ou igual a` soma dos erros absolutos das parcelas. Sempre consideramos o pior caso, na˜o ha´ cancelamento de erros!! 2 Erro Relativo: ERx−y = EAx−EAy x¯−y¯ = EAx x¯ ( x¯ x¯−y¯ )− EAyy¯ ( y¯x¯−y¯ ) 1.5.5 Propagac¸a˜o de Erros Multiplicac¸a˜o: x ∗ y x∗y = (x¯+EAx)∗(y¯+EAy ) = (x¯∗y¯)+(x¯EAy+y¯EAx)+EAx∗EAy Vamos desprezar o produto EAx ∗ EAy uma vez que ele e´ um nu´mero muito pequeno em relac¸a˜o aos demais envolvidos na operac¸a˜o, assim x ∗ y = (x¯ + EAx) ∗ (y¯ + EAy ) = (x¯ ∗ y¯) + (x¯EAy + y¯EAx) 1 Erro Absoluto: EAx∗y = x¯EAy + y¯EAx 2 Erro Relativo: ERx∗y = x¯EAy+y¯EAx x¯∗y¯ = EAx x¯ + EAy y¯ = ERx + ERy 1.5.5 Propagac¸a˜o de Erros Multiplicac¸a˜o: x ∗ y x∗y = (x¯+EAx)∗(y¯+EAy ) = (x¯∗y¯)+(x¯EAy+y¯EAx)+EAx∗EAy Vamos desprezar o produto EAx ∗ EAy uma vez que ele e´ um nu´mero muito pequeno em relac¸a˜o aos demais envolvidos na operac¸a˜o, assim x ∗ y = (x¯ + EAx) ∗ (y¯ + EAy ) = (x¯ ∗ y¯) + (x¯EAy + y¯EAx) 1 Erro Absoluto: EAx∗y = x¯EAy + y¯EAx 2 Erro Relativo: ERx∗y = x¯EAy+y¯EAx x¯∗y¯ = EAx x¯ + EAy y¯ = ERx + ERy 1.5.5 Propagac¸a˜o de Erros Multiplicac¸a˜o: x ∗ y x∗y = (x¯+EAx)∗(y¯+EAy ) = (x¯∗y¯)+(x¯EAy+y¯EAx)+EAx∗EAy Vamos desprezar o produto EAx ∗ EAy uma vez que ele e´ um nu´mero muito pequeno em relac¸a˜o aos demais envolvidos na operac¸a˜o, assim x ∗ y = (x¯ + EAx) ∗ (y¯ + EAy ) = (x¯ ∗ y¯) + (x¯EAy + y¯EAx) 1 Erro Absoluto: EAx∗y = x¯EAy + y¯EAx 2 Erro Relativo: ERx∗y = x¯EAy+y¯EAx x¯∗y¯ = EAx x¯ + EAy y¯ = ERx + ERy 1.5.5 Propagac¸a˜o de Erros Divisa˜o: x y x y = (x¯ + EAx) (y¯ + EAy ) = x¯ y¯ + EAx y¯ − xEAx y¯2 1 Erro Absoluto: EA x y = y¯EAx−x¯EAy y¯2 2 Erro Relativo: ER x y = ( y¯EAx−x¯EAy y¯2 ) y¯ x¯ = EAx x¯ − EAyy¯ = ERx −ERy Todas essas expresso˜es foram obtidas sem considerar o tipo de erro cometido, arredondamento ou truncamento, no resultado final. A ana´lise completa da propagac¸a˜o de erros se faz considerando os erros nas parcelas ou fatores e no resultado de cada operac¸a˜o efetuada. 1.5.5 Propagac¸a˜o de Erros Divisa˜o: x y x y = (x¯ + EAx) (y¯ + EAy ) = x¯ y¯ + EAx y¯ − xEAx y¯2 1 Erro Absoluto: EA x y = y¯EAx−x¯EAy y¯2 2 Erro Relativo: ER x y = ( y¯EAx−x¯EAy y¯2 ) y¯ x¯ = EAx x¯ − EAyy¯ = ERx −ERy Todas essas expresso˜es foram obtidas sem considerar o tipo de erro cometido, arredondamento ou truncamento, no resultado final. A ana´lise completa da propagac¸a˜o de erros se faz considerando os erros nas parcelas ou fatores e no resultado de cada operac¸a˜o efetuada. 1.5.5Propagac¸a˜o de Erros Divisa˜o: x y x y = (x¯ + EAx) (y¯ + EAy ) = x¯ y¯ + EAx y¯ − xEAx y¯2 1 Erro Absoluto: EA x y = y¯EAx−x¯EAy y¯2 2 Erro Relativo: ER x y = ( y¯EAx−x¯EAy y¯2 ) y¯ x¯ = EAx x¯ − EAyy¯ = ERx −ERy Todas essas expresso˜es foram obtidas sem considerar o tipo de erro cometido, arredondamento ou truncamento, no resultado final. A ana´lise completa da propagac¸a˜o de erros se faz considerando os erros nas parcelas ou fatores e no resultado de cada operac¸a˜o efetuada. 1.5.5 Propagac¸a˜o de Erros Divisa˜o: x y x y = (x¯ + EAx) (y¯ + EAy ) = x¯ y¯ + EAx y¯ − xEAx y¯2 1 Erro Absoluto: EA x y = y¯EAx−x¯EAy y¯2 2 Erro Relativo: ER x y = ( y¯EAx−x¯EAy y¯2 ) y¯ x¯ = EAx x¯ − EAyy¯ = ERx −ERy Todas essas expresso˜es foram obtidas sem considerar o tipo de erro cometido, arredondamento ou truncamento, no resultado final. A ana´lise completa da propagac¸a˜o de erros se faz considerando os erros nas parcelas ou fatores e no resultado de cada operac¸a˜o efetuada. Pro´xima aula Este material e´ inteiramente baseado na bibliografia do curso, principalmente no livro texto: RUGIERO, M. A.G; LOPES,V Ca´lculo Nume´rico: Aspectos teo´ricos e computacionais, Editora McGraw-Hill.1997. Sites consultados acessados em 11/03/2011: http://www.raymundodeoliveira.eng.br/calculo.html http://www.dsc.ufcg.edu.br/ cnum/modulos/Modulo3/CNerros.ppt Este material na˜o substitui a bibliografia. Por hoje e´ so´ pessoal!!
Compartilhar