O Cálculo Numérico
Por: Mo4b3 • 28/9/2016 • Abstract • 1.942 Palavras (8 Páginas) • 297 Visualizações
Nos capítulos seguintes, estudaremos métodos numéricos para a resolução de problemas que surgem nas mais diversas áreas.
A resolução de tais problemas envolve várias fases que podem ser assim estruturadas:
[pic 1]
Não é raro acontecer que os resultados finais estejam distantes do que se esperaria obter, ainda que todas as fases de resolução tenham sido realizadas corretamente.
Os resultados obtidos dependem também:
- Da precisão dos dados de entrada;
- Da forma como estes dados são representados no computador;
- Das operações numéricas efetuadas.
Os dados de entrada contêm uma imprecisão inerente, isto é, não há como evitar que ocorram, uma vez que representam medidas obtidas usando equipamentos específicos, como, por exemplo, no caso de medidas de corrente e tensão num circuito elétrico, ou então podem ser dados resultantes de pesquisas ou levantamentos, como no caso de dados populacionais obtidos num recenseamento.
Neste capítulo, estudaremos os erros que surgem da representação de números num computador e os erros resultantes das operações numéricas efetuadas, [23], [26] e [31].
A representação de um número depende da base escolhida ou disponível na máquina em uso e do número máximo de dígitos usados na sua representação.
O número ji, por exemplo, não pode ser representado através de um número finito de dígitos decimais. No Exemplo 1, o número n foi escrito como 3.14, 3.1416 e 3.141592654 respectivamente nos casos (a), (b) e, (c). Em cada um deles foi obtido um resultado diferente, e o erro neste caso depende exclusivamente da aproximação escolhida para Jt. Qualquer que seja a circunferência, a sua área nunca será obtida exatamente, uma vez que jt é um número irracional.
Como neste exemplo, qualquer cálculo que envolva números que não podem ser representados através de um número finito de dígitos não fornecerá como resultado um valor exato. Quanto maior o número de dígitos utilizados, maior será a precisão obtida. Por isso, a melhor aproximação para o valor da área da circunferência é aquela obtida no caso (c).
Além disto, um número pode ter representação finita em uma base e não-finita em outras bases. A base decimal é a que mais empregamos atualmente. Na Antiguidade, foram utilizadas outras bases, como a base 12, a base 60. Um computador opera normalmente no sistema binário.
Observe o que acontece na interação entre o usuário e o computador: os dados de entrada são enviados ao computador pelo usuário no sistema decimal; toda esta informação é convertida para o sistema binário, e as operações todas serão efetuadas neste sistema.
Os resultados finais serão convertidos para o sistema decimal e, finalmente, serão transmitidos ao usuário. Todo este processo de conversão é uma fonte de erros que afetam o resultado final dos cálculos.
Na próxima seção, estudaremos os processos para conversão de números do sistema binário para o sistema decimal e vice-versa.
Veremos inicialmente a conversão de números inteiros.
Considere os números (347)10 e (10111), Estes números podem ser assim
escritos:
(347)10 = 3 x 102 + 4 x 101 + 7 x 10°
(10111)2 =1x24 + 0x23+1x22+1x21 + 1x2°
De um modo geral, um número na base (J, (aJ-aj_1... a2a1a0) p, 0 *£ ak (p - 1), k = 1, j, pode ser escrito na forma polinomial:
ajpí + a^pH + _. + a^2 + a,p> + a^0.
Com esta representação, podemos facilmente converter um número representado no sistema binário para o sistema decimal.
Por exemplo:
(10111)2 =1x24 + 0x23+1x22+1x21 + 1x2°
Colocando agora o número 2 em evidência teremos:
(lOlll^ = 2 x (1 + 2 x (1 + 2 x (0 + 2 x 1))) + 1 = (23)l0
Veremos agora um processo para converter um número inteiro representado no sistema decimal para o sistema binário. Considere o número N0 = (347)10 e (aja-j... aja0)2 a sua representação na base 2.
Temos então que:
347 = 2 x (a- x 2*_1 + x 2>-2 + ... + % x 2 + ax) + aQ = 2 x 173 + 1
E, portanto, o dígito ag = 1 representa o resto da divisão de 347 por 2. Repetindo agora este processo para o número N. = 173:
173 = a» x 2*"1 + x 2K2 + ... + aj x 2 +
Obteremos o dígito a., que será o resto da divisão de por 2. Seguindo este raciocínio obtemos a seqüência de números e a^.
Nj = 2 = 2x1 + 0 ^ = O Ns=l = 2x0+1 =>ag = l
Portanto, a representação de (347),0 na base 2 será 101011011.
No caso geral, considere um número inteiro N na base 10 e a sua representação binária denotada por: (aja* , ... a,a,a0)2. O algoritmo a seguir obtém a cada k o dígito binário ak.
Passo 0: k = 0 Nk = N
Passo 1: Obtenha qk e r. tais que:
...