srgio galdino 2 de setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/métodos01_cap1... ·...

44

Upload: others

Post on 22-Jan-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

Mtodos Numricos para Engenheiros com Scilab

Srgio Galdino

2 de Setembro de 2013

Page 2: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de
Page 3: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

Capítulo 1

Erros em computaes numricas

1.1 Glamour da computao

A opinio geral que computadores so capazes de fazer operaes aritmticas ra-pidamente e com grande exatido. Em parte correta quando comparada aoclculo manual. Por exemplo, taxas tpicas para multiplicao manual de nmerosso 0.05s−1 ( so 20s para efetuar uma multiplicao) enquanto num computa-dor so tipicamente maiores que 106s−1 chegando facilmente a 1012s−1 emsupercomputadores. Os clculos computacionais superam em vrias ordensde magnitude os clculos manuais, permitindo, assim, enfrentar verdadeirosdesa�os computacionais. S para produzir o efeito psicodlico pode ser ditoque em 1 segundo um computador de 106/s pode fazer mais clculos (e semcometer erros grosseiros) que uma pessoa ir fazer manualmente em sua vidainteira. Desviando-se do glamour da computao, este captulo dar bases pramostrar que resultados de computaes numricas devem ser vistas com cautela.

1.2 Anlise numrica versus anlise matemtica

A anlise matemtica (no cotidiano) e anlise numrica diferem muito quandoso utilizadas. A anlise matemtica normalmente assume uma representaoin�nita para nmeros e processos, enquanto computaes numricas so realizadasem maquinas �nitas em tempo �nito. A representao �nita dos nmeros emuma mquina produz erros de arredondamento, enquanto a representao �nitade um processo produz erro de truncamento:

Exemplos:

Nmeros:

π = 3.1415926535 . . . (1.1)

1

3= 0.33333 . . . (1.2)

3

Page 4: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

4 CAPÍTULO 1. ERROS EM COMPUTAES NUMRICAS

Processos:∫ b

af(x)dx = lim

∆xi→0

n∑i=1

f(xi)∆xi, ∆xi = (xi+1 − xi) (1.3)

df(x)

dx= lim

∆x→0

(f(x+∆x)− f(x)

∆x

)(1.4)

Grande parte da matemtica sensvel aos efeitos produzidos pelo arredon-damento numrico; esta vulnerabilidade que os estatsticos chamam de "norobusto".

Esta diferena fundamental, pois somente partes da matemtica resistenteaos erros de arredondamentos so teis em matemtica aplicada ao mundo real.

Signi�cados diferentes surgem para as mesmas palavras. A expresso zerosde um polinmio pode ter vrios signi�cados em computao e um nico signi�-cado em matemtica (ver [4] sec 1.10).

A matemtica lida preferencialmente com teoremas exatos e precisos; an-lise numrica usa muitos mtodos heursticos. A existncia de um teorema nosu�ciente em clculos computacionais. Estas diferenas so muitas vezes srias econduzem a grandes desentendimentos.

1.3 Dgitos signi�cativos, preciso, exatido e erros

Quando se trata com valores numricos e clculos numricos, existem vriosconceitos que devem ser considerados: ,

1. Dgitos signi�cativos

2. Preciso e exatido

3. Representao do nmero

4. Erros

Os trs primeiros conceitos so discutidos brevemente nesta seo e os demaisnas prximas.

Dgitos signi�cativos

Os algarismos signi�cativos, ou dgitos signi�cativos em um nmero, so osdgitos do nmero que se sabe serem corretos. Clculos de engenharia e cient�-cos geralmente comeam com um conjunto de dados com um nmero limitado

Page 5: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

1.4. COMPUTAES NUMRICAS 5

de dgitos signi�cativos. Quando estes nmeros so processados atravs de umalgoritmo numrico, importante estimar quantos dgitos signi�cativos estopresentes no resultado �nal computado.

Preciso e Exatido

Preciso refere-se a quo prximo um nmero representa o nmero que ele estrepresentando.

Exatido refere-se a quo prximo um nmero est do valor real do nmeroque est representando quanti�cado pelo erro absoluto ou relativo. O termopreciso refere-se a exatido com as quias as operaes aritmticas so realizadas. Apreciso governada pelo nmero de dgitos a ser utilizado nos clculos numricos.A exatido regida por erros na aproximao numrica. Preciso e exatido soquanti�cados pelos erros de clculos numricos.

1.4 Computaes Numricas

A aritmtica das mquinas digitais (computadores, calculadoras, ...) no amesma que usada em cursos de clculo ou lgebra. Assume-se como a�rmaesverdadeiras que 2 + 2 = 4, 22 = 4, e (

√2)2 = 2. Na aritmtica padro das

mquinas digitais as duas primeiras so verdadeiras mas a terceira no. Paraentender poque isto verdadeiro deve-se explorar o mundo da aritmtica depreciso �nita utilizada por mquinas digitais.

1.4.1 Representao

O sistema de numerao decimal o mais usado pelo homem nos dias de hoje. Onmero 10 tem papel fundamental, chamado de base do sistema. Os smbolos0, 1, 2, 3, 4, 5, 6, 7, 8, 9, so usados para representar qualquer grandeza. Ofato de o sistema decimal ser largamente utilizado tem evidentemente razeshistricas, pois na realidade qualquer nmero inteiro maior que 1 poderia tersido escolhido. De fato, no mundo dos computadores digitais o sistema binrioo utilizado. O nmero 2 a base do sistema e os smbolos 0 e 1 servem pararepresentar uma grandeza qualquer. Ao lado do sistema binrio, os sistemasoctal, hexadecimal, base 8 e 16 respectivamente, so tambm utilizados. Istoocorre pelo fato de que cada smbolo octal e hexadecimal representa umequivalente a trs e quatro smbolos no sistema binrio e vice-versa.

1.4.2 Converso

Dado um nmero x representado na base N, isto , na N-representao, e ns que-remos saber como representa-lo na base M, isso , na M-representao. Temos

Page 6: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

6 CAPÍTULO 1. ERROS EM COMPUTAES NUMRICAS

ento a equao:

x = amNm + · · ·+ a1N1 + a0N

0 + a−1N−1 + · · ·+ a−nN

−n

= bjMj + · · ·+ b1M

1 + b0M0 + b−1M

−1 + · · ·+ b−kM−k (1.5)

onde os coe�cientes am, am−1, · · · , a1, a0, a−1, · · · , an−1, a−n so conhe-cidos e os coe�cientes bj , bj−1, · · · , b1, b0, b−1, · · · , bk−1, b−k devem serdeterminados. Observe que bj , bj−1, · · · , b1, b0, b−1, · · · , bk−1, b−k de-vem ser expressos com smbolos de dgitos da N-representao. Para realizara converso dividiremos x em uma parte inteira i e uma parte fracionria f .Ns temos i = bjM

j + · · · + b1M1 + b0M

0, e dividindo i por M ns obtemosum quociente q1 e um resto r1 = b0. Continuando, dividiremos q1 por M ,ns conseguiremos q2 e o resto r2 = b1, e, obviamente, b0, b1, b2, · · · so osrestos consecutivos quando i dividido repetitivamente por M . De formasemelhante ns encontramos a parte fracionria como as partes inteiras con-secutivas quando f multiplicado repetitivamente por M e a parte inteiraremovida. Os clculos devem ser feitos na N-representao e M deve ser tambmdado nesta representao.

Exemplo 1 Converso o nmero decimal 261, 359 para a representao binria.

Converso: Decimal para binrio

Inteiro: Diviso sucessiva do nmero decimal por 2

261 21 130 2

0 65 21 32 2

0 16 20 8 2

0 4 20 2 2

0 1

O nmero inteiro binrio obtido atravs dos restos das divises escritos naordem inversa da sua obteno. Ento 26110 = 1.0000.01012.

Frao: Multiplicao sucessiva da frao decimal por 2

Page 7: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

1.4. COMPUTAES NUMRICAS 7

Multiplicao Sobra

0,359x2 = 0,718 00,718x2 = 1,436 10,436x2 = 0,872 00,872x2 = 1,774 10,774x2 = 1,488 10,488x2 = 0,976 00,976x2 = 1,952 10,952x2 = 1,904 10,904x2 = 1,808 1

......

......

A frao binria obtida atravs das sobras, parte inteira, das multiplicaes escri-tas na ordem direta de sus obteno. Ento 0, 35910 = 0, 0101.1011.1 · · ·2.

Somando-se as partes inteiras e fracionrias dos binrios obtidos tm-se

261, 35910 = 1.0000.0101, 0101.1011.1 · · ·2

Exemplo 2 Converso o nmero decimal 261, 359 para a representao ternria.Converso: Decimal para ternrio

Inteiro: Diviso sucessiva do nmero decimal por 3

261 30 87 3

0 29 32 9 3

0 3 30 1

O nmero inteiro ternrio obtido atravs dos restos das divises escritos naordem inversa da sua obteno. Ento 26110 = 100.2003.

Frao: Multiplicao sucessiva da frao decimal por 3

Multiplicao Sobra

0,359x3 = 1,077 10,077x3 = 0,231 00,231x3 = 0,693 00,693x3 = 2,079 20,079x3 = 0,237 00,237x3 = 0,711 00,711x3 = 2,133 20,133x3 = 0,399 00,399x3 = 1,197 1

......

......

Page 8: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

8 CAPÍTULO 1. ERROS EM COMPUTAES NUMRICAS

A frao ternria obtida atravs das sobras, parte inteira, das multiplicaesescritas na ordem direta de sus obteno. Ento 0, 35910 = 0, 100.200.201 · · ·3.Somando-se as partes inteiras e fracionrias dos binrios obtidos tm-se

261, 35910 = 100.200, 100.200.201 · · ·3

Exemplo 3 Converso o nmero decimal 261, 359 para a representao hexa-decimal.Converso: Decimal para hexadecimal

Inteira: Diviso sucessiva do nmero decimal por 16

261 165 16 16

0 1

O nmero inteiro hexadecimal obtido atravs dos restos das divises escritosna ordem inversa da sua obteno. Ento 26110 = 10516.

Frao: Multiplicao sucessiva da frao decimal por 16

Multiplicao Sobra

0,359x16 = 5,744 50,744x16 = 11,904 110,904x16 = 14,464 140,464x16 = 7,424 70,424x16 = 6,784 60,784x16 = 12,544 120,544x16 = 8,704 80,704x16 = 11,264 110,264x16 = 4,224 4...

......

...

A frao hexadecimal obtida atravs das sobras, parte inteira, das multipli-caes escritas na ordem direta de sus obteno. Ento

0, 35910 = 0, 5 11 14 7 6 12 8 11 4 · · ·16

ou utilizando-se os smbolos hexadecimais (Tabela 1.1)

0, 35910 = 0, 5BE.76C.8B4 · · ·16

Somando-se as partes inteiras e fracionrias dos binrios obtidos tm-se

261, 35910 = 105, 5BE.76C.8B4 · · ·16

Page 9: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

1.4. COMPUTAES NUMRICAS 9

Tabela 1.1: Smbolos Hexadecimais.

Grandeza Smbolodecimal hexadecimal

0 01 12 23 34 45 56 67 78 89 910 A11 B12 C13 D14 E15 F

Conv10.sce

Este roteiro Scilab realiza a converso de inteiros na base 10 para basequalquer.

1. // Converso de inteiros da base 10 para uma base qualquer

2. function y=conv10(x,b)

3. y=''

4. while x > 0

5. cx=modulo(x,b)

6. x=int(x/b)

7. y=string(cx)+'.'+y

8. end

9. endfunction

Ao executar o roteiro Conv10.sce pode-se realizar as converses. Aquiesto os resultados:

-->conv10(261,2)

ans =

1.0.0.0.0.0.1.0.1.

-->

-->conv10(261,3)

ans =

Page 10: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

10 CAPÍTULO 1. ERROS EM COMPUTAES NUMRICAS

1.0.0.2.0.0.

-->

-->conv10(261,16)

ans =

1.0.5.

-->

ConvF10.sce

Este roteiro Scilab realiza a converso de fracionrios na base 10 para basequalquer.

1. // Converso de fracionrios da base 10 para uma base qualquer

2. function y=convF10(x,b,n)

3. y='0,'

4. i=0

5. while i < n

6. p=x*b

7. cx=int(p)

8. y=y+string(cx)+'.'

9. x=p-cx

10. i=i+1

11. end

12. endfunction

Ao executar o roteiro ConvF10.sce pode-se realizar as converses. Aquiesto os resultados:

-->convF10(0.359,2,9)

ans =

0,0.1.0.1.1.0.1.1.1.

-->

-->convF10(0.359,3,9)

ans =

0,1.0.0.2.0.0.2.0.1.

-->

-->convF10(0.359,16,9)

ans =

0,5.11.14.7.6.12.8.11.4.

-->

Conv10X.sce

Este roteiro Scilab realiza a converso de um nmero na base 10 para basequalquer (combina Conv10.sce e ConvF10.sce ) .

Page 11: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

1.4. COMPUTAES NUMRICAS 11

1. // Converso da base 10 para uma base qualquer: Inteiro + Frao

2. function y=conv10X(xx,b,n)

3. x=int(xx)

4. yi=''

5. while x > 0

6. cx=modulo(x,b)

7. x=int(x/b)

8. yi=string(cx)+'.'+yi

9. end

10. y=yi

11. x=xx-int(xx)

12. yf=','

13. i=0

14. while i < n

15. p=x*b

16. cx=int(p)

17. yf=yf+string(cx)+'.'

18. x=p-cx

19. i=i+1

20. end

21. y=y+yf

22. endfunction

Ao executar o roteiro Conv10X.sce pode-se realizar as converses. Aquiesto os resultados:

-->conv10X(261,2,0)

ans =

1.0.0.0.0.0.1.0.1.,

-->

-->conv10X(0.359,2,9)

ans =

,0.1.0.1.1.0.1.1.1.

-->

-->conv10X(261.359,2,9)

ans =

1.0.0.0.0.0.1.0.1.,0.1.0.1.1.0.1.1.1.

-->

-->conv10X(261,16,0)

ans =

1.0.5.,

-->

-->conv10X(0.359,16,9)

ans =

,5.11.14.7.6.12.8.11.4.

-->

Page 12: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

12 CAPÍTULO 1. ERROS EM COMPUTAES NUMRICAS

-->conv10X(261.359,16,9)

ans =

1.0.5.,5.11.14.7.6.12.8.11.4.

-->

1.4.3 Converso de uma base qualquer para base 10

Para obter-se o nmero decimal equivalente a um nmero escrito em qualquerbase s multiplicar cada dgito por sua potncia:

Exemplo 4 261, 35910 ∼= 1.0000.0101, 0101.1011.12

Parte inteira

1 · 28 + 0 · 27 + 0 · 26 + 0 · 25 + 0 · 24 + 0 · 23 + 1 · 22 + 0 · 21 + 0 · 20= 261

Parte fracionria

0 · 2−1 + 1 · 2−2 + 0 · 2−3 + 1 · 2−4 + 1 · 2−5 + 0 · 2−6 + 1 · 2−7+1 · 2−8 + 1 · 2−9 ∼= 0, 3574

Erro

|261, 359− 261, 3574| = 0, 0016

Exemplo 5 261, 35910 ∼= 100.200, 100.200.2013

Parte inteira

1 · 35 + 0 · 34 + 0 · 33 + 2 · 32 + 0 · 31 + 0 · 30= 261

Parte fracionria

1 · 3−1 + 0 · 3−2 + 0 · 3−3 + 2 · 3−4 + 0 · 3−5 + 0 · 3−6 + 2 · 3−7+0 · 3−8 + 1 · 3−9 ∼= 0, 35899

Erro

|261, 359− 261, 35899| = 0, 00001

Page 13: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

1.4. COMPUTAES NUMRICAS 13

Exemplo 6 261, 35910 ∼= 105, 5 11 14 7 6 12 8 11 416 ou seja,

261, 35910 ∼= 105, 5BE.76C.8B416

Parte inteira

1 · 162 + 0 · 161 + 5 · 160 = 261

Parte fracionria

5

161+

11

162+

14

163+

7

164+

6

165+

12

166+

8

167+

11

168+

4

169

∼= 0, 35899999999674

Erro

|261, 359− 0, 35899999999674| ∼= 3, 24× 10−12

1.4.4 Representao de um nmero inteiro

A representao de um nmero inteiro no computador qualquer trabalha in-ternamente com uma base �xa β ≥ 2 um nmero inteiro; sendo geralmenteescolhido como uma potncia de 2.

Dado um nmero inteiro n ≥ 0, ele possui uma nica representao,

n = ±(nknk−1 · · ·n1n0)= ±(nkβ

k + nk−1βk−1 + · · ·+ n1β

1 + n0β0),

(1.6)

onde os ni, i = 0, 1, · · · , k so inteiros satisfazendo 0 ≤ ni < β e nk = 0.Por exemplo, na base β = 10, o nmero 1957 representado por:

1957 = 1× 103 + 9× 102 + 5× 101 + 7× 100

e armazenado como n3n2n1n0.

1.4.5 Representao de um nmero real

A representao de um nmero real no computador pode ser feita de duas ma-neiras:

a) Representao do ponto �xo

Este foi o sistema usado, no passado, por muitos computadores. Sendo aindausado por ser simples em aplicaes de microprocessadores. Um nmero real,x = 0, ele ser representado em ponto �xo por:

x = ±−l∑i=k

xiβi (1.7)

Page 14: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

14 CAPÍTULO 1. ERROS EM COMPUTAES NUMRICAS

onde k e l so o comprimento da parte inteira e fracionria do nmero x, res-pectivamente.

Por exemplo, na base β = 10, o nmero 1957.325 representado por:

1957.325 = +

−3∑i=3

xiβi

= 1× 103 + 9× 102 + 5× 101 + 7× 100 + 3× 10−1 + 2× 10−2 + 5× 10−3

e armazenado como x3x2x1x0.x−1x−2x−3.

b) Representao do ponto-�utuante

Em geral, um nmero x na representao do ponto-�utuante tem a forma se-guinte:

x = ±m · βk (1.8)

onde

m = mantissa, um nmero fracionrio em ponto �xo, isto , m =

n∑i=l

m−iβ−i

(onde l > 0, frequentemente l = 1, tal que se x = 0, ento m−1 = 0;0 ≤ m−i < β, i = 1, 2, · · · t, com t a quantidade de dgitos signi�cati-vos ou preciso do sistema , β−1 ≤ m < 1 e −m ≤ k ≤ M) ;

β = base, 2 se o sistemas de numerao for binrio, 10 se o sistema denumerao for decimal, etc.;

k = expoente, um inteiro.

Observao 1 m−1 = 0 ou1

β< m < 1 (signi�ca que devemos ter um digito

no nulo aps a virgula) caracteriza o sistema de nmeros em ponto �utuantenormalizado.

Observao 2 o nmero zero pertence a qualquer sistema e representado commantissa igual a zero e k = −m.

Exemplo 7 Escrever o nmero N = −19.2 · 10−8 em ponto �utuante naforma normalizada.

Reescrevendo o nmero para a forma N = −0.192 · 10−6 , o nmero �cana representao do ponto-�utuante, o expoente igual a -6, a mantissa iguala -0.192 e a base 10.

Escrevendo agora os nmeros: x1 = 0.53;x2 = −8.472;x3 = 0.0913;x4 =35391.3 e x5 = 0.0004 , onde todos esto na base β = 10, em ponto �utuante

Page 15: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

1.4. COMPUTAES NUMRICAS 15

na forma normalizada:

x1 = 0.53 = 0.53× 100,x2 = −8.472 = −0.8472× 101,x3 = 0.0913 = 0.913× 10−1,x4 = 35391.3 = 0.353913× 105,x5 = 0.0004 = 0.4× 10−3.

Para representarmos um sistema de nmeros em ponto �utuante norma-lizado, na base β, com t dgitos signi�cativos e com limites do expoente m eM , usa-se a notao: FN (β, t,m,M).

Um nmero em FN (β, t,m,M) ser representado por:

±0.m−1m−2m−3 · · ·m−t × β−k (1.9)

onde m−1 = 0 e −m ≤ k ≤ M .

Exemplo 8 Considere o sistema FN (10, 3, 2, 2). Represente nesse sistemaos nmeros do exemplo anterior.Soluo: Os nmero sero representado por ±0.m−1m−2m−3 · · ·m−t × β−k,onde −2 ≤ k ≤ 2. Ento:

x1 = 0.53 = 0.53× 100,x2 = −8.472 = −0.8472× 101,x3 = 0.0913 = 0.913× 10−1,x4 = 35391.3 = 0.353913× 105,x5 = 0.0004 = 0.4× 10−3.

Observe que os nmeros x4 = 35391.3 e x5 = 0.0004 no podem ser re-presentados no sistema. De fato, o nmero 35391.3 = 0.353913 × 105 tem oexpoente maior que 2, causando over�ow, por outro lado 0.0004 = 0.4×10−3

e assim o expoente menor que −2 causando under�ow.

Exemplo 9 Diferena entre dois nmeros na aritmtica em ponto �utuantenormalizado.

0.27143247 · 107−0.27072236 · 107

0.00071011 · 107Vemos que a diferena entre estes dois nmeros ponto-�utuante normali-

zados, resulta num nmero em ponto-�utuante no normalizado. Podemos,entretanto, normaliza-lo se deslocarmos o ponto trs lugares direita e somar-3 ao expoente, obtendo-se 0.71011000 · 104 normalizado.

Page 16: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

16 CAPÍTULO 1. ERROS EM COMPUTAES NUMRICAS

1.4.6 Armazenamento na memria

Para comear vamos representar o nmero 0.00053474839 num computador de-cimal. A notao ponto-�utuante normalizada deste nmero 0.53474839 ·10−3.Par evitar expoente negativo, ns adicionamos, arbitrariamente, 50 (desloca-

mento) ao expoente e o nmero agora 0.53474839 ·1047. O expoente somadoa uma constante arbitrria chamado de caracterstica. O nmero pode ser re-presentado, unicamente, atravs da normalizao da notao ponto-�utuante, namemria do computado utilizando o esquema de representao seguinte:

+ 5 3 4 7 4 8 3 9 4 7

↘ ↘sinal caracterstica = expoente + 50

Deve ser observado que a caracterstica coloca o expoente limitado a ex-presso seguinte: −50 ≤ k ≤ 49. O nmero tem o mximo de oito dgitos depreciso e a representao falha quando temos nmeros muito grande ou muito pe-queno. De modo anlogo, um nmero binrio na representao do ponto-�utuantetambm pode ser armazenado na memria de um computador digital. Umapalavra armazenada tendo um bit de "sinal"e 31 bits regulares pode repre-sentar um nmero binrio ponto-�utuante na forma seguinte:

0 1 8 9 31

sinal caracterstica mantissa normalizada

ondesinal = sinal do nmero codi�cado, 0 se positivo e 1 se negativo;caracterstica = 128 + expoente (resultado escrito em binrio);mantissa = frao binria normalizada.

Exemplo 10 Represente o nmero 12.625 numa palavra de 32 bits conformeesquema de representao acima.

12 20 6 2

0 3 21 1

Multiplicao Sobra

0.625x2 = 1.25 10.25 x2 = 0.50 00.5 x2 = 1.0 1

12.62510 = 1100.1012 = 0.1100101× 24

Page 17: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

1.4. COMPUTAES NUMRICAS 17

Ajustando a caracterstica: 4 + 128 = 132

132 20 66 2

0 33 21 16 2

0 8 20 4 2

0 2 20 1

13210 = 100001002

0 1 8 9 31

0 1 0 0 0 0 1 0 0 1 1 0 0 1 0 1 0 . . . . . . 0

1.4.7 Aritmtica do ponto-�utuante

Os princpios das operaes aritmticas bsicas de um computador sero discuti-dos agora. Para isto iremos considerar que estamos trabalhando num com-putador decimal com uma palavra de 10 dgitos de comprimento. Princpiossemelhantes so utilizados em computadores binrios (digitais). Na adio ousubtrao de dois nmeros o computador examina a caracterstica ajustada dosdois nmeros. Os seguintes casos so possveis:

1- Caractersticas iguais: Adiciona-se as mantissas e mantm-se a carac-terstica.

32109876 54+12340123 54

44449999 54

2- Quando existe estouro (over�ow) na adio das mantissas: O resultadoser ajustado.

51319212 55+98756431 55

150075643 55↘ ↘estouro caracterstica

Resulta em:

Page 18: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

18 CAPÍTULO 1. ERROS EM COMPUTAES NUMRICAS

15007564 56↘caracterstica ajustada

3- Caractersticas distintas: Mantm-se a de maior mdulo e ajusta-se a demenor valor.

31411122 55 31411122 55+12344321 53 −→ +00123443 55

31534565 55

4- Resultado com zero, ou zeros, esquerda: Normaliza-se o resultado.

34122222 73−34000122 7300122100 73 resulta em: 12210000 71

Na multiplicao e diviso as mantissas e caractersticas so tratadas separa-damente.

31313142 51×12315782 65

mantissa = 0.31313142× 0.12315782 = 0, 038564583

caracterstica = 51+65− 50 = 66, onde −50 o desconto para compensaro ajuste +50 em cada ajuste do expoente da representao.

A produto :

31313142 51× 12315782 65 = 038564583 66

Com a normalizao obtm-se o resultado: 38564583 65

1.5 Anlise de erros

Resultados exatos dos clculos so um supremo ideal em anlise numrica. Qua-tro tipos de erro afetam a exatido dos clculos [1]: erros de modelo, erros dedados, erros de algoritmos e erros de arredondamento. A maioria da litera-tura em lngua inglesa faz classi�cao diferente. Estes erros no so conseqnciasde equvocos ou decises precipitadas. Diferente, por exemplo, de erros deprogramao, eles so inevitveis. Em muitos casos eles podem ser antecipados,e requerimentos de exatido podem ser impostos, i.e., eles podem ser contro-lados para permanecerem abaixo de certos limites de erros. Os limites de

Page 19: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

1.5. ANLISE DE ERROS 19

erro so parte da especi�cao do problema numrico:

|Erros do modelo + erros dos dados + erros de algoritmos + erro dearredondamento| ≤ tolerncia

Todos os erros relevantes tm que ser identi�cados e seus efeitos nos re-sultados numricos devem ser avaliados. Nas sees seguintes os quatro tiposde erros so caracterizados.

1.5.1 Erros de modelo

Em qualquer processo de modelagem, vrias grandezas so desprezadas. Omodelo resultante uma abstrao da realidade e vrios modelos podem serutilizados. O desvio inevitvel entre o modelo e o objeto modelado denotadopor erro de modelagem. necessrio estimar a magnitude dos efeitos dos errosde modelagem para garantir os requisitos de tolerncia de erro. Normalmentetais estimativas no so obtidas pois os fatores envolvidos so desconhecidos eno quanti�cados.

1.5.2 Erro de dados

Geralmente modelos no so para uma aplicao espec�ca, mas para uma classede aplicaes similares. Uma instncia identi�cada por valores de parmetros domodelo. Por exemplo, o comprimento l, o deslocamento angular inicial θ e aconstante gravitacional g (que depende da localizao geogr�ca) so parmetrosdo modelo matemtico do pndulo simples. Devido a medies inexatas e outrosfatores, os valores usados para parmetros do modelo diferem do verdadeirovalor (normalmente desconhecido); isto chamado de erro de dados. Osimpactos dos erros de dados so objetos de anlise.

1.5.3 Erro de algoritmo

Quando um problema matemtico no pode ser resolvido analiticamente usandomanipulaes algbricas, ento pode ser tentada uma soluo por algoritmo num-rico. No desenvolvimento de algoritmos numricos so feitas simpli�caes antesque uma formulao �nita do problema possa ser obtida para que o esforo com-putacional requerido seja reduzido a um nvel razovel. O desvio resultantedos resultados obtidos pelo algoritmo dos da soluo do problema matemticodenotado por erro de algoritmo.

Exemplo:

A soluo do sistema de equaes

Ax = b, A ∈ Rnxn, b, x ∈ Rn

Page 20: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

20 CAPÍTULO 1. ERROS EM COMPUTAES NUMRICAS

requer um esforo computacional proporcional a n3. Se uma soluo aproximadax satisfazendo

||Ax− b|| < ϵ

su�ciente, o custo computacional pode ser reduzido signi�cativamente. SeA no possui estrutura especial, ento somente

k ≈√κ2

ln(2/ϵ)

2, κ2 := ∥A∥2

∥∥A−1∥∥2

multiplicaes matriz-vetor so necessrias para soluo iterativa [3]. O nmero κ2o nmero condio euclidiano da matriz A (ver seo 13.8 [1]).

1.5.4 Erro de truncamento

Algoritmos numricos implantados em um computador podem somente re-alizar uma seqncia �nita de operaes aritmticas (adio, subtrao, multiplicao,diviso e lgicas). Para calcular funes prede�nidas sin, exp, ln, . . . somenteuma seqncia �nita de operaes aritmticas so executados pelo computador. Oerro devido a troca de um processo in�nito por uma seqncia �nita de operaesaritmticas chamado de erro de truncamento.

Exemplo 11 A troca da srie in�nita da exponencial:

ex =

∞∑k=0

xk

k!com Pn(x) =

n∑k=0

xk

k!

produz um erro de truncamento

etrunc(x) := Pn(x)− cos(x)

que cresce com a distncia entre x e zero.

1.5.5 Erros de discretizao

O erro resultante de uma troca de informao contnua por informao discreta,num processo de amostragem, referido como erro de discretizao. Muitosautores estendem o termo erro de truncamento para incluir o erro de discre-tizao.

Exemplo 12 O clculo de uma integral de�nida

I =

∫ b

af(x)dx

so aproximados por somas �nitas envolvendo uma malha de pontos xi ∈[a, b], i = 1, 2, · · ·n que pertencem ao conjunto de nmeros de pontos �utuan-tes e as correspondentes avaliaes aproximadas das funes {f(x1), · · · f(xn)}.

Page 21: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

1.5. ANLISE DE ERROS 21

Os erros de arredondamento comprometem a exatido dos resultados quandotenta-se minimizar os erros de truncamento re�nando-se a malha de discre-tizao.

1.5.6 Erros de arredondamento

Um computador fornece somente um conjunto �nito de nmeros: inteiros, enmero de ponto-�utuante com mantissa de comprimento �xo. Desta formaas operaes feitas num programa de computador no so geralmente executa-das exatamente. Cada passo mapeia seu resultado em um dos nmeros deponto-�utuante disponveis, normalmente o mias prximo. A diferena entreo resultado exato e o resultado arredondado de uma operao chamado deerro de arredondamento. O efeito dos erros de arredondamento acumuladossobre o resultado �nal do mtodo de aproximao chamado de efeito de errode arredondamento.

1.5.7 Estudo de caso

interessante ilustrar diferentes tipos de erro mais explicitamente [13]. Su-ponha que se quer computar f(x) para um dado x real. No clculo prticox aproximado por x pois o computador tem uma palavra �nita. A dife-rena entre x − x o erro inicial, enquanto ϵ1 = f(x) − f(x) o erro propa-gado correspondente. Normalmente f trocado por uma funo mais simplesf1 (freqentemente uma expanso em srie de potncia truncada). A diferenaϵ2 = f1(x)− f(x) o erro de truncamento. Os clculos so feitos por um com-putador, portanto no so operaes exatas. Na realidade calculamos f2(x) nolugar de f1(x), o qual um valor calculado errado de uma funo errada comargumento errado. A diferena ϵ3 = f2(x)− f1(x) o erro de arredondamentopropagado. O erro total

ϵ = f2(x)− f(x) = ϵ1 + ϵ2 + ϵ3.

Exemplo 13 Calcular e1/3 fazendo todos os clculos com 4 decimais. (Obs.Os clculos foram feitas com uma calculadora)

ϵ1 = e0.3333 − e1/3 = −0.000465196

ex ≈ f1(x) = 1 +x

1!+

x2

2!+

x3

3!+

x4

4!

para x = 0.3333

ϵ2 = f1(x)− f(x) = −(0.33335

5!+

0.33336

6!+ · · ·

)= −0.0000362750

Page 22: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

22 CAPÍTULO 1. ERROS EM COMPUTAES NUMRICAS

f2(x) = 1 + 0.3333 + 0.0555 + 0.0062 + 0.0005 = 1.3955

f1(x) = 1.3955296304 obtidos com 10 decimais

ϵ3 = −0.0000296304

ϵ = 1.3955− e1/3 = ϵ3 + ϵ3 + ϵ3 = −0.0001124250

1.6 Propagao de erros

Os erros so de�nidos como absoluto e relativo. Se x o nmero exato e x umaaproximao, ento temos:

Erro absoluto : ϵ = |x− x| (1.10)

e

Erro relativo :∣∣∣ ϵx

∣∣∣ = ∣∣∣∣x− x

x

∣∣∣∣ , (1.11)

Um nmero decimal arredondado na posio n desprezando-se todos os dgi-tos direita desta posio. O dgito na posio n deixado inalterado ou acrescidode uma unidade se o dgito da posio n+ 1 um nmero menor que 5 ou maiorque 5. Se o nmero na posio n+1 for igual a 5, o digito na posio n acrescido deuma unidade se ele for par e deixado inalterado se for impar ( a regra podeser o contrrio: o digito na posio n acrescido de uma unidade se ele for impare deixado inalterado se for par ) . Frequentemente feito o truncamento paran decimais onde todos os dgitos alm da posio n so simplesmente desprezados.

Exemplo 14 3.1415926535

Arredondamento:3.14 (2d)3.141 (3d)3.1416 (4d)3.1415927 (7d)

onde (nd) = nmero de casas decimais.

Page 23: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

1.6. PROPAGAO DE ERROS 23

Pode-se dizer de forma simplria que dgitos signi�cativos so aqueles quetm informao sobre a dimenso do nmero sem contar com a parte exponencial.Naturalmente um dgito d localizado mais esquerda tem mais informao doque um mais direita. Quando um nmero escrito com somente seus dgitossigni�cativos estes formam uma cadeia de smbolos que comea com o primeirodgito diferente de zero. Portanto se a parte fracionria termina com um ouvrios zeros, eles so signi�cativos por de�nio. Se o nmero inteiro e terminacom zeros, somente com o conhecimento da situao que podemos decidir seeles so signi�cativos ou no. Por exemplo, 8630574 escrito com 4 dgitos sig-ni�cativos 8630000.

Em muitos casos ns estimamos o erro de uma funo f(x1, x2, . . . , xn) comerros individuais nas variveis (x1, x2, ..., xn) conhecidos. Ns encontramosdiretamente que

∆f =∂f

∂x1∆x1 +

∂f

∂x2∆x2 + · · ·+ ∂f

∂xn∆xn (1.12)

onde os termos de ordem superior foram desprezados. O erro mximo dadopor

|∆f | =∣∣∣∣ ∂f∂x1

∣∣∣∣ |∆x1|+∣∣∣∣ ∂f∂x2

∣∣∣∣ |∆x2|+ · · ·+∣∣∣∣ ∂f∂xn

∣∣∣∣ |∆xn| (1.13)

O limite superior do erro geralmente bastante pessimista, em computaesprticas os erros tm uma tendncia a cancelar [13]. Por exemplo, se 20000nmeros so arredondados com quatro casa decimais e adicionados, o erromximo

1

2× 10−4 × 20000 = 1

O experimento com simulao Monte Carlo abaixo demonstra que

a previso acima pessimista para o cenrio examinado.

Exemplo 15 Clculo de z =x

y.

Se x = x+δ e y = y+γ so duas aproximaes para os nmeros exatos x e y.

Calcula-se z =

(x

y

)arredondado

=x

y=

x+ δ

y + γ+ ϵ

ento

z ∼= z +1

y· δ − x

y2· γ + ϵ

Page 24: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

24 CAPÍTULO 1. ERROS EM COMPUTAES NUMRICAS

Caso A:

x = 8 δ = 0.009 y = 5 δ = 0.04

x = x+ δ y = y + γ

x

y= 1.6

x

y= 1.589 z +

1

y· δ − x

y2· γ + ϵ = 1.589

Caso B:

x = 8 δ = −0.07 y = 5 δ = 0.08

x = x+ δ y = y + γ

x

y= 1.6

x

y= 1.561 z +

1

y· δ − x

y2· γ + ϵ = 1.56

O erro em z constitudo dos erros propagados de x e y acrescido de umnovo erro de arredondamento.

1.6.1 Cancelamento numrico

Devido ao comprimento limitado das palavras em computadores, e em con-seqncia do uso da aritmtica do ponto-�utuante com representao normalizada,as leis da aritmtica elementar no so satisfeitas. Os efeitos do uso da aritmticado ponto-�utuante sero vistos em alguns exemplos que seguem.

Os exemplos a seguir violam a lei associativa da adio:

Exemplo 16 (usando-se uma mquina com quatro dgitos decimais na man-tissa da representao)

x = 9.909 y = 1.000 z = −0.990

(x+ y) + z = 10.90 + (−0.990) = 9.910

x+ (y + z) = 9.909 + (0.010) = 9.919

Page 25: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

1.6. PROPAGAO DE ERROS 25

Exemplo 17 (usando-se uma mquina com quatro dgitos decimais na man-tissa da representao)

x = 4561 y = 0.3472

(y + x)− x = (−0.3472 + 4561)− 4561 = 4561− 4561 = 0.0000

y + (x− x) = 0.3472 + (4561− 4561) = 0.3472 + 0.0000 = 0.3472

Vejamos agora um exemplo (usando-se uma mquina com quatro dgitosdecimais na mantissa da representao) que viola a lei distributiva.

Exemplo 18 x = 9909 y = −1.000 z = 0.999

(x× y) + (x× z) = −9909 + 9899 = −10.00

x× (y + z) = 9909× (−0.0001) = −9, 909

Exemplo 19 A equao do segundo grau x2 − b · x+ ϵ = 0 tem duas solues:

x1 =b+

√b2 − 4ϵ

2e x2 =

b−√b2 − 4ϵ

2

Se b < 0 e ϵ << b , x2 expresso como a diferena de dois nmeros prati-camente iguais e poder perder muitos dgitos signi�cativos.

Se x2 for reescrito como:

x2 =ϵ

x1=

b+√b2 − 4ϵ

a raiz aproximadamenteϵ

bsem perda de dgitos signi�cativos.

Usando-se uma mquina com quatro dgitos decimais na mantissa da repre-sentao:

b = 300.0 e ϵ = 1.000√90000− 4.000 = 300.0

x1 =600.0

2.000= 300.0

x2 =300.0− 300.0

2.000=

0.0000

2.000= 0.0000

usando a relao x2 =ϵ

x1=

1.000

300.0= 0.0033 um resultado mais preciso.

Page 26: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

26 CAPÍTULO 1. ERROS EM COMPUTAES NUMRICAS

Exemplo 20 Sabe-se que para x grande senh(x) ∼= cosh(x) ∼=ex

2. Se qui-

sermos calcular e−x podemos dizer que e−x = cosh(x)− senh(x), o que con-

duz a um cancelamento perigoso. Por outro lado e−x =1

cosh(x) + senh(x)fornece resultados mais precisos.

1.6.2 Aritmtica intervalar

O clculo de erro de arredondamento estimado por aproximao de primeiraordem, descrito no �nal da indroduo da seo 1.6 acima, so inviveis para seremutilizados em mtodos numricos tpicos onde o nmero de operaes aritmticasmuito grande para permitir uma estimativa satisfatria do efeito total de to-dos os erros de arredondamentos.

A aritmtica intervalar uma alternativa para determinar limites para oerro absoluto de um algoritmo, considerando todos erros de dados e arredon-damento. A aritmtica intervalar faz clculos sistemticos atravs de intervalos[x] = [x, x] limitados de nmeros de mquinas x, x ∈ F, em vez de nmerosreais simples x. As operaes aritmticas +, −, ×, ÷ so de�nidas atravs deintervalos. Algoritmos intervalares so implementados em computadores pro-duzindo resultados intervalares garantidos conterem a soluo desejada.

A aritmtica intervalar deve ser usada com bastante senso crtico, casocontrrio os resultados con�veis de limites de erro sero, na maioria das vezes,muito pessimsticos.

Exemplo 21 Calcule y = x3 − 3x2 + 3x para [x] = [0.9, 1.1] ?

Pelo esquema de Horner

y = ((x− 3)x+ 3)x

[y] = [0.6209, 1.4191] (muito largo)

usando

y = 1 + (x− 3)3

[y] = [0.9989, 1.0011] (resultado otimo)

Para o sucesso da aplicao da aritmtica intervalar necessrio desenvolvernovos algoritmos que produzam limites de erros aceitveis. Um tratamentomais profundo da aritmtica intervalar pode ser visto em Moore [5], Alefeld[6] e Kulish [7] (para incluso dos arredondamentos direcionados da aritmticade ponto �utuante).

1.6.3 Estimativa estatstica de erros de arredondamento

Para obteno de estimativas estatsticas de erros de arredondamento relativo(ver Rademacher [8]) que causado por uma operao elementar, seus resultados

Page 27: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

1.6. PROPAGAO DE ERROS 27

so considerados uma varivel aleatria no intervalo [−eps, eps] onde |ϵ| ≤ eps .Alem disso assume-se que os erros de arredondamento atribudos as operaesdiferentes so variveis independentes. Por µϵ e σ2

ϵ denota-se o valor esperadoe varincia da distribuio do arredondamento. Eles satisfazem as seguintesrelaes gerais

σ2ϵ = E(ϵ− E(ϵ))2 = E(ϵ2)− ((E(ϵ))2 = µϵ2 − µ2

ϵ

Assumindo uma distribuio uniforme no intervalo [−eps, /eps], obtm-se

µϵ := E(ϵ) = 0, σ2ϵ = E(ϵ2) =

1

2 eps

∫ eps

−epst2dt =

1

3eps2 =: ϵ−2 (1.14)

Exames rigorosos mostram que a distribuio de arredondamento no muitouniforme (ver Sterbenz [9]). Deve-se ter em mente que o padro ideal do errode arredondamento somente uma aproximao do padro observado em clculoscomputacionais, assim os as estimativas de µϵ e σ2

ϵ devem ser determinadasempiricamente. Os resultados x dos algoritmos estando sujeitos a erros dearredondamento aleatrios tornam-se variareis aleatrias com valor esperadoµx e varincia σ2

x satisfazendo a mesma relao bsica

σ2x = E(x− E(x))2 = E(x2)− ((E(x))2 = µx2 − µ2

x

Os efeitos da propagao de erros de arredondamento das operaes elementa-res so descritas pelas seguintes frmulas para variveis aleatrias independentesx, y e constantes α, β ∈ R:

µαx±βy = E(αx± βy) = αE(x)± βE(y) = αµx ± βµy

σ2αx±βy = E((αx± βy)2)− (E(αx± βy))2

= α2E(x− E(x))2 + β2E(y − E(y))2 = α2σ2x + β2σ2

y

(1.15)

A primeira frmula acima resulta da linearidade do valor esperado. Elavalida para variveis aleatrias x, y. A segunda frmula segue da relao E(xy) =E(x) · E(y), que satisfeita se x e y so independentes. Assim

µx×y = E(x× y) = E(x)E(y) = µxµy

σ2x×y = E(x× y − E(x)E(y))2 = µx2µy2 − µ2

xµ2y

= σ2xσ

2y + µ2

xσ2y + µ2

yσ2x

(1.16)

Alem disso os valores esperados µx so trocados por valores estimados xe varincias relativas ϵ2x = σ2

x/µ2x ≈ σ2

x/x2 so considerados, ento de (1.15) e

(1.16):

z = x+ y ou z = x− y : ϵ2z = (xz )2ϵ2x + (yz )

2ϵ2y + ϵ2

z = x× y ou z = x÷ y : ϵ2z = ϵ2x + ϵ2y + ϵ2

Page 28: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

28 CAPÍTULO 1. ERROS EM COMPUTAES NUMRICAS

Os limites de erros para o resultado �nal r de uma computao numricaso obtidos da varincia relativa ϵ2r , assumindo que o erro �nal tem distribuionormal. Esta suposio justi�cada uma vez as distribuies dos erros propagadostendem a ser normal se sujeitas as muitas operaes elementares. Supondo oresultado �nal ser normal, o erro relativo do resultado �nal r limitado comprobabilidade 0.9 por 2ϵr

1.7 Padronizao do sistema de nmeros de ponto �u-

tuante

Padres internacionais so desenvolvidos pelo ISO (International StandardizationOrganization) com suas organizaes nacionais a�liadas de padronizao (ABNT- Associao Brasileira de Normas Tcnicas) . Um caso especial o campo daengenharia eltrica e eletrnica, na qual os padres so desenvolvidos pela IEC(International Electrotecnical Commission).

Nos anos 70 tentou-se desenvolver padres para a aritmtica de ponto �utu-ante binria para microcomputadores. Um dos principais objetivos era tornarprogramas mias portveis para que tcnicas de programao particulares usadaspara tratar erros de arredondamento excees (e.g. , over�ow de expoentes)fossem efetivas para arquiteturas de computadores diferentes.

Aps lenta negociao, a sociedade americana de computadores IEEE (Ins-titute of Electrical and Eletronics Engineers) adota o padro IEE 754-1985,o padro para a aritmtica de ponto �utuante binria (abreviadamente IEEE-754). Em 1984 o IEC decide considerar este padro nacional um padro in-ternacional , IEC 559:1989 da aritmtica de ponto �utuante para sistemasde microcomputadores. O padro relacionado IEEE 854-1987 generaliza 754para cobrir tanto decimal como binrio.

Padro IEEE 754 ponto �utuante a representao mais comum hoje em diapara os nmeros reais em computadores, incluindo PC com processador Intel,Macintoshes e a maioria das plataformas Unix.

1.7.1 O que so os nmeros em ponto �utuante?

Existem vrias maneiras de representar nmeros reais em computadores. A re-presentao do ponto �xo coloca um ponto (potncia) em algum lugar no meiodos dgitos, e equivalente ao uso de nmeros inteiros que representam partesde unidades. Por exemplo, pode representar um centsimo (1/100) de umaunidade, com quatro dgitos decimais, pode-se representar 32.45 ou 00.03.Outra possibilidade usar racionais e representar cada nmero como a razoentre dois inteiros.

Page 29: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

1.7. PADRONIZAODO SISTEMADE NMEROS DE PONTO FLUTUANTE29

A representao de ponto �utuante - a soluo mais usual - basicamente re-presenta reais em notao cient�ca. A notao cient�ca representa os nmeroscomo um nmero de base e um expoente. Por exemplo, 123.123 pode serrepresentado como 1.23123× 102. Em hexadecimal, o 123.FAC nmero podeser representado como 1.23FAC× 162.

A representao de ponto �utuante resolve alguns problemas de represen-tao. O Ponto �xo tem uma janela �xa de representao, o que limita de repre-sentar nmeros muito grandes ou muito pequenos. O ponto �xo propenso auma perda de preciso quando dois grandes nmeros so divididos.

A representao de ponto �utuante emprega uma �janela deslizante� depreciso adequada escala do nmero. Isso permite que ele represente nmerosde 0, 0000000000000001 e 1.000.000.000.000 com facilidade.

1.7.2 Esquema de armazenamento

Os nmeros de ponto �utuante IEEE tem trs componentes bsicos: o sinal,o expoente e a mantissa. A mantissa composta por frao e um dgito lderimplcito (explicado abaixo). A base do expoente (2) implcita e no precisaser armazenado.

A tabela a seguir mostra os esquemas de armazenamento de preciso sim-ples (32 bits) e preciso dupla (64 bits)s de ponto �utuante. O nmero de bitspara cada campo so mostradas (intervalo dos bits esto entre colchetes):

Preciso Sinal Expoente Frao Deslocamento

Simples 1 [0] 8 [1-8] 23 [9-31] 127

Dupla 1 [0] 11 [1-11] 52 [12-63] 1023

Gra�camente:

0 1 8 9 31

sinal caracterstica mantissa

e

0 1 11 12 63

sinal caracterstica mantissa

Page 30: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

30 CAPÍTULO 1. ERROS EM COMPUTAES NUMRICAS

O bit de sinal

O bit de sinal simples: 0 denota um nmero positivo; 1 denota um nmeronegativo. Invertendo-se o valor deste bit inverte o sinal do nmero.

O expoente

O campo de expoente precisa representar expoentes positivos e negativos.Para fazer isso, um deslocamento adicionado ao verdadeiro expoente, a �mde se obter o expoente de armazenamento. Para IEEE de preciso simples,este valor de 127. Assim, um expoente zero signi�ca que 127 armazenadono campo de expoente. Um valor armazenado de 150 indica um expoente de(150-127), ou 23. Por razes apresentadas mais tarde,os expoentes de −127(todos bits 0's) e 128 (todos bits 1's) so reservados para nmeros especiais.Para preciso dupla, o campo de expoente tem 11 bits e um deslocamento de1023.

A mantissa

A mantissa, tambm conhecida como o signi�cando, representa os bits de pre-ciso do nmero. composto de um bit implcito e os bits da frao.

Para saber o valor do bit lder implcito, considerar que qualquer nmeropode ser expresso em notao de ponto �utuante de muitas maneiras diferentes.Por exemplo, o nmero 4957 pode ser representado por qualquer uma dessas:

4957× 100

0.4957× 104

4.957× 103

0.004957× 106

Para maximizar a quantidade de nmeros representveis, os nmeros deponto �utuante so normalmente armazenados na forma normalizada. Naforma normalizada 4957 representado como 4.957× 103.

Uma otimizao pequena e agradvel est disponvel na base dois, j que anica forma possvel do dgito zero 1. Pode-se supor apenas um dgito de 1, eno precisa-se represent-lo explicitamente. Como resultado, a mantissa temefetivamente 24 bits de resoluo com frao de 23 bits.

Ressumindo:

1. O bit de sinal 0 para positivo, 1 para o negativo.

2. A base do expoente dois.

Page 31: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

1.7. PADRONIZAODO SISTEMADE NMEROS DE PONTO FLUTUANTE31

3. O campo de expoente contm 127 mais o verdadeiro expoente de precisosimples ou 1023 mais verdadeiro para o expoente de preciso dupla.

4. O primeiro bit da mantissa geralmente assumida como 1.f , onde f ocampo frao de bits.

Intervalo de nmeros de ponto �utuante

O intervalo de nmeros positivos de ponto �utuante podem ser divididos emnmeros normalizados (que preserva toda a preciso da mantissa), e os nmerosdesnormalizados (discutido mais tarde) que usam apenas uma poro de precisoda mantissa.

• Nmeros positivos normalizados so de�nidos dentro da faixa de:2(1−deslocamento) at (2− 2−precisao)× 2deslocamento.

• Nmeros negativos normalizados so de�nidos dentro da faixa de:−2(1−deslocamento) at −(2− 2−precisao)× 2deslocamento.

• Nmeros positivos normalizados superiores (2−2−precisao)×2deslocamento

enmeros negativos normalizados inferiores−(2−2−precisao)×2deslocamento

so transbordados (over�ows).

• Nmeros positivos normalizados menores que 2(1−deslocamento) enmeros negativos normalizados maiores que −21−deslocamento so insu�-cientes (under�ows).

Preciso Desnormalizados Normalizados

Simples±2−149 ≈ ±10−44.85 ate

(1− 2−23)× 2126 ≈ 1037.93±2−126 ≈ ±10−37.93 ate

(2− 2−23)× 2127 ≈ 1038.53

Dupla±2−1074 ≈ ±10−323.31 ate

(1− 2−52)× 21022 ≈ 10307.65±2−1022 ≈ ±10−307.65 ate

(2− 2−52)× 21023 ≈ 10308.25

Dado que o sinal dos nmeros de ponto �utuante dado por um bit lderespecial, o intervalo de nmeros negativos dado pela negao dos valores acima.

H cinco diferentes intervalos numricos que a preciso simples de nmerosde ponto �utuante no so capazes de representar:

• Nmeros negativos menores do que −(2− 2−23)× 2127. (over�ow nega-tivo)

• Nmeros negativos maiores do que −2−149. (under�ow negativo)

• Zero.

Page 32: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

32 CAPÍTULO 1. ERROS EM COMPUTAES NUMRICAS

• Nmeros positivos menores do que 2−149. (under�ow positivo)

• Nmeros positivos superiores (2− 2−23)× 2127. (over�ow positivo)

Over�ow signi�ca que os valores so muito grande para a representao, eassim, da mesma forma que os inteiros podem transbordar. Under�ow umproblema menos grave, porque ele apenas denota uma perda de preciso, quegarantido ser muito prximo de zero.

Segue uma tabela com o intervalo efetivo (excluindo valores in�nitos) denmeros IEEE de ponto �utuante:

Preciso Binrio Decimal

Simples ±(2− 2−23)× 2127 ≈ ±1038.53

Dupla ±(2− 2−52)× 21023 ≈ ±10308.25

Observao 3 Note-se que os valores extremos ocorrem (independentementedo sinal), quando o expoente o valor mximo para os nmeros �nitos (2127

para preciso simples, 21023 para o dupla), e, a mantissa est completa de 1's(incluindo 1 bit da normalizao).

1.7.3 Valores Especiais

IEEE reserva valores do campo expoente com todos 0's e 1's para representartodos os valores especiais no sistema de ponto �utuante.

Zero

Como mencionado acima, o zero no diretamente representvel no formatodireto, devido suposio de um 1 esquerda (que seria preciso especi�car numamantissa zero real para produzir o valor de zero). Zero um valor especialdenotado com um campo de expoente zero e um campo de mantissa zero.Observe que −0 e 0 so valores distintos, embora ambos so comparados comoiguais.

Desnormalizados

Se o expoente todo de 0's, mas a mantissa for diferente de zero (o que poderiaser interpretado como zero), ento o valor um nmero desnormalizado, queno tem um lder assumido 1 antes do ponto binrio. Portanto representa umnmero (−1)s × 0.m × 2−126, onde s o bit de sinal e m a mantissa. Parapreciso dupla, desnormalizada nmeros so da forma (−1)s × 0.m × 2−1022.A partir disto se pode interpretar o zero como um tipo especial de nmerodesnormalizado.

Page 33: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

1.7. PADRONIZAODO SISTEMADE NMEROS DE PONTO FLUTUANTE33

In�nito

Os valores (+)in�nito (+∞) e (-)in�nito (−∞), so indicados com um expo-ente de 1's e uma mantissa de 0's. O bit de sinal faz a distino entre in�nitopositivo e in�nito negativo. Ser capaz de denotar o in�nito como um valorespec�co til porque permite as operaes para tratar de situaes de estouro(over�ow). As operaes com valores in�nitos so bem de�nidas no IEEE deponto �utuante.

No um nmero

O valor NaN (Not a Number) usado para representar um valor que no repre-senta um nmero real. NaN so representados por um padro de bits com umexpoente de 1's e uma mantissa diferente de zero. Existem duas categoriasde NaN: QNaN (Quiet NaN) e SNaN (Sinalizao NaN).

A QNaN um NaN com o conjunto mais signi�cativo de bits na mantissa.QNaN propaga livremente atravs da maioria das operaes aritmticas. Estesvalores saltam de uma operao quando o resultado no de�nido matematica-mente.

Um SNaN um NaN com o bit mais signi�cativo da mantissa limpa. Elausada para sinalizar uma exceo quando utilizado em operaes. SNaN pode sertil para atribuir a variveis no inicializadas como armadilha de uso prematuro.

Semanticamente, QNaN denotam operaes indeterminadas, enquanto SNaNdenotam operaes invlidas.

1.7.4 Parmetros de um sistema de nmero de ponto-�utuante

A notao de um sistema de ponto �utuante

F(β, t, m, M, dnorm)

Quatro parmetros e um valor booleano:

1. Base: β ≥ 2

2. Preciso: t ≥ 2

3. menor expoente: m < 0

4. maior expoente: M > 0

5. indicador de normalizao: dnorm ∈ booleano

Page 34: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

34 CAPÍTULO 1. ERROS EM COMPUTAES NUMRICAS

dnorm= true caso o sistema contenhanmeros denormalizados (sub-normal)

= false para o sistema normalizado

caracterizam cada sistema de nmeros IEEE/IECA notao de um sistema de ponto �utuante F(β, t, m, M, dnorm) satis-

faz as seguintes relaes

F(b, p, emin, emax, true) = FN (b, p, emin, emax) ∪ FD(b, p, emin, emax)

F(b, p, emin, emax, false) = FN (b, p, emin, emax).

Exemplo 22 (Intel) De acordo com a norma IEC/IEEE os sistemas de nu-merao utilizados nos microprocessadores Intel so F(2, 24,−125, 128, true) eF(2, 53,−1021, 1024, true) para preciso simples e preciso dupla. Micropro-cessadores Intel tm preciso estendida F(2, 64,−16381, 16384, true).

Exemplo 23 (IBM System/390) Fornece trs sistemas de numerao hexa-decimal F(16, 6,−64, 63, false) para short precision, F(16, 14,−64, 63, false)para long precision e F(16, 28,−64, 63, false) para extended precison.

Exemplo 24 (Cray) Fornece dois sistemas de numerao F(2, 48,−16384 , 8191, false)e F(2, 96,−16384, 8191, false).

Exemplo 25 (Calculadoras) Calculadoras cienti�cas so normalmente for-necidas com um nico sistema de numerao F(10, 10,−98, 100, false). Algu-mas trabalham com maior preciso interna enquanto exibem somente dez casasdecimais.

Exemplo 26 Sabemos que os nmeros reais podem ser representados por umareta contnua. Entretanto, em ponto �utuante podemos representar apenaspontos discretos da reta real. Para ilustrar este fato consideremos o seguinteexemplo.

Quantos e quais nmeros podem ser representados no sistema FN (2, 3, 1, 2)?

Soluo: Temos que β = 2 ento os dgitos podem ser 0 ou 1; m = 1 e M =2 ento −1 ≤ k ≤ 2 e t = 3. Ento os nmeros so da forma:

±0.m1m2m3 × βk.

Tem-se duas possibilidades para o sinal, uma possibilidade para m1, duaspara m2 , duas para m3 e quatro para as formas de βk. Fazendo o produto2 · 1 · 2 · 2 · 4 obtm-se 32. Portanto neste sistema pode-se representar 33

Page 35: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

1.7. PADRONIZAODO SISTEMADE NMEROS DE PONTO FLUTUANTE35

nmeros visto que o zero faz parte de qualquer sistema. Para responder quaisso os nmeros lista-se as formas da mantissa: 0.100, 0.101, 0.110 e 0.111 eas formas de βk so: 2−1, 20, 21 e 22. Tem-se ento os seguintes nmeros:

0.100(2) ×

2−1

20

21

22

=

0.25(10)0.5(10)1.0(10)2.0(10)

desde que 0.100(2) = 0.5(10);

0.101(2) ×

2−1

20

21

22

=

0.3125(10)0.625(10)1.25(10)2.5(10)

desde que 0.101(2) = 0.625(10);

0.110(2) ×

2−1

20

21

22

=

0.375(10)0.75(10)1.5(10)3.0(10)

desde que 0.110(2) = 0.75(10);

0.111(2) ×

2−1

20

21

22

=

0.4375(10)0.875(10)1.75(10)3.5(10)

desde que 0.111(2) = 0.875(10);

Exemplo 27 Considerando o mesmo sistema do exemplo 26, represente osnmeros: x1 = 0.48, x2 = 4.8 e x3 = 0.18 dados na base 10.

Soluo: Fazendo os clculos obtemos que: 0.4810 = 0.111 × 2−1, 4.810 =0.100× 23 e 0.1310 = 0.100× 2−2. Apenas o primeiro nmero pode ser repre-sentado no sistema, pois para o segundo teremos over�ow e para o terceirounder�ow. Observe que o nmero 0.4810 tem no sistema dado, a mesmarepresentao que o nmero 0.4375(10).

Page 36: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

36 CAPÍTULO 1. ERROS EM COMPUTAES NUMRICAS

1.8 Programas de preciso mltipla

Em certas aplicaes o sistema de ponto �utuante fornecido pelo computadortem preciso ou intervalo insu�ciente. Se os clculos so feitos em preciso sim-ples, ento se usa preciso dupla para tentar remediar di�culdades e, se aindaassim, a preciso dupla insu�ciente, tenta-se a preciso estendida. Contudoesta estratgia prejudica a portabilidade dos programas, pois poucos sistemasde computadores fornecem mais que dois nveis de preciso. Alm disso, estaestratgia de uso limitado: existem raramente quatro nveis, ento o nvel depreciso pode no ser adaptado aos requisitos de uma aplicao particular. Umasoluo o uso de um software de preciso mltipla (Maple, Matlab, etc.) , quepermite aumentar a preciso independente da arquitetura.

Estes softwares permitem uma escolha �exvel da preciso e/ou intervalonecessrio dos nmeros de ponto �utuante. A desvantagem mais sria das im-plementaes de sistemas de numerao via software comparada a hardware otempo de processamento (crescimento em tempo de execuo por um fator >100 [10]

1.9 A in�uncia da aritmtica do ponto �utuante

Os problemas com o uso da aritmtica de ponto �utuante so fartamente dis-cutido na literatura, o artigo [11] clssico. A seguir veremos alguns casosselecionados.

Para resolver um sistema de equaes na linear, a funo f : Rn → Rn deve serimplementada na forma de um (sub)programa. Ento os zeros da implementaof : Fn → Fn so determinados, em vez da funo matematicamente de�nida f .O termo zero perde seu signi�cado comum mesmo no caso de funes de umavarivel (n = 1) porque a equao

f(x) = 0 com f : F → F

pode ter vrias solues (zeros) ou nenhuma soluo na vizinhana de um zeroisolado da funo original.

Exemplo 28 (zeros no encontados[12], pag. 279)A funo

f(x) = 3x2 +1

π4ln(π − x)2 + 1 (1.17)

Tem duas razes no intervalo [3.14, 3.15]; ϵ1 ∈ [3.14, π] e ϵ2 ∈ [π, 3.15].Estes zeros no podem ser determinados numericamente, desde que

f(x) > 0

Para todo x ∈ F(2, 53,−1021, 1024, true) para a qual 1.17 pode se calculado.Os dois zeros de f ,

Page 37: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

1.9. A INFLUNCIA DA ARITMTICA DO PONTO FLUTUANTE 37

Figura 1.1: Planilha do software matemtico Mathcad usada para traar o gr-�co da funo f(x) = 3x2+ 1

π4 ln(π−x)2+1. A funo no tem zeros quando cal-culada numericamente com F(2, 53,−1021, 1024, true) (analiticamente temdois)

x∗1 ≈ π − 10−647 e x∗2 ≈ π + 10−647

esto localizados muito prximos de π, e f(x) ≤ 0 valido somente no intervalolocalizado entre dois nmeros de mquina. A implementao f : F → F no possuizeros (ver �gura 1.1).

Exemplo 29 (grande nmero de zeros [12], pag. 279 )O polinmio

P7(x) = x7 − 7x6 + 21x5 − 35x4 + 35x3 − 21x2 + 7x− 1 =

= ((((((x− 7) + 21)x− 35)x+ 35)x− 21)x+ 7)x− 1 = (x− 1)7

tem somente um zero em x∗ = 1. A implementao de P7 : F → F usandoo esquema de Horner tem milhares de zeros na vizinhana de x = 1 [cl-culo com F(2, 24,−125, 128, true), i.e., com uma aritmtica de preciso sim-ples IEC/IEEE]; para x > 1 existem milhares de pontos com valores P7 < 0,embora P7 > 0 nesta regio e, similarmente, para x < 1 existem milhares depontos com valores P7 > 0, embora P7 < 0 nesta regio. A fenmeno do Caossurge do cancelamento dos dgitos mais signi�cativos (ver �gura 4.10 e 4.11[1], pag 145).

Page 38: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

38 CAPÍTULO 1. ERROS EM COMPUTAES NUMRICAS

Figura 1.2: Software matemtico Mathcad usado na soluo do sistema linear

Exemplo 30 (soluo do sistema linear inspirado em [12], pag. 233)

A =

8 3 07 8 3

7 8 3. . .

. . .7 8 3

0 7 8

e b =

111818..

1815

A �gura 1.2 mostra uma planilha Mathcad para resoluo do sistema linear

A · x = b. Embora o residual seja praticamente zero para todos as compo-nentes do vetor soluo, temos um resultado numericamente insatisfatrio:

x =

111··11

= soluo EXATA !

Obs. A funo verifylss do Matlab Intlab toolbox produziu os resultadosde acordo.

Exemplo 31 (avaliao de funo)

Page 39: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

1.9. A INFLUNCIA DA ARITMTICA DO PONTO FLUTUANTE 39

Figura 1.3: Software matemtico Maple usado na avaliao da funo f(x, y) =333.75 ∗ y6 + x2 ∗ (11 ∗ x2 ∗ y2 − y6 − 121 ∗ y4 − 2) + 5.5 ∗ y8 + x/(2 ∗ y)

Abaixo vamos avaliar a funo f(x, y) = 333.75 ∗ y6 + x2 ∗ (11 ∗ x2 ∗ y2 −y6 − 121 ∗ y4 − 2)+ 5.5 ∗ y8 + x/(2 ∗ y) usando o Maple com preciso variada.A �gura 1.3 mostra a planilha Maple onde s a partir de 37 dgitos que osresultados apresentados so numericamente vlidos.

Page 40: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

40 CAPÍTULO 1. ERROS EM COMPUTAES NUMRICAS

1.10 Exerccios Propostos

1) Converta os seguintes nmeros decimais para sua forma binria:

a) 35 b) 2345 c) 0.1218 d) 67.67 e) 95 f) 2500g) 2000 h) 655 i) 722 j) 3.6× 1021 l) 231 m) 2.5× 10−18

2) Converta os nmeros binrios para suas formas octal, hexadecimal e de-cimal:

a) 1011012 b) −1101010112 c) −0.11012d) 0.1111111012 e) 0.00001012 f) 101012g) −111010110112 h) −0.11000012 i) 0.1011001111012j) 0.0011001012

3) Reescreva os nmeros seguintes na representao do ponto-�utuante nor-malizada:

a) 27.534 b) −89.901 c) 18× 1021 d) 1.3756× 10−7

e) 11.01112 f) −111.01012 g) 0.001012 h) 1110101012

4) Seja o nmero seguinte em ponto-�utuante num computador de 32 bits:

0010.0101.0000.0001.0001.1001.1100.1110

Se o primeiro bit o sinal do nmero, os oito seguintes a caracterstica ob-tida com adio de 128 ao expoente do nmero ponto-�utuante, e os 23 restantesso a mantissa, responda s questes seguintes:

a) O nmero est normalizado? Se no o normalize.

b) Qual o sinal do nmero?

c) O valor absoluto do nmero menor que 1?

5) Repita a questo 4 com o nmero:

1000.0000.0110.1101.1010.1101.1011.0110

6) Para a representao da questo 4, quais so aproximadamente o maior eo menor nmero, o menor nmero positivo e o prximo menor nmero positivo.

7) Represente os nmeros binrios da questo 2 na maquina binria que uti-liza o seguinte esquema de representao de ponto-�utuante:

↘ ↘ ↘

Page 41: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

1.10. EXERCCIOS PROPOSTOS 41

sinal mantissa caracterstica

a) o bit de sinal codi�cado 0 se o nmero positivo e 1 se o nmero negativo.

b) a caracterstica obtida com adio de 128 ao expoente do nmero ponto-�utuante.

8) Converter para base 10 os valores representados na mquina binria daquesto 7) acima:

a)1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 1

b)0 1 1 1 0 1 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 0 1

9) Seja um sistema de aritmtica de ponto-�utuante na base decimal comquatro dgitos na mantissa e dois na caracterstica, 1 digito de sinal da man-tissa e 1 digito sinal da caracterstica.

↓ mantissa ↓ expoente

sinal sinal

da mantissa do expoente

O sinal codi�cado (+) se o nmero positivo e (-) se o nmero negativo.

Dados os nmeros:

x = 0.77237 y = 0.2145× 10−3 z = 0.2585× 101

Efetue as seguintes operaes:

a) x+ y + z b) x− y − z c) x/y d) (xy)/z e) x(y/z)

10) Use a aritmtica do ponto-�utuante, com a representao da questo 9acima, para somar e subtrair os seguintes pares de nmeros:

a) 5.414234 e 2.27531 b) 5.414234 e 22.7531c) 54.67 e 0.328 d) 5.4× 10−8 e 3.14× 10−5

11) Use a aritmtica do ponto-�utuante, com a representao da questo 9acima, para realizar as operaes aritmticas seguintes:

a) 3.14× 7.47 b) 75.81× 8.15 c) 1.35÷ 28.5 d) 4000÷ 150

Page 42: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

42 CAPÍTULO 1. ERROS EM COMPUTAES NUMRICAS

12) Calcular as cotas dos erros absolutos e relativos que se comete ao setomar como valores de:

a) 22/7 b) 333/116 c) 355/113 d)√3 +

√2

13) Ao se calcular cos(x) ∼= 1− x2

2!− x4

4!− x6

6!para x = 5/7, quais so os

erros: inicial, de truncamento, de arredondamento e total cometidos quandose realiza os clculos arredondados em duas casas decimais.

Page 43: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

Bibliogra�a

[1] C.W. Ueberhuber: Numerical Computation: Methods, software andanalysis. Springer Berlin Heidelberg (1997) Vol. 1 474 pages

[2] J. Stoer, R. Bulirsh: Introduction to Numerical analysis. 2nd ed.Springer-Verlag, Berlin Heidelberg New York Tokio (1993)

[3] J.F. Traub, H. Wozniakowski: On the Optimal Solution of Large LinearSystems. J. Assoc. Comp. Mach. 31 (1984), pp. 545-559.

[4] R.W. Hamming, E.A. Feigenbaum Introduction to applied numericalanalysis. McGraw-Hill, Inc New York (1971)

[5] R.E. Moore: Interval Analysis. Prentice Hall, Englewood Clifs, NJ, USA(1966)

[6] G. Alefeld, J. Herzberger: Introduction to Interval Computations. Aca-demic Press, New (1966)

[7] U.W. Kulish and W.L. Miranker: The Arithmetic of the Digital Com-puters: A New Approach. SIAM Review 28, 1 (1986)

[8] Rademacher, H, A.: On the accumulation of errors in processes of inte-gration on higg-speed calculating machines. Procedings of a symposiumon large-scale digital calculating machinary. Annals Comp. Labor. Ha-vard Univ. 16 (1948) pp 176-185

[9] Sterbenz, P.H.: Floating Point Computation. Prentice Hall, EnglewoodClifs, NJ, USA (1974)

[10] Bailey, D.H.: MPFUN - A portable High Performance MultiprecisionPackage. NASA Ames Tech. Report RUR-90-022, (1990)

[11] Goldeberg, D: What Every Computer Scientist Should Know AboutFloating-Point Arithimethic. ACM Computing Surveys, 23 (1991) pp5-48

[12] C.W. Ueberhuber: Numerical Computation: Methods, software andanalysis. Springer Berlin Heidelberg (1997) Vol. 2 495 pages

43

Page 44: Srgio Galdino 2 de Setembro de 2013mc1poli.pbworks.com/w/file/fetch/68659902/Métodos01_CAP1... · 2020. 12. 30. · Mtodos Numricos para Engenheiros com Scilab Srgio Galdino 2 de

44 BIBLIOGRAFIA

[13] Frberg, C-E.: Introduction to numerical analysis. 2nd ed. Addison-Wesley Pub. Co. , Reading, Mass, , 1965

[14] Sli, E and Mayers, D. F.: An Introduction to Numerical Analysis. Cam-bridge University Press, 2003

[15] Conte, S.D. and Boor, C.: Elementary Numerical Analysis: An algo-rithmic approach. 3rd ed. McGraw-Hill Book Company, New York, 1980