Computacao Numerica
Computacao Numerica
Computacao Numerica
x Exemplo: e dx
2
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
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
(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
4
Multiplica por: Somando tudo:
5 102
3 101
8 100
103
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
Converter 0,111 para decimal: 1 Multiplica por: Somando tudo: 2-1 1 2-2 1 2-3
- 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
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 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
.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.
.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
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
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
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:
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
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