Cálculo Numérico Noções básicas sobre erros

Documentos relacionados
CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano.

Cálculo Numérico - Mat 215. Prof. Dirceu Melo. Prof. Dirceu Melo - MAT215

Cálculo Numérico IPRJ/UERJ. Sílvia Mara da Costa Campos Victer ÍNDICE. Aula 1- Introdução. Representação de números. Conversão de números

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

ERRO DE ARREDONDAMENTO E TRUNCAMENTO

CÁLCULO NUMÉRICO (CN)

Métodos Numéricos - Notas de Aula

étodos uméricos Erros Visão Geral Prof. Erivelton Geraldo Nepomuceno PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA

Noções sobre Erros em Matemática Computacional

Estudo de erros Erros na fase de modelagem: 1.2. Erros na fase de resolução:

Métodos Numéricos Erros Ponto Flutuante. Professor Volmir Eugênio Wilhelm Professora Mariana Kleina

Erros em computações numéricas

Matemática Computacional. Edgard Jamhour

Cálculo Numérico Conceitos Básicos

Cálculo Numérico. Conjunto de métodos utilizados para a obtenção de resultados de problemas matemáticos através de aproximações.

Fundamentos IV. Introdução a análise de erros. Clarimar J. Coelho. August 14, Departamento de Computação

Cálculo Numérico. Erros em processamento Numéricos

TP062-Métodos Numéricos para Engenharia de Produção Erros-Ponto Flutuante

PARTE I I: ARITMÉTICA COMPUTACIONAL ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

Método Analítico. Método Numérico

Métodos Numéricos Erros Erros Numéricos. Professor Volmir Eugênio Wilhelm Professora Mariana Kleina

ARQUITETURA DE COMPUTADORES

SME CÁLCULO NUMÉRICO I PROFESSORES MARCOS ARENALES MARISTELA SANTOS. Agosto 2011

Erros e Aritmética de ponto flutuante

Erros numéricos por Mílton Procópio de Borba

Dessa forma pode-se transformar qualquer número em qualquer base para a base 10.

INTRODUÇÃO. O processo de modelagem matemática para resolver problemas reais pode ser visto pelas seguintes etapas: Escolha de um Método Adequado

William Stallings Arquitetura e Organização de Computadores 8 a Edição

Aula 2 - Representação e arredondamento

Cálculo Numérico Prof. Guilherme Amorim 24/10/2013. Aula 2 Erros e Aritmética de Ponto Flutuante

1. Converta para a base binária, usando o método das divisões sucessivas, os seguintes números inteiros: a) 13 b) 35.

Ponto Fixo e Ponto Flutuante

Arquitetura de Computadores

Representações de Números Inteiros: Sinal e Magnitude e Representação em Excesso de k

ARQUITETURA DE COMPUTADORES

Erros, Precisão Numérica e Ponto Flutuante

Aula 7: Representações de Números Inteiros: Sinal e Magnitude e Representação em Excesso de k

Universidade Federal de Uberlândia Faculdade de Computação. Representação e aritmética binária

Folha Prática - Representação de Números e Erros. 1. Representar os seguintes números decimais em binário com ponto fixo:

1. Converta para a base binária, usando o método das divisões sucessivas, os seguintes números inteiros: a) 13 b) 35. e) 347 f) 513.

Aula 9: Estouro e Representação em Ponto Flutuante

CCI-22. Erros Erros de arredondamento, representação e de cálculo

Aritmética Binária e Complemento a Base. Introdução ao Computador 2010/1 Renan Manola

Cálculo numérico Cálculo numérico - O Cálculo Numérico é uma metodologia para resolver problemas matemáticos através do computador. - Uma solução obti

Capítulo 1 - Erros e Aritmética Computacional

Arquitetura e Organização de Computadores

Números binários e erros

Estouro e Representação em Ponto Flutuante

Aula 3 - Representação de Dados

Introdução à Computação

Baseado nos slides de Anna Tostes SISTEMA NUMÉRICO

Introdução à Informática

Cálculo Numérico Faculdade de Ciências Sociais Aplicadas e Comunicação FCSAC Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU

Circuitos Lógicos Aula 22

UNIVERSIDADE EDUARDO MONDLANE MANUAL TEÓRICO

CCI-22. Matemática Computacional. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra

Lista de Exercícios 1

Métodos Numéricos. Turma CI-202-D. Josiney de Souza.

Capítulo 1 - Erros e Aritmética Computacional

1.1 Etapas na solução de um problema. 1.3 Tipos de erros. 1.4 Aritmética de ponto flutuante.

Unidade I MATEMÁTICA. Prof. Celso Ribeiro Campos

Aritmética dos Computadores

ELETRÔNICA DIGITAL I

Disciplina: Processamento Digital de Sinais Aula 05 - Implementação de Sistemas de Processamento Digital de Sinais (Parte 01)

Introdução à Computação

Home Programa Exercícios Provas Professor Links. 2.1 Representação de um número na base dois. O número binário 101,101 significa, na base dois:

Aproximações e Erros

Aula 11. A Informação e sua Representação Ponto-Flutuante. Prof. Dr. Dilermando Piva Jr.

Matemática Computacional Ficha 1: Capítulo /19

Representação de números - Conversão de base b para base 10

Sistemas de Numeração. Exemplos de Sistemas de Numeração (1) Exemplos de Sistemas de Numeração (2) Sistemas de Numeração

Organização e Arquitetura de Computadores I

Guilherme Martini Gustavo Schmid de Jesus Luís Armando Bianchin Márcio José Mello da Silva

Capacidade de Armazenamento. Bit. Binário para Decimal. Decimal para Binário. Operações Aritméticas no Sistema binário.

CCI - 22 Matemática Computacional

Introdução à Computação

Tópicos. - Cálculo numérico. - Representação de números. - Análise e representação de erros

Notas de Aula de Cálculo Numérico

Transcrição:

Cálculo Numérico Noções básicas sobre erros Profa. Vanessa Rolnik 1º semestre 2015

Fases da resolução de problemas através de métodos numéricos Problema real Levantamento de Dados Construção do modelo matemático Escolha do método numérico adequado Implementação computacional desse método Análise dos resultados obtidos Se necessário, reformular o modelo matemático e/ou escolher novo método numérico

Origem dos erros 1. Simplificação no modelo matemático Ex: para calcular o período de um pêndulo, desprezamos sua massa. 2. Erros de truncamento Ex. no cálculo de uma série infinita, tomamos apenas os primeiros termos 3. Erros de arredondamento Causados pela própria estrutura da máquina que trabalha com um número finito de números e de casas decimais 4. Erros nos dados de entrada Dados imprecisos obtidos de experimentos ou arredondamentos na entrada

Objetivo da aula O interesse dessa e da próxima aula está em estudar os erros de arredondamento. Os erros de arredondamento englobam a forma como os dados são representados no computador Base usada pela máquina (binária) Quantidade de dígitos usados para armazenamento dos números as operações aritméticas efetuadas efeitos numéricos

Representação em ponto flutuante Os computadores utilizam a seguinte normalização para representação dos números sinal e é o expoente m e M m = limite inferior do expoente M = limite superior do expoente ±.d 1 d 2 d t x β e β é a base d 1 d 2 d t é a mantissa d 1 0, 0 d i < β, i = 1,2,..., t t = número de algarismos significativos

Notação F(β, t, m, M) Notação para a representação em ponto flutuante na base β com t algarismos significativos e com limites do expoente m e M. ±.d 1 d 2 d t x β e

Exemplo 1 Considere uma máquina que opere no sistema F(10, 3, 2, 2). Os números representáveis nesse sistema são do tipo ± 0.d 1 d 2 d 3 x 10 e, - 2 e 2 Assim, 0.35 = + 0.350 x 10 0 0.0123 = + 0.123 x 10-1 -5.172 = - 0.517 x 10 1-5.177 = - 0.518 x 10 1 regra de arredondamento: dt+1>=5, dt+1, dt+1<5, dígitos inalterados 5391 = + 0.539 x 10 4 e > 2 erro de overflow 0.0003 = + 0.300 x 10-3 e < -2 erro de underflow

Conversão de base: binário decimal Dados de saída Computador base binária (onde os cálculos são efetuados) Dados de entrada Usuário base decimal Todo esse processo de conversão é fonte de erros Além disso, um número pode ter representação finita em uma base e infinita em outra.

Números inteiros binário decimal (10111) 2 = 1 x 2 4 + 0 x 2 3 + 1 x 2 2 + 1 x 2 1 + 1 x 2 0 = (23) 10 decimal binário (23) 10 = 11 x 2 + 1 11 = 5 x 2 + 1 5 = 2 x 2 + 1 2 = 1 x 2 + 0 1 = 2 x 0 + 1 (23) 10 = (10111) 2

Números fracionários entre 0 e 1 decimal binário (0.125) 10 (0.d 1 d 2...d j...) 2 0.125 x 2 = 0.25 d 1 = 0 e r 1 = 0.25 0.25 x 2 = 0.5 d 2 = 0 e r 2 = 0.5 0.5 x 2 = 1.0 d 3 = 1 e r 3 = 0 (0.125) 10 (0.001) 2

Mais um exemplo (0.1) 10 (0.d 1 d 2...d j...) 2 0.1 x 2 = 0.2 d 1 = 0 e r 1 = 0.2 0.2 x 2 = 0.4 d 2 = 0 e r 2 = 0.4 0.4 x 2 = 0.8 d 3 = 0 e r 3 = 0.8 0.8 x 2 = 1.6 d 4 = 1 e r 4 = 0.6 0.6 x 2 = 1.2 d 5 = 1 e r 5 = 0.2 = r 1 Os resultados se repetirão infinitamente, e nunca r j = 0 Portanto, (0.1) 10 (0.00011001100110011...) 2 ou (0.00011) 2

Conclusão Um número real entre 0 e 1 pode ter representação finita na base decimal e infinita na binária. Esse fato pode acarretar a ocorrência de erros aparentemente inexplicáveis em cálculos efetuados pelo computador. Exemplo 30000 S 0.11 Exato S = 3300 i 1 No computador S = 3299.99691 Exercício: fazer a conversão do número decimal 0.11 para sua representação binária

Números fracionários entre 0 e 1 binário decimal (0.000110) 2 (0.d 1 d 2...d j...) 10 (0.000110) 2 x (1010) 2 = (0.1111) 2 d 1 = (0) 2 = (0) 10 e r 1 = (0.1111) 2 (0.1111) 2 x (1010) 2 = (1001.011) 2 d 2 = (1001) 2 = (9) 10 e r 2 = (0.011) 2 (0.011) 2 x (1010) 2 = (11.11) 2 d 3 = (11) 2 = (3) 10 e r 3 = (0.11) 2 (0.11) 2 x (1010) 2 = (111.1) 2 d 4 = (111) 2 = (7) 10 e r 4 = (0.1) 2 (0.1) 2 x (1010) 2 = (101) 2 d 5 = (101) 2 = (5) 5 e r 6 = (0) 2 fim. (0.000110) 2 (0.09375) 10

Resumindo... (0.1) 10 (0.00011001100110011...) 2 ou (0.00011) 2 (0.1) 10 (0.000110) 2 com 6 casas decimais (0.000110) 2 (0.09375) 10 Conclusão: a forma como o computador armazena os números é fonte de erro

Esquema de armazenamento de um número sinal do expoente sinal do número Obs: o bit de sinal apresenta zero para o número positivo e um para o negativo. expoente mantissa

Exercício: F(2,10,15,15), represente (-7,125) Exemplo 2 (23) 10 = (10111) 2 Representação em aritmética de ponto flutuante F(2,10,15,15) 0.1011100000 x 2 101 Representação em uma palavra do computador sinal do expoente sinal do número 0 0 1 0 1 0 0 1 0 1 1 1 0 0 0 0 0 expoente mantissa

Exemplo 4 Sabemos que os números podem ser representados por uma reta contínua. Entretanto, em pontos flutuantes podemos representar apenas pontos discretos na reta real. Questão: quantos e quais números podem ser representados no sistema F(2, 3, 1, 2)? ± 0.d 1 d 2 d 3 x 2 e 2 possibilidades para o sinal ( + ou -) 1 possibilidade para d1 (1) 2 possibilidades para d2 (0 ou 1) 2 possibilidades para d3 (0 ou 1) 4 possibilidades para o expoente (-1, 0 1 ou 2) Total = 2 x 1 x 2 x 2 x 4 = 32 números

Operações em aritméticas de pontos flutuantes Dada uma seqüência de operações, como por exemplo, u = [(x + y) z)] /w, é importante a noção de como o erro em uma operação propaga-se ao longo das operações subseqüentes. O erro total em uma operação é composto pelo erro das parcelas ou fatores e pelo erro no resultado da operação.

Erro nas parcelas ou fatores Exemplo: Supor um sistema de aritmética de ponto flutuante de 4 dígitos, na base 10 e com acumulador de precisão dupla. Dados x = 0.937 x 10 4 Obter x + y x y x*y x / y y = 0.1272 x 10 2

Adição em aritmética de ponto flutuante Requer o alinhamento dos pontos decimais dos dois números: a mantissa do número de menor expoente é deslocada para a direita O número de casas decimais deslocado corresponde à diferença entre os dois expoentes Ex: Alinhamento x = 0.937 x 10 4 y = 0.001272 x 10 4 x + y = (0.937 + 0.001272) x 10 4 = 0.938272 x 10 4 Resultado: = 0.9383 x 10 4 (arredondamento para 4 dígitos significativos)

Subtração em aritmética de ponto flutuante segue a mesma regra da adição Alinhando os pontos decimais, x = 0.937 x 10 4 y = 0.001272 x 10 4. x y = (0.937-0.001272) x 10 4 = 0.935828 x 10 4. Resultado: = 0.9358 x 10 4

Multiplicação em aritmética de ponto flutuante Multiplica as mantissas Preserva a base e soma os expoentes xy = (0.937 x 10 4 ) x (0.1272 x 10 2 ) = (0.937 x 0.1272) x 10 4 x 10 2 = 0.1191864 x 10 6. Resultado: = 0.1192 x 10 6

Divisão Divide as mantissas Preserva a base e subtrai os expoentes y = (0.937 x 10 4 ) / (0.1272 x 10 2 ) = (0.937 / 0.1272) x 10 4 / 10 2 = 7.36635 x 10 2 =0.736635 x 10 3 Resultado: = 0.7366 x 10 3

Exemplo 1 Considere o sistema com base = 10, e 3 dígitos significativos e efetue as operações indicadas: 1) (11.4 + 3.18) + 5.05 e 11.4 + (3.18 + 5.05) 2) (3.18 11.4)/5.05 e 3.18/5.05 11.4 3) 3.18 (5.05 + 11.4) e 3.18 5.05 + 3.18 11.4

Conclusão Como o arredondamento é feito após cada operação as operações aritméticas (adição, subtração, divisão e multiplicação) não são associativas distributivas

Exemplos 2 e 3 Considere o sistema com base = 10, e 3 dígitos significativos, somar 1/3 dez vezes consecutivas usando arredondamento. Considere o sistema com base = 10, e 3 dígitos significativos, avaliar o polinômio P(x) = x 3 6x 2 + 4x 0.1 no ponto 5.24 e comparar com o resultado exato.

Conclusão Erros consideráveis podem ocorrer durante e execução de um algoritmo. Isso se deve ao fato de que existem limitações da máquina e também que os erros de arredondamento são introduzidos a cada operação efetuada. Em conseqüência, podemos obter resultados diferentes mesmo utilizando métodos numéricos matematicamente equivalentes. Assim, devemos ser capazes de conseguir desenvolver um algoritmo tal que os efeitos da aritmética discreta do computador permaneça inofensivo quando um grande número de operações são executadas.

Efeitos Numéricos Além dos problemas dos erros causados pelas operações aritméticas, das fontes de erros, existem certos efeitos numéricos que contribuem para que o resultado obtido não tenha crédito. Cancelamento Propagação do Erro Instabilidade Numérica Mal Condicionamento Obs: livro prof. Neide Franco pag. 42 54.

Cancelamento Ocorre na subtração de dois números quase iguais. Veremos este fato através de exemplos, onde iremos considerar que estamos trabalhando com o sistema F(10, 10, 10, 10). 9876 9875 2 9876 0.9937806599x10 Exemplo 1) Calcular - 2 9875 0.9937303457x10 Solução em PF 0.0000503142x10 2 Normalizando 0.503142x10-2

Podemos obter resultado mais preciso? Sim. Considerando a identidade: x y x x y y 9876 9875 0.5031418679 x10 2 Resultado com todos os dígitos corretos!

Exemplo 2 Resolver a equação: x 2 1634 x + 2 = 0. 2 1634 1634 8 x1 0,1633998776 x10 2 Solução em PF 4 2 1634 1634 8 x2 0,1223990000 x10 2 2

Podemos obter resultado mais preciso? Sim. Basta lembrar que o produto das raízes é igual ao termo independente da equação: x 1. x 2 = 2 1 2 0.2000000000 x10 x 2 0,1223991125 x 10 4 x 0.1633998776 x10 1 2 Resultado com todos os dígitos corretos! Obs: Nem sempre existe uma maneira trivial de resolver problemas causados pelo cancelamento.

Exemplo 3 O cancelamento também ocorre no cálculo de uma soma quando uma soma parcial é muito grande quando comparada com as demais somas. Exemplo: Calcular e -5.25, utilizando 5 dígitos significativos em todas as operações. Sabemos que: e x k 0 ( 1) k k x k! Se e -x é calculado usando essa fórmula, a série deve ser truncada. Assim, já introduziu-se erro de truncamento.

Exemplo 3 cont. Considere os 25 primeiros termos: e 5.25 = 0.10000 x 10 1 0.52500 x 10 1 + 0.13781 x 10 2 0.24117 x 10 2 + 0.31654 x 10 2 0.33236 x 10 2 + 0.29082 x 10 2 0.21811 x 10 2 + 0.14314 x 10 2 0.83497 x 10 1 + 0.43836 x 10 1 0.20922 x 10 1 + 0.91532 x 10 0 0.36965 x 10 0 + 0.13862 x 10 0 0.48516 x 10-1 + 0.15919 x 10-1 0.49164 x 10-2 + 0.14339 x 10-2 0.39620 x 10-3 + 0.10401 x 10-3 0.26003 x 10-4 + 0.62050 x 10-5 0.14163 x 10-5 + 0.30982 x 10-6.

Exemplo 3 cont. Resultado somando os 25 termos: e -5.25 = 0.65974 x 10-2 Resultado obtido na calculadora: e -5.25 = 0.52475 x 10-2 Esta diferença entre os valores ocorreu porque na soma as parcelas de ordem 10 2 fazem com que as parcelas de ordem inferior a 10-3 sejam desprezadas.

Podemos obter resultado mais preciso? Sim. Basta lembrar e e x x 1 e x k x k 0 k! Somando as parcelas de e 5.25 até ordem 10-3, obtém-se 0.19057 x 10 3 e 5.25 0.10000x10 0.19057x10 1 3 0.52475x10 2

Instabilidade Numérica Cada novo resultado intermediário introduz um novo erro de arredondamento. É de se esperar que todos esses erros influenciem o resultado final. Algumas vezes, os erros intermediários cancelam-se uns com os outros no mínimo parcialmente, tendo um efeito desprezível no resultado final Algoritmo Estável Quando os erros intermediários tem uma influência muito grande no resultado final Algoritmo Instável

Exemplo 4 I 1 e 1 0 Resolver a integral, para n = 7. n Fórmula de recorrência para I n I n = 1 n.i n-1 n = 1,2,... x n e x dx Valor inicial: I 0 = 0,6321 I 1 = 0.3679, I 2 = 0.2642, I 3 = 0.2074, I 4 = 0.1704, I 5 = 0.1480, I 6 = 0.1120, I 7 = 0.2160 O resultado para I 7 está errado pois I 8 1 1 1 x 7 x e.max e. x dx I 7 0. 125 0 x 1 8 7 0 0

Exemplo 4 Como encontrar o valor exato de I n? Para esse caso em particular, observe que uma relação de recorrência ser instável na direção crescente não impede de ser estável na direção decrescente de n. Qual o valor inicial? Não é fácil encontrar esse valor pois todo I n onde n > 0 é desconhecido. Mas sabemos que I n 0 quando n I n 1 1 I n Fazendo I 20 = 0 e usando a fórmula acima para n = 20, 19, 18,... I 7 = 0.1123865 (todos os dígitos corretos!) n

Mau condicionamento Vamos analisar como perturbações nos dados de entrada podem ou não influenciar os resultados Exemplo: Resolver o sistema x + y = 2 x + 1.01y = 2.01 solução x = 1, y = 1 Se 2.01 na segunda equação for mudado para 2.02 solução x = 0, y = 2. Ou seja, uma pequena mudança nos dados produz uma grande mudança no resultado!

Quando grandes mudanças nos dados produzem somente pequenas mudanças no resultado: Problema bem condicionado Quando pequenas mudanças nos dados produzem grandes mudanças no resultado: Problema mal condicionado

Exercícios 1. Considere o sistema F(10, 3, 5, 5). Represente neste sistema os números: x1 = 1234.56 x2 = 0.00054962 x3 = 0.9995 x4 = 123456.7 x5 = 0.0000001 2. Agora, considere o sistema F(10, 4, 4, 4) e represente neste sistema os mesmos números do exercício 1. 3. Supondo que um computador trabalhe com apenas 6 casas decimais, o número (0.11) 10 seria armazenado como (0.000111) 2. Qual número decimal que este número representa?

Exercícios 4. Dado o número 2.47 na base 10, qual a sua representação na base 2 usando 8 casas decimais? Essa representação é exata? O número binário encontrado representa qual decimal? 5. No exemplo 4, vimos que existem o sistema F(2, 3, 1, 2) só consegue representar 32 números. Encontre esses números na base 10 e represente-os na reta real. Qual o maior número e o menor número em módulo que podemos representar nesse sistema?

Exercícios 6. Considere o sistema F(10, 3, 5, 5). Efetue as operações indicadas: a) (1.386 0.987) + 7.6485 e 1.386 (0.987 7.6485), b) (1.338 2.038)/4.577 e 1.338/4.577 2.038/4.577, 7. Seja x = 17.678/ 3.471+ (9.617) 2 /(3.716 1.85) a) Calcule x com todos os algarismos da sua calculadora, sem efetuar arredondamento. b) Calcule x considerando o sistema F(10, 3, 4, 3). Faça arredondamento a cada operação efetuada.

Exercícios n x dx x a 8. Considere a integral, com a = 10. y n 1 0 a) Calcule y 0 usando a integral b) Mostre que uma relação de recorrência para y n é dada por n y n 1 c) Calcule y n, n = 1,2,..., 10 usando a relação de recorrência. Os valores obtidos são confiáveis? y 1 a. n 9. Considere a relação de recorrência do ex. 8 escrita na forma: 1 1 yn 1 yn 1 a n Considere ainda que y 10 = 0. Usando este dado e a relação de recorrência obtenha os valores de y 10, y 9,...y 1. Os resultados agora são melhores? Como você explica isso?