Computacao Numerica

Fazer download em pdf ou txt
Fazer download em pdf ou txt
Você está na página 1de 9

Clculo Numrico Aula 1: Computao numrica . Tipos de Erros.

Aritmtica de ponto flutuante


Computao Numrica
- O que Clculo Numrico? Clculo numrico uma metodologia para resolver problemas matemticos utilizando o computador. So utilizadas apenas as operaes que os computadores podem realizar, ou seja: - quatro operaes bsicas (adio, subtrao multiplicao e diviso) - operaes lgicas (comparao =, conjuno e, disjuno ou e negao no). Uma soluo obtida por meio de um mtodo numrico ser sempre numrica enquanto que solues analticas podem ser dadas em termos de funes matemticas. - Para que serve? Serve para resolver problemas em que o clculo de uma soluo analtica seja muito complexo ou mesmo no exista.

x Exemplo: e dx
2

x No exite uma funo cuja derivada seja f (x) = e

possvel obter uma soluo via clculo numrico. Para isso, deve-se definir um intervalo [a b] e calcular uma aproximao da rea sob a curva definida pela funo. Dessa forma, teremos o valor aproximado para a integral no intervalo [a b]. S ser possvel calcular este valor numericamente. Note que, o resultado ser um valor numrico e no uma funo.

0.7

0.6

0.5

0.4

0.3

0.2

0.1

0 0.5

1.5

2.5

3.5

- Dado um problema prtico qualquer como resolv-lo utilizando as tcnicas do clculo numrico? Vamos dividir o processo de soluo em trs etpas: Problema Real Modelo Matemtico Soluo Numrica

Etapa1: Definir o problema real a ser resolvido. Etapa2: Encontrar um modelo matemtico para representar o problema real. Etapa3: Calcular uma soluo numrica do problema originado da modelagem matemtica. Esta etapa deve ser dividida em trs partes: Determinar um mtodo numrico de soluo e construir um algoritmo (descrio de um conjunto de comandos que resulta em uma seqncia finita de acontecimentos) . Transcrever o algoritmo em um cdigo (linguagem que possa ser interpretada pelo computador). Editar o cdigo em um computador e execut-lo at que sejam eliminados os erros e possam ser obtidos os resultados.

Durante as etapas de soluo de um problema, podem surgir erros que alteram os resultados obtidos. Como resolver tal problema? Primeiramente necessrio conhecer os tipos de erros e desenvolver maneiras para minimiz-los.

Erros
Quando resolvemos problemas utilizando computao numrica os resultados obtidos so em geral aproximados. Assim, torna-se importante medir o quo prximo este resultado est do valor exato. Para quantificar essa aproximao comum utilizar-se o erro. Erro absoluto : valor real valor aproximado Erro relativo : (valor real valor aproximado) / valor real. Erro percentual: 100*erro relativo Exemplo: valor exato=10000 valor aproximado=9999 Erro absoluto = 1 Erro relativo= 1/10000 = 0,0001 Erro percentual= 0,01% valor exato=10 valor aproximado=9

Erro absoluto = 1 Erro relativo= 1/10 = 0,1 Erro percentual= 10%

O que podemos concluir?


O erro absoluto no representa satisfatoriamente o erro cometido.

Tipos de erros
Erros inerentes- surgem de modelos matemticos incorretos, medidas imprecisas. O usurio no tem condies de evit-los. Erro de truncamento so erros que surgem quando um processo matemtico infinito substitudo por uma parte finita dele. Por exemplo, para calcular funes como sen(x) ou ex em um computador necessrio aproxim-las por uma srie infinita e utilizar apenas um nmero finito de termos. srie infinita Nmero finito de termos n

sen( x) = (1) n
n =0

x 2 n+1 (2n + 1)!

(1) n
n=0 n 1

n 1

x 2 n +1 (2n + 1)!

xk e = k = 0 k!
x

xk k! k =0

A medida que n aumenta o erro de truncamento diminui. Erro de arredondamento- so erros cometidos pelos computadores ao realizarem operaes aritmticas. Um nmero decimal qualquer no pode ser representado exatamente em um computador, pois ele deve ser convertido para binrio (base 2) e armazenado em um nmero finito de bits. A seguir, vamos relembrar como so feitas as converses entre as bases decimal e binria.

Sistema de numerao
No nosso cotidiano estamos acostumados a lidar com nmeros na base 10, entretanto, em computao numrica esta base pode ser diferente de 10. o caso de microcomputadores e estaes de trabalho que utilizam a base 2, ou computadores de grande porte da linha IBM que utilizam a base 16. Assim, importante conhecer a representao de nmeros em bases diferentes da base decimal. A prpria representao do nmero em uma determinada base pode ser j uma fonte de erros. Uma representao exata em uma base, no significa que tenha representao exata em uma outra base. Um nmero N qualquer pode ser descrito numa base de acordo com a seguinte expresso polinomial:

Parte Inteira
N = a m m + a m 1 m 1 + ... + a1 1 + a o Onde: 0 a k <

Parte Fracionria
+ a 1 1 + a 2 2 + ... + a n n

Exemplos: (0,347)10 = 3 10 1 + 4 10 2 + 7 10 3
(1101) 2 = 1 2 3 + 1 2 2 + 0 21 + 1 2 0 Observe que os algarismos que representam o nmero na base so os coeficientes da expresso polinomial. importante tambm observar que o deslocamento da vrgula no nmero realizado pela multiplicao do nmero pela correspondente potncia da base do nmero. Exemplos: (0,2345) 10 = (23,45 10 2 ) 10 (0,1101) 2 = (11,01 2 2 ) 2

Sistemas decimal e binrio:


O sistema decimal baseado em dez dgitos diferentes, por isso chamado de sistema de numerao decimal. Todos os nmeros do sistema de numerao decimal so escritos usando-se uma combinao dos seguintes dez dgitos 0 1 2 3 4 5 6 7 8 9

Por exemplo, considere o nmero 4538


:

4
Multiplica por: Somando tudo:

5 102

3 101

8 100

103

4 103 + 5 102 + 3101 + 8100 = 4538

Por analogia, se o sistema decimal baseado em dez dgitos, ento o sistema binrio deve ser baseado em dois dgitos? Exatamente. Nmeros no sistema binrios so escritos usando-se apenas os dois seguintes dgitos: 0 e 1

Converses:
- Binrio para decimal Exemplo: Converter 11001110 para decimal: 1
Multiplica 7 2 por:

1
26

0
25

0
24

1
23

1
22

1
21

0
20

Somando: 1 27 + 1 26 +0 25 + 0 24 + 1 23 + 1 22+ 1 21 +1 20 = 206 tudo:

Converter 0,111 para decimal: 1 Multiplica por: Somando tudo: 2-1 1 2-2 1 2-3

1 2-1 + 1 2-2 + 1 2-3 =0,875

- Decimal para binrio Exemplo: Converter 144 para binrio: Divida 144 por 2. Pegue o quociente da diviso e novamente divida-o por 2. Continue o processo at que o quociente seja 1. O correspondente binrio ser formado pelo nmero 1 seguido dos restos da diviso escritos na ordem inversa. 144 Dividido por 2 Quociente Resto: Ordem inversa Resulta em: 72 0 0 1 36 0 0 0 18 0 1 0 9 0 0 1 4 1 0 0 2 0 0 0 1 0 0 0 0 72 36 18 9 4 2

- Parte fracionria Multiplique sucessivamente a parte fracionria por 2 at que ela seja igual a zero. Se no for possvel tornar a parte fracionria igual a zero um indicativo que o nmero no possui representao exata. O nmero binrio representado pelas partes inteiras resultantes. Exemplo: Converter 0,875 para binrio. Multiple por 2 0,875 0,750
2 1,750 1 0,111 2 1,500 1

0,500 2 1,000 1

Parte inteira Resultado

Exemplo: Converter (0,1)10 para a base 2. 0,1 0,2 0,4 0,8 0,6 0,2 0,4

0,8 0,6

0,2

0,4

0,8 0,6

2 2 2 2 2 0,2 0,4 0,8 1,6 1,2 0 0 0 1 1 (0,1)10 (0,0001100110011...) 2

2 0,4 0

2 0,8 0

2 2 1,6 1,2 1 1

2 0,4 0

2 0,8 0

2 2 1,6 1,2 1 1

Note que esse nmero no possui representao exata na base 2. Portanto, a operao seguinte no ter resultado exato na utilizao de microcomputadores.

0,1 = 9,9999999........
i =1

100

Aritmtica de ponto flutuante


A representao de nmeros reais mais utilizada em mquinas a do ponto flutuante . Esse nmero tem trs partes: o sinal, a parte fracionria (mantissa) e o expoente,

.d1d2 d3... dp Be , sendo dis : dgitos da parte fracionria, d1 0, 0 di B-1 : base (em geral 2, 10 ou 16), t: no de dgitos, e: expoente inteiro.
Exemplo: x=(34,2)10; =10; t=4 x=0,3420 102 x=(0,1)10 ; =2; t=9 x=0,110011001 2-3

Uma aritmtica de ponto flutuante F caracterizada por quatro nmeros inteiros: F( , t , e min , e max ). Pode-se observar que F um subconjunto dos nmeros reais, ou seja F . Exemplo: Considere F(2,2,-1,2 ), com nmero normalizado, isto , d1 0. Os nmeros sero:

.10 2e

ou

.11 2e , sendo -1 e 2.

Convertendo para decimal, temos:


.10 =

.11 =

Com isso, os nicos nmeros positivos representveis nesse computador so: Mantissa 1/2 2 e 3/4 2 para
e

Expoentes

e= -1, 0, 1 e 2

Ou seja, , , 1, 2, 3/8, 3/4, 3/2 e 3, que podem ser representados na reta numerada:

1 4

3 8

1 2

3 4

3 2

O nmero total de elementos de uma aritmtica de ponto flutuante dado por:


numero de elementos = 2( 1) t 1 (e max e min + 1) + 1 Para o exemplo anterior temos que o nmero de elementos 17. (8 positivos, 8 negativos e o zero). O conjunto dos nmeros de ponto flutuante discreto, e no contnuo como os nmeros reais. No temos mais o conceito que entre dois nmeros sempre existe um outro. Esse fato pode ter conseqncia desastrosa.

Parmetros de aritmticas de ponto flutuante utilizadas em alguns computadores digitais. Mquina e Aritmtica Cray-1 Preciso Simples Cray-1 Preciso Dupla DEC VAX formato G Dupla DEC VAX formato D Dupla Calculadoras HP 28 e 48G IBM 3090 Preciso Simples IBM 3090 Preciso Dupla IBM 3090 Preciso Extendida IEEE Preciso Simples IEEE Preciso Dupla PDP 11
Control Data 6600

2 2 2 2 10 16 16 16 2 2 2
2

t
48 96 53 56 12 6 14 28 24 53 24
48

e min -8192 -8192 -1023 -127 -499 -64 -64 -64 -126 -1022 -128
-976

e max 8191 8191 1023 127 499 63 63 63 127 1023 127


1070

u
4 10 15 110 29 110 16 110 17 5 10 12 5 10 07 110 16 2 10 33 6 10 8 4 10 15 1,19 10 7 7,11 10 15

IEEE- Preciso Simples Comprimento total Mantissa 32 bits 23 bits Maior expoente Menor expoente 127 -126 Nmero de dgitos 7

Expoente 8 bits Maior nmero 3,4 x 1038

Base 2 bits Menor nmero 1,18 x 10-38

O conjunto de nmeros de nmeros reais infinito, entretanto, a sua representao em um sistema de ponto flutuante limitada, pois um sistema finito. Essa limitao tem duas origens:

a faixa dos expoentes limitada ( e min e e max );

Sempre que uma operao aritmtica produz um nmero com expoente superior ao expoente mximo, tem-se o fenmeno de overflow. De forma similar, operaes que resultem em expoente inferior ao expoente mnimo tem-se o fenmeno de underflow. No caso do exemplo dado, pode-se observar em quais regies ocorrem o overflow e o underflow. Neste caso, considera-se a parte positiva e negativa da aritmtica do exemplo anterior.

-3,0

-1 4

1 4

3,0

Overflow

Underflow

Overflow

Exemplos: Considere uma aritmtica de ponto flutuante F(10,2,-5,5) -overflow: Sejam x =875 e y=3172 . Calcular x y. Primeiro, deve-se arredondar os nmeros e armazena-los no formato indicado. A operao de multiplicao efetuada usando 2t dgitos. x = 0.88x 10 3 e y =0 .32 x 104, xy = 0.2816 x 10 7 Como o expoente maior que 5, resulta em overflow -underflow: Sejam x =0,0064 e y=7312 Calcular x y. Primeiro, deve-se arredondar os nmeros e armazena-los no formato indicado. A operao de diviso efetuada usando 2t dgitos. x = 0.64x 10 -2 e y = 0.73 x 104, xy = 0.8767 x 10 -6 O resultado dessa operao resultou em um valor menor que o computador pode armazenar, ou seja, resulta em underflow

a mantissa pode representar um nmero finito de nmeros ( t 1 m t 1 )


1) Considere a representao binria de 0,6 e 0,7. 0,6=0,100110011001... 0,7=0,1011001100110...

Se esses dois nmeros forem representados na aritmtica F(2,2,-1,2 ) eles sero representados igualmente por 0.10 20. Esse nmero equivale a 0,5 em decimal. Portanto, tanto o 0,6 quanto o 0,7 sero considerados 0,5. 2) Operaes em F(10,2,-5,5).

- Sejam x =4,32 e y=0,064 Calcular x + y. A adio aritmtica de PF requer o alinhamento dos pontos decimais dos dois nmeros. x = 0.43x 10 1 e y = 0.0064 x 101, x+y = 0.4364 x 10 1 Resultado com 2 dgitos : x+y = 0.44 x 10 1 - Sejam x =372 e y=371 Calcular x - y. x = 0.37x 10 3 e y = 0.37 x 103, x-y = 0.00 x 10 0 - Sejam x =691 e y=2,71 Calcular x + y. x = 0.69x 10 3 e y = 0.0027 x 103, x+y = 0.6927 x 10 3 Resultado com 2 dgitos : x+y = 0.69 x 10 1 Mesmo que as parcelas ou fatores de uma operao possam ser representados exatamente no sistema, no se pode esperar que o resultado armazenado seja exato. Exerccio: Seja a=7,8953083 e b=7,8949992 Em uma calculadora comum faa: a2, b2, 2ab, 2 (ab), (a-b)2, a2 2ab + b2, a2 2(ab) + b2, a2 + b2 2(ab) O que voc conclui disso? Referencias; F. F. Campos. Algoritmos Numricos. LTC. 2001 Notas de Aula: Tcnicas Computacionais em Sistemas de Energia Eltrica EEL 6005. Disponvel em: www.labspot.ufsc.br/~campagno/pos/ComputacaoCientifica_Cap1.doc J. D. Santos; Z. C. Silva. Mtodos Numricos. Editora Universitria-UFPE. 2006

Você também pode gostar