Capítulo 1 - Erros e Aritmética Computacional

Documentos relacionados
Capítulo 1 - Erros e Aritmética Computacional

Capítulo 1 - Erros e Aritmética Computacional

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

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.

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

Capítulo 6 - Equações Não-Lineares

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

Capítulo 4 - Interpolação Polinomial

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

Aproximações e Erros

Capítulo 2. Representação de números em vírgula flutuante

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

Erros e Aritmética de ponto flutuante

UNIVERSIDADE EDUARDO MONDLANE MANUAL TEÓRICO

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

6.Elaboração de algoritmos...13

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

Matemática Computacional. Edgard Jamhour

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

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

Matemática Computacional Ficha 1: Teoria dos erros (Capítulo 1) 1s-2017/18, MEEC

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

Capítulo 7 - Equações Diferenciais Ordinárias

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

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

Modelagem Computacional. Parte 1 2

Capítulo 4 - Equações Não-Lineares

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

Métodos Numéricos - Notas de Aula

Resolução do Exame Tipo

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

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

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

Introdução. à Ciência da. Representação de Números em Ponto Flutuante. Aula 21. Números Fracionários

Erros em computações numéricas

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

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

Métodos de Aproximação em Engenharia

Números binários e erros

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

Capítulo 5 - Integração e Diferenciação Numérica

Sistemas Digitais INE 5406

Cálculo Numérico. Profº Ms Ademilson Teixeira IFSC

Matemática Computacional - Exercícios

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

Capítulo 5 - Interpolação Polinomial

Sistemas numéricos e a Representação Interna dos Dado no Computador

INSTITUTO SUPERIOR TÉCNICO Mestrado em Engenharia Electrotécnica e de Computadores Ano Lectivo: 2007/2008 Semestre: 2 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:

Capítulo 4 - Equações Diferenciais às Derivadas Parciais

ARQUITETURA DE COMPUTADORES

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

Análise Numérica. Introdução. Teoria de Erros

UNIVERSIDADE FEDERAL DO PARANÁ DISCIPLINA DE MÉTODOS NUMÉRICOS 2º SEMESTRE 2004 Professora Aurora T. R. Pozo 1ª LISTA DE EXERCÍCIOS

Organização e Arquitetura de Computadores I

Capítulo 6 - Integração e Diferenciação Numérica

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

ERRO DE ARREDONDAMENTO E TRUNCAMENTO

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

Lista 1 de Exercícios de MAT Cálculo Numérico /II

Arquitetura e Organização de Computadores

Cálculo Numérico Conceitos Básicos

Noções sobre Erros em Matemática Computacional

CCI - 22 Matemática Computacional

Erros META OBJETIVOS. 2.1 Erros

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

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

ARQUITETURA DE COMPUTADORES

Capítulo 5 - Optimização Não-Linear

Aula 2 - Representação e arredondamento

Apontamentos de Matemática Computacional

Teoria de erros. Computação Teoria de erros Porquê?

Capítulo 6 - Integração e Diferenciação Numérica

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

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

Transcrição:

Capítulo 1 - Erros e Carlos Balsa balsa@ipb.pt Departamento de Matemática Escola Superior de Tecnologia e Gestão de Bragança 2 o Ano - Eng. Civil e Electrotécnica Carlos Balsa 1/ 26

Sumário 1 Definição Aproximações 2 Origem dos Erros Erros de Computação Erro Propagado 3 Número de Condição 4 Notação de Virgula Flutuante Carlos Balsa 2/ 26

Definição Aproximações versus Métodos Analíticos Métodos Analíticos Solução exacta (não havendo arredondamentos) Solução geral (normalmente uma expressão matemática) que permite obter soluções particulares em função das variáveis independentes Soluções contínua (permite obter soluções particulares para qualquer valor da variável independente) Solução aproximada (contêm um erro associado) Soluções particular na forma de números Solução discreta (apenas calculada para alguns valores da variável independente) Métodos numéricos são necessários porque Problemas reais nem sempre têm solução analítica Métodos numéricos permitem quantificar o erro na solução Maior parte dos problemas envolvem aproximações Carlos Balsa 3/ 26

Definição Aproximações Origem das aproximações Antes da computação Modelação Medições empíricas Computações anteriores Durante a computação Truncatura ou discretização Arredondamentos A exactidão dos resultados finais reflecte todas as aproximações A incerteza dos dados introduzidos (input) pode ser amplificada pelo problema Perturbações durante a computação podem ser amplificadas pelo algoritmo Carlos Balsa 4/ 26

Definição Aproximações Exemplo 1: aproximações Calcular a superfície terrestre através da formula utilizando a formula A = 4πr 2 envolve várias aproximações A Terra é modelada como uma esfera, idealizando a sua forma ideal O valor do raio é baseado em medidas empíricas e em computações anteriores O valor de π requer a truncatura de processos infinitos O valor dos inputs assim como das operações aritméticas são arredondadas no computador Carlos Balsa 5/ 26

Origem dos Erros Erros de Computação Erro Propagado Seja x um número real e ˆx um valor aproximado de x: Erro absoluto = valor aproximado - valor exacto = x ˆx Erro relativo = erro absoluto valor exacto = x ˆx x Valor aproximado = valor exacto (1+ erro rel.) É comum trabalhar com o valor absoluto dos erros: x = x ˆx e r x = x ˆx x Carlos Balsa 6/ 26

Origem dos Erros Erros de Computação Erro Propagado Exemplo 2: Seja x = 1/3 e ˆx = 0.333 x = x ˆx = 1/3 0.333 = 0.0003(3) 0.00034 r x = x ˆx x = 1/3 0.333 1/3 = 0.0009(9) 0.0010 = 0.1% Carlos Balsa 7/ 26

Origem dos Erros Erros de Computação Erro Propagado Erros de dados e erros de computação Problema típico: calcular o valor da função f : IR IRpara os argumentos x valor exacto do argumento f (x) valor pretendido ˆx valor aproximado do input ˆf valor aproximado da função a calcular Erro total = ˆf (ˆx) f (x) = (ˆf (ˆx) f (ˆx)) + (f (ˆx) f (x)) = erro computacional + erro propagado Erro computacional depende do algoritmo e o erro propagado depende do condicionamento do problema Carlos Balsa 8/ 26

Origem dos Erros Erros de Computação Erro Propagado Erro de truncatura e erro de arredondamento Os erros computacionais são a soma dos erros de truncatura e dos erros de arredondamento, normalmente, um destes é dominante Erro de truncatura: diferença entre o resultado exacto (para o input actual) e o resultado produzido pelo algoritmo usando uma aritmética exacta Devido a aproximações tais como a truncatura de séries infinitas ou fins de processos iterativos antes de se verificar a convergência Erro de arredondamento: diferença entre o resultado produzido pelo algoritmo usando aritmética infinita e o resultado produzido pelo mesmo algoritmo usando uma aritmética de precisão limitada Devido a representação inexacta de números reais e às operações inexactas sobre esses números Carlos Balsa 9/ 26

Erros de Truncatura Origem dos Erros Erros de Computação Erro Propagado Um exemplo de erro de truncatura é o desenvolvimento de uma função através da série de Taylor truncada Série de Taylor: Uma função f (x), com x próximo de a, em que f (a) é conhecido e f admite infinitas derivadas pode ser calculada através de f (x) = f (a) + f (a) 1! (x a) + f (a) 2! Se considerarmos apenas os n primeiros termos f (x) f (a) + f (a) 1! (x a) + f (a) 2! (x a) 2 + + f (n) (a) (x a) n + n! (x a) 2 + + f (n) (a) (x a) n n! Carlos Balsa 10/ 26

Exemplo 3: erro de truncatura Origem dos Erros Erros de Computação Erro Propagado Aproximar f (x) = cos(x) utilizando os três primeiros termos da série de Taylor em torno de a = 0 cos(x) cos(a) + (cos(a)) 1! cos(0) + sen(0) 1 1 x 2 /2 (x a) + (cos(a)) (x a) 2 2! (x) + cos(0) (x) 2 2 Se x = 0.1 temos cos(0.1) 1 0.1 2 /2 = 0.995 Erro absoluto: f = cos(0.1) 0.995 0.0000042 Erro relativo: r f = cos(0.1) 0.995 cos(0.1) 0.0000042 = 0.00042% Carlos Balsa 11/ 26

Erros de Arredondamento Origem dos Erros Erros de Computação Erro Propagado Arredondamento de x IRpode ser feito de três maneiras diferentes: Arredondamento simétrico: Eliminam-se todos os algarismos (dígitos) situados à direita do último número que queremos manter. Se o primeiro dos algarismo eliminados for maior ou igual a 5 adiciona-se 1 ao último algarismo da parte não eliminada. Se o primeiro dos algarismo eliminados for inferior a 5 mantêm-se a parte não eliminada sem alterações. Arredondamento por excesso: adiciona-se sempre 1 ao último dígito da parte mantida Arredondamento por defeito: último algarismo da parte mantida não é alterado Nota: Arredondamento simétrico é normalmente utilizado porque minimiza o erro cometido. Arredondamento por excesso utilizado no arredondamento dos erros de forma a obter um majorante. Carlos Balsa 12/ 26

Origem dos Erros Erros de Computação Erro Propagado Exemplo 4: erro de arredondamento Arredondar x = 0.0012870012 a quatro posições decimais (m = 4) pelos três métodos anteriores e calcular os respectivos erros Arredondamento simétrico: ˆx = 0.0013, x = ˆx x = 0.0000129988, r x = ˆx x x = 0.010100068 1% Arredondamento por excesso: ˆx = 0.0013, x = ˆx x = 0.0000129988, r x = ˆx x x = 0.010100068 1% Arredondamento por defeito: ˆx = 0.0012, x = ˆx x = 0.0000870012, r x = ˆx x x = 0.067599936 7% Carlos Balsa 13/ 26

Origem dos Erros Erros de Computação Erro Propagado Erro anterior (backward error) e erro posterior (forward error) Supondo que queremos calcular y = f (x), com f : IR IR, mas obtemos o valor aproximado ŷ Erro posterior (final) y = ŷ y, com ŷ = ˆf (x) Erro anterior (inicial) x = ˆx x Carlos Balsa 14/ 26

Origem dos Erros Erros de Computação Erro Propagado Exemplo 5: erro anterior e erro posterior Como aproximação a y = 2, ŷ = 1.4 tem como erro absoluto posterior y = ŷ y = 1.4 1.41421 0.0142 que corresponde a um erro relativo posterior de cerca de 1% Uma vez que 1.96 = 1.4, o erro absoluto anterior é x = ˆx x = 1.96 2 0.04 que corresponde a um erro relativo anterior de cerca de 2% Carlos Balsa 15/ 26

Análise do erro anterior Origem dos Erros Erros de Computação Erro Propagado Ideia: solução aproximada é a solução exacta do problema modificado De quanto deve ser modificado o problema original para originar o resultado obtido? Quanto é que o os erros nos inputs podem explicar todos os erros nos resultados calculados? A solução aproximada é boa se for a solução exacta de um problema próximo do original O erro anterior é por vezes mais fácil de estimar do que o erro à posterior Carlos Balsa 16/ 26

Origem dos Erros Erros de Computação Erro Propagado Exemplo 6: análise do erro anterior Vamos aproximar a função cosseno f (x) = cos(x) através da série de Taylor truncada a partir dos 3 primeiros termos ŷ = ˆf (x) = 1 x 2 /2 O erro posterior é dado por y = ŷ y = ˆf f = 1 x 2 /2 cos(x) Para determinar o erro anterior necessitamos do valor ˆx tal que f (ˆx) = ˆf (x) Para a função cosseno, ˆx = arccos(ˆf (x)) = arccos(ŷ) Tal como no exemplo 3, se x = 0.1 temos um erro posterior de y = 0.0000042 e o erro anterior é x = 0.1 arccos(0.995) 0.000042 Carlos Balsa 17/ 26

Número de Condição Um problema é insensível ou bem condicionado se mudanças relativas no input provocam mudanças relativas semelhantes na solução Um problema é sensível ou mal condicionado se mudanças relativas no input provocam muito maiores mudanças relativas na solução Número de condição Mud. relativa na sol. Cond = Mud. relativa nos inputs [f (ˆx) f (x)] /f (x) = = y/y (ˆx x) /x x/x O problema é sensível ou mal condicionado se Cond 1 Carlos Balsa 18/ 26

Número de Condição Número de Condição O número de condição é um factor de ampliação do erro anterior em relação ao erro posterior Erro relativo posterior = cond Erro relativo anterior Normalmente o numero de condição não é exactamente conhecido e pode variar com o input, pelo que se usa uma aproximação ou um limite máximo para o valor de Cond Erro relativo posterior cond Erro relativo anterior Carlos Balsa 19/ 26

Número de Condição Exemplo 7: condicionamento de uma função Calcular uma função para o input aproximado ˆx = x + x em vez de x Erro absoluto posterior: f (x + x) f (x) f (x) x Erro relativo posterior: Número de condição: cond f (x+ x) f (x) f (x) f (x) x f (x) f (x) x/f (x) x/x = xf (x) f (x) Condicionamento de uma função depende x e de f Carlos Balsa 20/ 26

Número de Condição Exemplo 8: sensibilidade da função tangente A função tangente é sensível para argumentos próximos de π/2 tan(1.57079) 1.58058 10 5 tan(1.57078) 6.12490 10 4 Mudança relativa no output é um quarto de milhão maior do que a mudança relativa no input Para x = 1.57079, cond 2.48275 10 5 Carlos Balsa 21/ 26

Notação de Virgula Flutuante Notação de Virgula Flutuante Nos computadores os números são representados por um sistema de números de vírgula (ou ponto) flutuante da forma x = ±f x b e em que f x : mantissa (fracção) b: base e: expoente Maior parte dos computadores modernos são concebidos de acordo o sistema de ponto flutuante do IEEE, em que a base é binária (b = 2) Os computadores convertem os inputs, na base decimal (b = 10), para a base binária antes de efectuar as operações pedidas, posteriormente convertem também os resultados para a base decimal antes de serem apresentados Carlos Balsa 22/ 26

Notação de Virgula Flutuante A forma padrão de representar um numero em computador é através da notação científica x = ±f x 10 e em que 1 f x < 10 (todos os dígitos de f x são significativos) Na notação científica normalizada tem-se 0.1 f x < 1 Em análise de erros esta notação é útil pois verifica a relação m = e t, em que m é o numero de posições décimas, t é o número de dígitos significativos e e é o expoente na base 10 Por exemplo x = 0.0003450 x = 3.450 10 4 ou x = 3.450e 4: notação científica x = 0.3450 10 3 ou x = 0.3450e 3: not. normalizada Carlos Balsa 23/ 26

Precisão Máquina Notação de Virgula Flutuante Conjunto dos números de ponto flutuante é discreto e finito; quando um x IR não tem representação exacta neste conjunto, é aproximado pelo número de ponto flutuante mais próximo fl(x) Erro relativo devido ao arredondamento produzido quando um valor x 0 é substituído por fl(x) é majorado por x fl(x) x 1 2 ɛ maq em que ɛ maq, designada por unidade de arredondamento (ou precisão máquina), é um parâmetro interno que depende do computador e do software Expoente de ɛ maq corresponde ao número de dígitos de precisão com que um número real é representado no sistema de ponto flutuante No sistema IEEE de precisão simples ɛ maq 10 7 e no de precisão dupla ɛ maq 10 16 (maior parte dos computadores) Carlos Balsa 24/ 26

Underflow e Overflow Notação de Virgula Flutuante Menor valor (em valor absoluto), diferente de zero, que é possível representar no sistema de ponto flutuante é designado por underflow (no Octave cerca de 2.2250e 308) Maior máximo que é possível representar no sistema de ponto flutuante é designado por overflow (no Octave cerca de 1.7977e + 308) No decorrer da execução de um algoritmo se o overflow ocorre verifica-se um erro fatal responsável pelo fim precipitado da execução Não confundir underflow com ɛ maq, embora ambos sejam pequenos, a precisão máquina depende do número de dígitos na mantissa (f x ) enquanto que o underflow é determinado pelo número de dígitos no campo do expoente (e) Num sistema de ponto flutuante temos 0 < underflow < ɛ maq < overflow Carlos Balsa 25/ 26

Notação de Virgula Flutuante Bibliografia 1 Michael T. Heath, "Scientific Computing an Introductory Survey". McGraw-Hill, 2005. 2 A. Quarteroni e F. Saleri, "Cálculo Científico com Matlab e Octave". Springer, 2006. 3 C. Balsa e A. Santos, "Texto de Apoio à Disciplina de Análise Numérica". ESTiG-IPB, 2006. Carlos Balsa 26/ 26