Aula-01-Erros

40
Cálculo Numérico Aula – 1 Erros e Representação Numérica

Transcript of Aula-01-Erros

Page 1: Aula-01-Erros

Cálculo Numérico

Aula – 1

Erros e Representação Numérica

Page 2: Aula-01-Erros

Cálculo Numérico

ERROS A resolução de problemas envolvendo métodos numéricos

aparecem em diversas áreas;

Podemos estruturar as fases de resolução através do seguinte esquema:

Page 3: Aula-01-Erros

Cálculo Numérico

Problema Levantamento de

Real Dados

Construção do

modelo matemático

Escolha do método numérico

Implantação computacional do método

Análise dos resultados

Reformulação do modelo

ou escolha do novo método

Page 4: Aula-01-Erros

Cálculo Numérico

Como tratar os erros nesse processo?

O que fazer para evitá-los tanto quanto possível?

Há erros que surgem da representação dos números.

Page 5: Aula-01-Erros

Cálculo Numérico

Exemplo 1) Calcular a área de uma circunferência de raio 100m.

Para = 3,14 temos: A1 = .r2 A1 = 31.400 m2;

Para = 3,1416 temos: A2 = .r2 A2 = 31.416 m2;

Para = 3,141592654 temos: A3= .r2 A3 = 31.415,92 m2;

Page 6: Aula-01-Erros

Cálculo Numérico

O número não pode ser representado através de um número finito de dígitos decimais, pois é um número irracional;

Quanto maior o número de dígitos utilizados, maior será a precisão obtida, portanto, a melhor opção é a terceira: = 3,141592654 ;

O “erro” depende exclusivamente da aproximação escolhida.

Page 7: Aula-01-Erros

Cálculo Numérico

Outro exemplo de erro relacionado à representação dos números ocorrer, por exemplo, quando um usuário de computador passa seus dados no sistema decimal e o computador os converte para o sistema binário;

No computador, geralmente, a quantidade de operações aritméticas que se pode realizar é muito maior do que aquelas realizadas manualmente, de forma que o erro de arredondamento do dispositivo de cálculo se torna importante.

Pequenos erros que poderiam passar despercebidos no cálculo manual, podem arruinar completamente o resultado do cálculo computacional, por causa da acumulação e propagação de erro.

Page 8: Aula-01-Erros

Cálculo Numérico

Conversão de números inteiros : Binário-Decimal De um modo geral, dado um número N numa base , tal que:

N = (anan-1...a2a1a0)

podemos escrever N na forma polinomial:

N = an n + an-1 n-1 + ... + a2 2 + a1 1 + a0 0

Exemplo (347)10 = 3 x 102 + 4 x 101 + 7 x 100

(10111)2 = 1 x 24 + 0 x 23 + 1 x 22 + 1 x 21 + 1 x 20

Page 9: Aula-01-Erros

Cálculo Numérico

A conversão de binário em decimal se faz da seguinte maneira: (10111)2 = 1 x 24 + 0 x 23 + 1 x 22 + 1 x 21 + 1 x 20

(10111)2 = 16 + 0 + 4 + 2 + 1

(10111)2 = (23)10

Conversão de números inteiros : Decimal-Binário Para converter um número da base 10 para a base 2 aplica-se o

seguinte algoritmo; escrevendo-se os dígitos na base 2: (347)10

Page 10: Aula-01-Erros

Cálculo Numérico

347 2

1 173 2

1 86 2

0 43 2

1 21 2

1 10 2

0 5 2

1 2 2

0 1

(347)10 = (101011011)2

Page 11: Aula-01-Erros

Cálculo Numérico

Outro algoritmo de conversão Binário-Decimal Dado N = (anan-1...a2a1a0) 2

A representação desse número na base 10, a qual chamamos b0 é obtida da seguinte maneira:

bn = an

bn-1 = an-1 + 2.bn

bn-2 = an-2 + 2.bn-1

...

b1 = a1 + 2.b2

b0 = a0 +2.b1

Page 12: Aula-01-Erros

Cálculo Numérico

Exemplo Dado N = (10111) 2

b4 = 1

b3 = 0 + 2.1

b2 = 1 + 2.2

b1 = 1 + 2.5

b0 = 1 +2.11 b0 = (23)10

Page 13: Aula-01-Erros

Cálculo Numérico

Analogamente para se converter um número da base decimal para a binária aplica-se o algoritmo anterior mas, escrevendo todos os dígitos na base 2, inclusive a própria base: (10)10 = (1010)2.

Dado N = (347) 10

A representação de cada dígito na base 2 é:

(3)10 equivale a (11)2

(4)10 equivale a (100)2

(7)10 equivale a (111)2

Page 14: Aula-01-Erros

Cálculo Numérico

Portanto, para converter (347)10 para seu equivalente binário proceda da seguinte maneira:

b2 = a2 = (11)2

b1 = a1 + 10.b2 = (100)2 + (1010)2 = (100010)2

b0 = a0 + 10.b1 = (111)2 + (1010)2.(100010)2 = (101011011)2

Page 15: Aula-01-Erros

Cálculo Numérico

Números Binários Fracionários Esses números são expressos como potências negativas de

base 2; Exemplo

(0,1101)2= 1 x 2-1 + 1 x 2-2 + 0 x 2-3 + 1 x 2-4

2-1 =

2-2 =

2-3 =

5,02

1

25,02

12

125,02

13

Page 16: Aula-01-Erros

Cálculo Numérico

Portanto: (0,1101)2= (0,875)10

Conversão decimal para binário de um número fracionário Para converter uma fração decimal para base 2, multiplique a

fração sucessivamente pela base 2 e guarde as partes inteiras produzidas pela multiplicação.

Exemplo Converter a fração 0,3125 na sua equivalente binária

Page 17: Aula-01-Erros

Cálculo Numérico

Multiplicações inteiros

0,3125 x 2 = 0,625 = 0,625 0

0,625 x 2 = 1,250 = 0,250 1

0,250 x 2 = 0,500 = 0,500 0

0,500 x 2 = 1,00 = 0 1

Quando 0,3125 é multiplicado por 2, a parte inteira é 0. Isto resulta o “bit” mais significativo da fração binária equivalente.

Page 18: Aula-01-Erros

Cálculo Numérico

Quando 0,625 é multiplicado por 2 e o produto é1,25, a parte inteira é 1. Quando a parte inteira for 1, ela é subtraída do produto e o 1 é guardado. Portanto, apenas 0,25 é multiplicado por2 no próximo processo de multiplicação.

O método continua até que resulte um número sem parte inteira fracionária. É importante observar que não se pode obter sempre o zero (0) quando se multiplica por 2.

O processo continua até se alcançar a precisão desejada.

Page 19: Aula-01-Erros

Cálculo Numérico

Colete os números inteiros começando pelo ponto binário com o bit mais significativo e continuando até o menos significativo. Esta é a mesma ordem na qual as partes inteiras são produzidas.

O número (0,0101)2 = (0,3125)10

Page 20: Aula-01-Erros

Cálculo Numérico

Quando o número apresenta uma parte inteira e uma fracionária Deve-se separar as partes inteiras e fracionárias usando o

ponto decimal como ponto de separação. Após converter a parte inteira e a parte fracionária, devemos

juntá-las. Exemplo

Converter o decimal 14,375 no seu equivalente binário. Parte inteira: 14 Parte fracionária: 0,375

Page 21: Aula-01-Erros

Cálculo Numérico

Parte inteira 14 2

0 7 2

1 3 2

1 1 (14)10 = (1110)2

Parte fracionária inteiro

0,375 x 2 = 0,750 0

0,750 x 2 = 1,500 1

0,500 x 2 = 1,000 1 (0,375)10 = (0,011)2

Logo, (14,375)10 = (1110,011)2

Page 22: Aula-01-Erros

Cálculo Numérico

Erros absolutos e relativos Erro absoluto é a diferença entre o valor exato de um número

x e de seu valor aproximado ;

EAx = Em geral, x não é conhecido e trabalhamos com uma

estimativa para o módulo do erro absoluto. Exemplo

Sabemos que (3,14 – 3,15). Se tomarmos como um valor dentro deste intervalo, teremos:

| EA | = | - | < 0,01

x

xx

Page 23: Aula-01-Erros

Cálculo Numérico

Erros absolutos e relativos Erro relativo é definido como o erro absoluto dividido pelo

valor aproximado;

Considere x representado por de tal forma que |EAx| < 0,1, ou seja, x (2112,8 – 2113);

Considere agora o número y representado por de tal forma que |EAy| < 0,1, ou seja, y (5,2 – 5,4);

x

xx

x

EAER x

x

9,2112x

3,5y

Page 24: Aula-01-Erros

Cálculo Numérico

Erros absolutos e relativos Embora as extremidades dos intervalos para os erros absolutos

sejam os mesmos os números não são representados com a mesma precisão devido à ordem de grandeza de x e y.

A avaliação do erro relativo se faz necessária pois o erro absoluto não é suficiente para descrever a precisão do cálculo.

Page 25: Aula-01-Erros

Cálculo Numérico

No item anterior, temos:

x portanto possui maior precisão que y, pois possui um erro relativo menor.

5107,49,2112

1,0 x

EAx

xER

02,03,5

1,0

y

EA

yyER

Page 26: Aula-01-Erros

Cálculo Numérico

Tipos de erros Erro de arredondamento: são causados pelas limitações dos

dispositivos . Ex.: o número de dígitos no display de uma calculadora, imprecisão na escala geométrica de uma régua, a representação binária de um número decimal no computador, etc.

Exemplo Considere o número decimal 0,1. Seu equivalente binário é: 0,0001100110011... Um computador de 16 bits consegue armazenar o seguinte

valor: 0,0001100110011001.

Page 27: Aula-01-Erros

Cálculo Numérico

Exemplo Mas 0,0001100110011001 ao ser convertido para a base 10

novamente, equivale a:

(0,0001100110011001 )2 (0,099990844)10

Logo, o erro de arredondamento é dado por:

erro absoluto = | 0,1 – 0,099990844|

erro absoluto = 0,000009155

erro absoluto 9 . 10-6

Page 28: Aula-01-Erros

Cálculo Numérico

Tipos de erros Erro de truncamento: são causados pelos métodos de

aproximação empregado para o cálculo de uma função exata. Exemplo-1

Considere a função exponencial ex; Represente a função a partir da expansão em séries de

potência;

...!3!2

132

xx

xex

Page 29: Aula-01-Erros

Cálculo Numérico

Essa série é infinita; Entretanto, para efeitos de cálculo, tomamos uma parte finita

dela; Podemos escolher aproximar a função selecionando apenas os

três primeiros termos;

!21

2xxex

Page 30: Aula-01-Erros

Cálculo Numérico

O resultado da série truncada será sempre aproximado, portanto, terá sempre um erro, denominado erro de truncamento.

Exemplo-2 Calcule o valor numérico de e1 = e (número de Euler)

empregando a série truncada de 2.a ordem:

5,2

!2

111

!21

1

21

2

e

e

xxex

Page 31: Aula-01-Erros

Cálculo Numérico

Sabendo que o valor exato do número de Euler com 4 algarismos significativos é e = 2,718, o erro de truncamento equivale a:

erro absoluto = | 2,718 – 2,5|

erro absoluto = 0,218

Page 32: Aula-01-Erros

Cálculo Numérico

Tipos de erros Erro por estouro de memória (Overflow/underflow): A precisão de

uma variável numérica real pode conter no máximo o número 1038 e no mínimo o número 10-38 .

O erro de overflow ocorre quando o resultado de uma operação aritmética excede o valor de 3,4028235.1038.

O erro de underflow ocorre para uma variável real em precisão

inferior a 1,1754944.10-38.

Page 33: Aula-01-Erros

Cálculo Numérico

Alguns desastres atribuíveis a erros de Cálculo Numérico The Patriot Missile Failure

On February 25, 1991, during the Gulf War, an American Patriot Missile battery in Dharan, Saudi Arabia, failed to track and intercept an incoming Iraqi Scud missile. The Scud struck an American Army barracks, killing 28 soldiers and injuring around 100 other people. A report of the General Accounting office, GAO/IMTEC-92-26, entitled Patriot Missile Defense: Software Problem Led to System Failure at Dhahran, Saudi Arabia reported on the cause of the failure. It turns out that the cause was an inaccurate calculation of the time since boot due to computer arithmetic errors. Specifically, the time in tenths of second as measured by the system's internal clock was multiplied by 1/10 to produce the time in seconds. This calculation was performed using a 24 bit fixed point register. In particular, the value 1/10, which has a non-terminating binary expansion, was chopped at 24 bits after the radix point.

Page 34: Aula-01-Erros

Cálculo Numérico

The small chopping error, when multiplied by the large number giving the time in tenths of a second, led to a significant error. Indeed, the Patriot battery had been up around 100 hours, and an easy calculation shows that the resulting time error due to the magnified chopping error was about 0.34 seconds. (The number 1/10 equals 1/24+1/25+1/28+1/29+1/212+1/213+.... In other words, the binary expansion of 1/10 is 0.0001100110011001100110011001100.... Now the 24 bit register in the Patriot stored instead 0.00011001100110011001100 introducing an error of 0.0000000000000000000000011001100... binary, or about 0.000000095 decimal. Multiplying by the number of tenths of a second in 100 hours gives 0.000000095×100×60×60×10=0.34.) A Scud travels at about 1,676 meters per second, and so travels more than half a kilometer in this time. This was far enough that the incoming Scud was outside the "range gate" that the Patriot tracked. Ironically, the fact that the bad time calculation had been improved in some parts of the code, but not all, contributed to the problem, since it meant that the inaccuracies did not cancel.

Page 35: Aula-01-Erros

Cálculo Numérico

The Explosion of the Ariane 5 On June 4, 1996 an unmanned Ariane 5 rocket launched by the European Space Agency exploded just forty

seconds after its lift-off from Kourou, French Guiana. The rocket was on its first voyage, after a decade of development costing $7 billion. The destroyed rocket and its cargo were valued at $500 million. A board of inquiry investigated the causes of the explosion and in two weeks issued a report. It turned out that the cause of the failure was a software error in the inertial reference system. Specifically a 64 bit floating point number relating to the horizontal velocity of the rocket with respect to the platform was converted to a 16 bit signed integer. The number was larger than 32,767, the largest integer storable in a 16 bit signed integer, and thus the conversion failed.

Page 36: Aula-01-Erros

Cálculo Numérico

The sinking of the Sleipner A offshore platform The Sleipner A platform produces oil and gas in the North Sea and is supported on the seabed at a water depth of

82 m. It is a Condeep type platform with a concrete gravity base structure consisting of 24 cells and with a total base area of 16 000 m2. Four cells are elongated to shafts supporting the platform deck. The first concrete base structure for Sleipner A sprang a leak and sank under a controlled ballasting operation during preparation for deck mating in Gandsfjorden outside Stavanger, Norway on 23 August 1991.

Page 37: Aula-01-Erros

Cálculo Numérico

A better idea of what was involved can be obtained from this photo and sketch of the platform. The top deck weighs 57,000 tons, and provides accommodation for about 200 people and support for drilling equipment weighing about 40,000 tons. When the first model sank in August 1991, the crash caused a seismic event registering 3.0 on the Richter scale, and left nothing but a pile of debris at 220m of depth. The failure involved a total economic loss of about $700 million.

The 24 cells and 4 shafts referred to above are shown to the left while at the sea surface. The cells are 12m in diameter. The cell wall failure was traced to a tricell, a triangular concrete frame placed where the cells meet, as indicated in the diagram below. To the right of the diagram is pictured a portion of tricell undergoing failure testing.

Page 38: Aula-01-Erros

Cálculo Numérico

The post accident investigation traced the error to inaccurate finite element approximation of the linear elastic model of the tricell (using the popular finite element program NASTRAN). The shear stresses were underestimated by 47%, leading to insufficient design. In particular, certain concrete walls were not thick enough. More careful finite element analysis, made after the accident, predicted that failure would occur with this design at a depth of 62m, which matche well with the actual occurrence at 65m..

fonte:http://www.ima.umn.edu/~arnold/disasters/

Page 39: Aula-01-Erros

Apêndice

decimal -> binário0 -> 01 -> 12 -> 103 -> 114 -> 1005 -> 1016 -> 1107 -> 1118 -> 10009 -> 100110 -> 101011 -> 101112 -> 110013 -> 110114 -> 111015 -> 1111

Page 40: Aula-01-Erros

Referências bibliográficas:

Darezzo, A; Arenales, S. Cálculo Numérico: Aprendizagem com apoio de software. Thomson Learning, 2008.

Eves, H. Foundations and Fundamental Concepts of Mathematics. Dover, 1990.

FRANCO, Neide Bertoldi. Cálculo Numérico. Pearson Prentice Hall, 2006.

Humes, A.F. P. C. [et alii]. Noções de Cálculo Numérico. São Paulo: Makron, 1984.

Massarani, G. Introdução ao Cálculo Numérico. Rio de Janeiro. Livro TécnicoS.A., 1967.

Ruggiero, M.A.G. & Lopes, V.L.R. Cálculo Numérico: Aspectos Teóricos e Computacionais. , São Paulo: McGraw-Hill, 1988.

Cálculo Numérico