Você está na página 1de 15

Contedo: 1.! Aritmtica Computacional 2.! Soluo de Equaes No-Lineares 3.! Soluo de Sistemas de Equaes Lineares 4.!

Interpolao 5.! Aproximao de Funes 6.! Integrao Numrica 7.! Resoluo Numrica de Equaes Diferenciais Ordinrias Referncias: ! Franco, N.B. Clculo Numrico. So Paulo: Pearson, 2006. ! Sperandio, D.; Mendes, J.T.; Silva, L.H.M. Clculo Numrico Caractersticas Matemticas e Computacionais dos Mtodos Numricos. So Paulo: Pearson, 2003. ! Ruggiero, M.A.G.; Lopes, V.L.R. Clculo Numrico Aspectos Tericos e Computacionais. So Paulo: Makron Books, 1997. ! Pgina da disciplina: www.feg.unesp.br/~mapereira/index_arquivos/CN.htm
ELFS/MAP 2012

Considere o seguinte problema: A velocidade v (em m/s) de um objeto, em funo do tempo t (em s), satisfaz o seguinte problema de valor de contorno: v v = t2 com v(0) = 1 e v(4) = 9

Deseja-se: ! Aproximar v(t) por um polinmio do 3 grau; ! Calcular o espao percorrido pelo objeto entre os instantes t = 0s e t = 4s; ! Determinar os instantes de tempo em que o objeto tem velocidade nula. Como usar o computador para resolver esse problema?

ELFS/MAP 2012

Clculo Numrico compreende: ! A anlise dos processos (modelagem) que resolvem problemas matemticos por meio de operaes aritmticas; ! O desenvolvimento de uma seqncia de instrues (algoritmo) que levem s respostas numricas desejadas; ! O uso de computadores para obter as respostas numricas, o que implica em escrever o mtodo numrico como um programa de computador. Espera-se, com isso, obter respostas confiveis para problemas matemticos. No entanto, no raro acontecer que os resultados obtidos estejam distantes do que se esperaria obter. Por qu?

ELFS/MAP 2012

! Erros de arredondamento: limitao na quantidade de nmeros com

representao exata pelo computador (nmeros de ponto flutuante): (0.1)10 = (0.00011 0011 0011...)2

! Erros de significao: propagao dos erros de arredondamento nos resultados das operaes aritmticas realizadas pelo computador (perda de algarismos significativos). ! Erros de modelagem: impreciso na aproximao da situao fsica que representa o fenmeno, ou nos dados utilizados (dados empricos, medio grosseira etc.); ! Erros de truncamento: processos numricos infinitos dever ser aproximados por um processo numrico finito, devido a limitaes prticas:

! Instabilidade do processo numrico: devido ao carter iterativo de alguns processos numricos, a propagao dos erros de significao pode apresentar taxa de crescimento exponencial.
ELFS/MAP 2012

Seja x um nmero fracionrio do sistema decimal:


$

( x )10 = % dk " 10 # k ,
k =1

onde dk ! {0, 1, 2, 3, ..., 9}. Exemplos:

= 0.25 = 2"10-1 + 5"10-2 = 0.333... = 3"10-1 + 3"10-2 + 3"10-3 + ... Se existe k tal que dk = 0, #k $ k, ento a frao limitada. Do contrrio, a frao ilimitada (podendo ou no ser peridica).

ELFS/MAP 2012

Seja x um nmero fracionrio do sistema binrio:


$

( x ) 2 = % bk " 2 # k ,
k =1

onde bk ! {0, 1}. Exemplos: ! (0.625)10 = (0.101)2 = 1"2-1 + 0"2-2 + 1"2-3 (0.6)10 = (0.10011001...)2 = 1"2-1 + 0"2-2 + 0"2-3 + 1"2-4 + 1"2-5 + 0"2-6 + 0"2-7 + 1"2-8 +... Se existe k tal que bk =0, #k $ k, ento a frao limitada. Do contrrio, a frao ilimitada (podendo ou no ser peridica).

ELFS/MAP 2012

Qualquer nmero x, com partes inteira e fracionria, possui representao em uma determinada base de numerao !, da seguinte forma: x =(im...i1i0.f1f2...fn)! = im!!m + ... + i1!!1 + i0!!0 + f1!!1 + f2!!2 + ... + fn!!n onde ik (k = 0, 1, ..., m) e fj (j = 1, 2, ..., n) so smbolos que pertencem ao conjunto S = {s ! N : 0 ! s < !} (ou os dgitos permitidos no sistema). Exemplos: ! Sistema decimal: ! = 10 e S = {0, 1, 2, 3, 4, 5, 6, 7 ,8 , 9}. ! Sistema octal: ! = 8 e S = {0, 1, 2, 3, 4, 5, 6, 7}. ! Sistema binrio: ! = 2 e S = {0, 1}.

ELFS/MAP 2012

Parte inteira: divide-se sucessivamente por 2 (diviso inteira), at que o quociente final seja 0. A representao equivalente na base binria obtida pela concatenao dos restos, na ordem inversa de sua obteno. Exemplo: 347 2 1 173 2 1 86 0

2 43 1

2 21 1

2 10 0

% (347)10 = (101011011)2 2 5 1

2 2 0

2 1 1

2 0

ELFS/MAP 2012

Parte fracionria: multiplica-se por 2 e subtrai-se a parte inteira, sucessivamente, at que o produto final apresente parte fracionria igual a zero ou at que seja observada a ocorrncia de uma dzima. Exemplos: a) 0.625 " 2 = 1.25 0.25 " 2 = 0.5 0.5 " 2 = 1.0 b) 0.6 0.2 0.4 0.8 0.6 " " " " " 2 2 2 2 2 = = = = = 1.2 0.4 0.8 1.6 1.2

&1 &0 &1 &1 &0 &0 &1 &1

% (0.625)10 = (0.101)2

% (0.6)10 = (0.100110011001...)2

OBS: Um nmero real entre 0 e 1 pode ter representao finita no sistema decimal, mas representao infinita no sistema binrio.
ELFS/MAP 2012

Basta utilizar a expresso da forma geral com ! = 2. Exemplo: (1001.1001)2 = 1"23 + 0"22 + 0"21 + 1"20 + 1"2-1 + 0"2-2 + 0"2-3 + 1"2-4 = 1"8 + 0"4 + 0"2 + 1"1 + 1" + 0" + 0" + 1"

= 8 + 0 + 0 + 1 + 0.5 + 0 + 0 + 0.0625 = (9.5625)10

ELFS/MAP 2012

Um nmero real x pode ser representado como:

x = m " !e
! m : mantissa ! ! : base do sistema de numerao ! e : expoente Exemplos: x = (721.5438)10 ! x = 721.5438 " 100 = 72.15438 " 101 = 721543.8 " 103 x = (1101.01)2 ! x = 1101.01 " 20 = 11.0101 " 22 = 11010.1 " 21 Quando 1 ! |m| < ! tem-se um nmero real normalizado. Exemplos: x = (721.5438)10 x = (1101.01)2

! x = 7.215438 " 102 ! x = 1.10101 " 23


ELFS/MAP 2012

Os nmeros reais representveis em um computador de forma exata so denominados nmeros de ponto flutuante. No computador, os nmeros de ponto flutuante so representados na forma normalizada da base binria:

x = (1)1s " 1.f " 2e127


onde f corresponde parte fracionria da mantissa, s o valor do bit de sinal e e o valor do expoente. Segundo a norma IEEE 754-1985, a organizao da memria para a representao de um nmero de ponto flutuante de preciso simples em um computador de 32 bits :

ELFS/MAP 2012

Um sistema de ponto flutuante corresponde ao conjunto de todos os nmeros de ponto flutuante representveis e escrito como F(!, n, emin, emax), onde: ! ! a base de numerao. ! n o nmero de bits para representao da mantissa. ! emin o menor expoente permitido. ! emax o maior expoente permitido.
Preciso Simples bits para a mantissa* 24 +128 127 8 32 Simples estendida " 32 " +1024 ! 1023 " 11 " 43 Dupla 53 +1024 1023 11 64 Dupla estendida " 64 > +16384 ! 16383 " 15 " 79

emax emin
bits para o expoente total de bits * incluindo o bit para o sinal.

O motivo para |emin| < emax para garantir que no haja overflow em
ELFS/MAP 2012

Exemplo: Seja o sistema F(2, 3, 1, 2). ! qual ser o maior nmero representvel? ! qual ser o menor nmero positivo representvel?
s=1 (positivos)

mantissas 1.00 1/2 1 2 4 1.01 5/8 5/4 5/2 5 1.10 3/4 3/2 3 6 1.11 7/8 7/4 7/2 7

expoentes 1 0 1 2

! qual o total de nmeros representveis neste sistema? Tem-se (2 sinais) " (4 mantissas) " (4 expoentes) + (1 zero*) = 33 nmeros.
OBS: O nmero 0 existe em qualquer SPF, mesmo no sendo possvel represent-lo na forma normalizada.

ELFS/MAP 2012

! Os nmeros de ponto flutuante representveis no esto uniformemente distribudos no intervalo [7, 7];

! A distncia entre dois nmeros de ponto flutuante consecutivos vai aumentando ao aproximar-se do extremo superior do intervalo; ! Algumas leis da aritmtica que valem em R (conjunto dos nmeros reais) no valem para F (conjunto dos nmeros de ponto flutuante). Seja, por exemplo, F(2, 3, 1, 2): ! x = 5/2; y = 3/4 ! F, mas x + y = 5/2 + 3/4 = 13/4 ' F
a representao normalizada de 13/4 requer 4 dgitos na mantissa e, portanto, no pode pertencer F.

! x = 5/4, y = 3/4, z = 3/2 ! F, mas (x + y) + z ( x + (y + z)


ELFS/MAP 2012

A representao em computador de um nmero de ponto flutuante deve ser limitada ao tamanho n reservado para a mantissa.

x = d0.d1d2 ... dn1dndn+1 ... " !e


No sistema decimal (! = 10): ! Truncamento: dj " 0, j " n ! Arredondamento: se dn < 5 % dj " 0, #j " n se dn $ 5 % dn1 " dn1 + 1 e dj " 0, #j " n

Na aritmtica de ponto flutuante, quando um valor, para ser representado, precisa de mais dgitos na mantissa do que o mximo permitido, preciso fazer uma aproximao:

v = 9/4 = 2.25

ELFS/MAP 2012

Somas ou subtraes: Quando dois nmeros em ponto flutuante so somados ou subtrados, a mantissa do nmero que apresenta o menor expoente modificada de forma a igualar os expoentes. Esse ajuste tem o efeito de alinhar os pontos decimais em relao ao nmero com o maior expoente. Exemplo: Calcular 1.557 " 101 + 4.381 " 101. 1.557 " 101 0.04381 " 101 + 1.60081 " 101 &

1.601 " 101 (aps arredondamento)

Multiplicaes: Os expoentes so somados e as mantissas so multiplicadas. Diviso: Os expoentes so subtrados e as mantissas so divididas. Exemplo: 2.363 " 103 * 6.423 " 101 = 15.177549 " 102 ) 1.518 " 103 = 8.004 " 102 8.004 " 102 8.004 " 102 = 0.189655 " 105 ) 1.897 " 104. Todo resultado deve ser normalizado e depois arredondado.
ELFS/MAP 2012

Seja v* uma aproximao para v. O erro absoluto definido como:

e o erro relativo definido como:

v = 3.000"100, v* = 3.100"100, EA(v) = 1.0"101, ER(v) = 3.33... "102 v = 3.000"104 , v* = 3.100"104, EA(v) = 1.0"105, ER(v) = 3.33... "102 v = 3.000"103, v* = 3.100"103, EA(v) = 1.0"102, ER(v) = 3.33... "102
O erro relativo mais significativo, pois considera a magnitude dos valores. Assim, ao comparar nmeros de ponto flutuante prximos (por exemplo, para verificar a convergncia de um processo iterativo) conveniente comparar a diferena em relao ao tamanho dos nmeros.

ELFS/MAP 2012

Diz-se que o nmero v* uma aproximao do valor v com k dgitos significativos exatos se k o maior nmero inteiro no-negativo para o qual:

Exemplo: v = 2/3 v = 2/3

v* = 0.6667 (tem 4 dgitos significativos exatos) v* = 0.66998 (tem 2 dgitos significativos exatos)

A partir da representao de um valor em funo de uma aproximao e do erro absoluto associado, pode-se calcular os erros envolvidos nas principais operaes realizadas em um computador: x = x* + EA(x) y = y* + EA(y)

ELFS/MAP 2012

! Erro absoluto: x + y = (x* + EA(x)) + (y* + EA(y)) = (x* + y*) + (EA(x) + EA(y)) Ou seja, o erro absoluto da soma a soma dos erros absolutos das parcelas:

! Erro relativo:

Ou seja, o erro relativo da soma um valor intermedirio entre os erros relativos das parcelas.

ELFS/MAP 2012

! Erro absoluto: x y = (x* + EA(x)) (y* + EA(y)) = (x* y*) + (EA(x) EA(y)) Ou seja, o erro absoluto da subtrao a diferena dos erros absolutos das parcelas: ! Erro relativo:

Se x * y % " pode ser muito grande e as parcelas podem ser nmeros muito grandes (cancelamento subtrativo)

ELFS/MAP 2012

! Erro absoluto:

x y = (x* + EA(x)) (y* + EA(y)) = x* y* + EA(x) y* + x* EA(y) + EA(x) EA(y)


Como EA(x) EA(y) um nmero muito pequeno, podemos desconsiderar este termo e assumir que o erro absoluto do produto x y ser:

EA(x y) * x* EA(y) + y* EA(x)


! Erro relativo:

ELFS/MAP 2012

! Erro absoluto:
admite representao em srie infinita

! Erro relativo:

ELFS/MAP 2012

Um mtodo numrico pode ser: ! estvel: se a propagao dos erros de arredondamento e/ou truncamento tem taxa de crescimento linear: O(+) = k +. ! instvel: se a propagao dos erros de arredondamento e/ou truncamento tem taxa de crescimento exponencial: O(+) = kn +, onde n o nmero de iteraes do processo. Exemplo: Calcular Para n = 0: % Para n > 0: %
ELFS/MAP 2012

com , > 0, para n = 0, 1, 2, ...

O valor de In deve ser sempre positivo. Alm disso, In deve decrescer medida que n aumenta.
n 0 1 2 3 4 5 6 7 8 9 10 11 , = 0.5 1.09861 0.45069 0.27465 0.19601 0.15200 0.12400 0.10467 0.09052 0.07974 0.07124 0.06438 0.05872 , = 5.0 0.18232 0.08839 0.05804 0.04314 0.03431 0.02845 0.02443 0.02072 0.02141 0.00408 0.07962 - 0.30718

Por que os absurdos, quando , = 5.0?


ELFS/MAP 2012

Considere que existe um erro (de arredondamento) + no valor de I0:

I0 = I0 + +
Neste caso, as prximas aproximaes sero:

. . .

Se , > 1, a contribuio do erro vai crescendo de forma exponencial a cada iterao. O mtodo iterativo proposto , portanto, um processo numrico instvel.
ELFS/MAP 2012

Um problema mal-condicionado se, pequenas alteraes nos seus dados, resultam em grandes modificaes em sua soluo. O mal-condicionamento uma propriedade do problema em si, e no do mtodo numrico usado para resolv-lo. Exemplo:

Soluo:

Soluo:

ELFS/MAP 2012

Calcular

pela expanso em srie de Taylor:

Para x = 1:

e ) 1 + 1 + 0.5 + 0.1667 + 4.1667"102 + 8.3333"103 + 1.3889"103 + 1.9841"104 + 2.4801"105 + 2.7557"106 = 2.7183


Comparado ao valor 2.718281828, tem-se um erro relativo de 0.66851"105, resultando em uma aproximao com 4 dgitos significativos.

ELFS/MAP 2012

Para x = 5.5:

5.5

= 1 5.5 + 15.125 27.730 + 38.129 41.942 + 38.446 30.208 + 20.768 12.692 + 6.9803 3.4902 + 1.5997 ... = = 0.0026363

Comparando com valor 0.00408671439, obtido com uma calculadora, tem-se um erro relativo de 0.3549, resultando em uma aproximao com nenhum dgito significativo (devido principalmente a erros de arredondamento). Uma alternativa seria calcular .

Dessa forma, obtm-se para a aproximao o valor 0.0040865, com erro relativo de 0.5246"104 e 3 dgitos significativos na mantissa.

ELFS/MAP 2012

Calcular a mdia aritmtica de dois nmeros a e b: Algoritmo 1 1.! 2.! 3.! 4.! ler(a, b); s - a + b; m - s / 2; exibir(m); Algoritmo 2 1.! 2.! 3.! 4.! 5.! ler(a, b); s1 - a / 2; s2 - b / 2; m - s1 + s2; exibir(m); Algoritmo 3 1.! 2.! 3.! 4.! 5.! ler(a, b); d1 - a b; d1 - d1 / 2; m - b + d1; exibir(m);

Para um dado F(!, n, emin, emax) e a e b ! F, o algoritmo 1 pode apresentar overflow no passo 2. O algoritmo 2 pode apresentar underflow nos passos 2 e 3. Para o algoritmo 3, se a e b forem valores muito prximos, pode ocorrer o cancelamento subtrativo no passo 2.

ELFS/MAP 2012

Você também pode gostar