Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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
( x )10 = % dk " 10 # k ,
k =1
= 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
( 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
% (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"
ELFS/MAP 2012
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
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:
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.
A representao em computador de um nmero de ponto flutuante deve ser limitada ao tamanho n reservado para a mantissa.
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 &
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
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:
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:
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
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
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
Para x = 1:
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