Computação Aplicada I - Introdução ao Cálculo Numérico

75
DEQFCTUC Departamento de Engenharia Qu´ ımica Faculdade de Ciˆ encias e Tecnologia Universidade de Coimbra Computação Aplicada I Introdução ao Cálculo Numérico Pedro Nuno Simões Ano Lectivo 2005/06

Transcript of Computação Aplicada I - Introdução ao Cálculo Numérico

Page 1: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUCDepartamento de Engenharia Quımica

Faculdade de Ciencias e Tecnologia

Universidade de Coimbra

Computação Aplicada IIntrodução ao Cálculo Numérico

Pedro Nuno Simões

Ano Lectivo 2005/06

Page 2: Computação Aplicada I - Introdução ao Cálculo Numérico

Conteúdo

1 IntroduçãoAnálise numérica e ciências da computação

2 Algoritmos numéricos e errosTipos (fontes) de erros. Erro absoluto e erro relativoCondicionamento e estabilidade

3 Erros de arredondamento e aritmética computacionalRepresentação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Page 3: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacionalAnálise numérica e ciências da computação

Análise numérica: área da matemática e da ciência da computaçãoque gera, analisa e põe em execução algoritmos capazesde resolver numericamente problemas de matemáticacontínua, cujas soluções analíticas, ou são muito difíceis,ou impossíveis.

Ciência da computação: recorre a algoritmos numéricos de modoeficiente (tirando partido do próprio "hardware") pararesolver problemas matemáticos em inúmerasdisciplinas das ciências e engenharias.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 4: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacionalAnálise numérica e ciências da computação

Problema⇓

Modelo Matemático⇓

Algoritmo⇓

Resultados⇓

Apresentação

Figura: Conjunto de actividades típicas na computação científica.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 5: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacionalAnálise numérica e ciências da computação

Um problema é bem formulado se a solução para o mesmoexiste;é única;depende continuamente dos seus dados.

Se a solução for sensível aos dados, o algoritmo deve ser de molde anão agravar essa sensibilidade.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 6: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacionalAnálise numérica e ciências da computação

A estratégia habitual consiste em transformar um problema difícilnum equivalente, mais fácil, que conduza à mesma solução ou a umasolução aproximada.

Por exemplo:infinito (contínuo) −→ finito (discreto);diferencial −→ algébrico;não-linear −→ linear;complicado −→ simples.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 7: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacionalAnálise numérica e ciências da computação

Fontes de aproximação do problema:antes da resolução:

modelação;medições empíricas;cálculos anteriores;

durante a resolução:truncatura ou discretização;arredondamento.

O grau de exactidão do resultado final é um reflexo de todos estesfactores.Incertezas nos dados do problema podem ser amplificadas pelopróprio problema.Perturbações durante o cálculo podem ser amplificadas peloalgoritmo.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 8: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacionalAnálise numérica e ciências da computação

Exemplo

O cálculo da área superficial da Terra com base no modelo

A = 4πR2

envolve várias aproximações:a Terra é modelada como uma esfera, o que é uma idealização dasua forma verdadeira;o valor do raio R é baseado em medições empíricas e em cálculosrealizados previamente;o valor de π (dízima infinita) é representado de um modotruncado;os valores dos dados e das operações aritméticas realizadas sãoarredondados no computador.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 9: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Tipos (fontes) de erros. Erro absoluto e erro relativoCondicionamento e estabilidade

Algoritmo. Conjunto de regras com vista à resolução de umdeterminado problema. Cada passo do algoritmo deveser precisamente definido de modo a ser expresso numalinguagem de programação e executado emcomputador.

O problema contínuo é convertido num problema discreto(aproximado). Funções contínuas são aproximadas com base numconjunto finito de valores.

Os algoritmos devem ser projectados de modo a resolver o problemacom eficiência, elevado nível de exactidão e de maneira fiável.

A computação científica procura projectar e desenvolver taisalgoritmos. A análise numérica serve de suporte teórico a essasacções.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 10: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Tipos (fontes) de erros. Erro absoluto e erro relativoCondicionamento e estabilidade

Após o desenvolvimento dos algoritmos há que colocá-los emprática, o que remete para questões como:

linguagens de programação:p. ex. C, C++, JAVA, FORTRAN , MATLAB , etc.;

estruturas de dados;arquitecturas computacionais e sua exploração mediantealgoritmos adequados, etc.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 11: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Tipos (fontes) de erros. Erro absoluto e erro relativoCondicionamento e estabilidade

As fontes de erro a considerar têm diferentes origens.

Erros associados ao problema a ser resolvido:erros de aproximação associados ao modelo matemático;erros nos dados.

Erros de aproximação:erros de truncatura devidos à discretização de processoscontínuos (interpolação, diferenciação, integração ...);erros de convergência, normalmente associados a processositerativos.

Erros de arredondamento:resultantes da representação finita de qualquer número real emcomputador, o que afecta não só a representação de dados mastambém a aritmética computacional.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 12: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Tipos (fontes) de erros. Erro absoluto e erro relativoCondicionamento e estabilidade

Os erros podem expressar-se em termos absolutos ou

relativos.Sejam: α = um valor exacto ou um valor de referênciaα = um valor calculado

Erro absoluto: Eabs(α) = |α− α|

Erro relativo: Erel(α) =|α− α||αref|

Se αref = α : Erel(α) =|α− α||α|

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 13: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Tipos (fontes) de erros. Erro absoluto e erro relativoCondicionamento e estabilidade

Exemplo

α α Eabs(α) Erel(α)

1 0.99 0.01 0.011 1.01 0.01 0.01

-1.5 -1.2 0.3 0.2100 99.99 0.01 0.0001100 99 1 0.01

Geralmente, é preferível utilizar o erro relativo!

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 14: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Tipos (fontes) de erros. Erro absoluto e erro relativoCondicionamento e estabilidade

Um importante teorema ao qual se recorre com frequência em análisenumérica é o seguinte.

Teorema (Série de Taylor)

Seja f (x) uma função contínua com k + 1 derivadas no intervalo[x0, x0 + h]. Então,

f (x0 + h) = f (x0) + h f ′(x0) +h2

2!f ′′(x0) +

h3

3!f ′′′(x0) + · · ·+

+hn

n!f n(x0) +

hn+1

(n + 1)!f n+1(ξ)

em que ξ ∈ [x0, x0 + h].

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 15: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Tipos (fontes) de erros. Erro absoluto e erro relativoCondicionamento e estabilidade

−6 −4 −2 0 2 4 6−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

x

sin

(x);

ap

rox

. de

sin

(x)

po

r sé

rie

de

Tay

lor

Figura: Aproximações de f (x) = sin(x) por expansão em série de Taylor, emtorno de x = x0 = 0.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 16: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Tipos (fontes) de erros. Erro absoluto e erro relativoCondicionamento e estabilidade

−6 −4 −2 0 2 4 6−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

x

sin

(x);

ap

rox

. de

sin

(x)

po

r sé

rie

de

Tay

lor

Figura: Aproximações de f (x) = sin(x) por expansão em série de Taylor, emtorno de x = x0 = 0.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 17: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Tipos (fontes) de erros. Erro absoluto e erro relativoCondicionamento e estabilidade

−6 −4 −2 0 2 4 6−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

x

sin

(x);

ap

rox

. de

sin

(x)

po

r sé

rie

de

Tay

lor

Figura: Aproximações de f (x) = sin(x) por expansão em série de Taylor, emtorno de x = x0 = 0.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 18: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Tipos (fontes) de erros. Erro absoluto e erro relativoCondicionamento e estabilidade

−6 −4 −2 0 2 4 6−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

x

sin

(x);

ap

rox

. de

sin

(x)

po

r sé

rie

de

Tay

lor

Figura: Aproximações de f (x) = sin(x) por expansão em série de Taylor, emtorno de x = x0 = 0.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 19: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Tipos (fontes) de erros. Erro absoluto e erro relativoCondicionamento e estabilidade

−6 −4 −2 0 2 4 6−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

x

sin

(x);

ap

rox

. de

sin

(x)

po

r sé

rie

de

Tay

lor

Figura: Aproximações de f (x) = sin(x) por expansão em série de Taylor, emtorno de x = x0 = 0.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 20: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Tipos (fontes) de erros. Erro absoluto e erro relativoCondicionamento e estabilidade

−6 −4 −2 0 2 4 6−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

x

sin

(x);

ap

rox

. de

sin

(x)

po

r sé

rie

de

Tay

lor

Figura: Aproximações de f (x) = sin(x) por expansão em série de Taylor, emtorno de x = x0 = 0.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 21: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Tipos (fontes) de erros. Erro absoluto e erro relativoCondicionamento e estabilidade

−6 −4 −2 0 2 4 6−2

−1.5

−1

−0.5

0

0.5

1

1.5

2

x

sin

(x);

ap

rox

. de

sin

(x)

po

r sé

rie

de

Tay

lor

sin(x)2 termos4 termos6 termos8 termos

Figura: Aproximações de f (x) = sin(x) por expansão em série de Taylor, emtorno de x = x0 = 0.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 22: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Tipos (fontes) de erros. Erro absoluto e erro relativoCondicionamento e estabilidade

Exemplo

Consideremos o problema da aproximação da derivada f ′(x0) numponto x = x0, de uma dada função, f (x).

O objectivo é desenvolver um algoritmo que permita o cálculo def ′(x0) por via numérica, e avaliar algumas questões que se prendemcom os erros.

Seja, por exemplo, f (x) = sin(x) definida em todo o domínio dosnúmeros reais, −∞ < x < +∞, e seja x0 = 1.2.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 23: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Tipos (fontes) de erros. Erro absoluto e erro relativoCondicionamento e estabilidade

Exemplo (cont.)

Uma forma possível de construir um algoritmo para determinarf ′(x0) numericamente consiste no recurso à série de Taylor.

Passagem do domínio contínuo:−∞ +∞

ao domínio discretou u u u u u u· · · · · ·xi−2 xi−1 xi xi+1 xi+2

Passo de discretização: h = xi+1 − xi.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 24: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Tipos (fontes) de erros. Erro absoluto e erro relativoCondicionamento e estabilidade

Exemplo (cont.)

Da expansão de f (x) em série de Taylor em torno de x0

f (x0 + h) = f (x0) + h f ′(x0) +h2

2!f ′′(x0) +

h3

3!f ′′′(x0) + · · ·

vem

f ′(x0) =f (x0 + h)− f (x0)

h−(

h2

2!f ′′(x0) +

h3

3!f ′′′(x0) + · · ·

)

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 25: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Tipos (fontes) de erros. Erro absoluto e erro relativoCondicionamento e estabilidade

Exemplo (cont.)

Então, um algoritmo possível para a aproximação de f ′(x0) consisteno cálculo de

f (x0 + h)− f (x0)h

A aproximação tem um erro de discretização ou de truncatura dadopor ∣∣∣∣f ′(x0)−

f (x0 + h)− f (x0)h

∣∣∣∣ =∣∣∣∣h2

2!f ′′(x0) +

h3

3!f ′′′(x0) + · · ·

∣∣∣∣

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 26: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Tipos (fontes) de erros. Erro absoluto e erro relativoCondicionamento e estabilidade

Exemplo (cont.)

Se h ≪ 1 e f ′′(x0) 6= 0:∣∣∣∣f ′(x0)−f (x0 + h)− f (x0)

h

∣∣∣∣ ≈ h2

2!

∣∣f ′′(x0)∣∣

No nosso caso:f (x) = sin(x)f ′(x) = cos(x)f ′(x0) = cos(1.2) = 0.362357754476674 . . . .

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 27: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Tipos (fontes) de erros. Erro absoluto e erro relativoCondicionamento e estabilidade

Exemplo (cont.)

h Eabs

1.e-1 4.716676e-21.e-2 4.666196e-31.e-3 4.660799e-41.e-4 4.660256e-51.e-7 4.619326e-8

h Eabs

1.e-8 4.361050e-101.e-9 5.594726e-81.e-10 1.669696e-71.e-11 7.938531e-61.e-13 6.851746e-41.e-15 8.173146e-21.e-16 3.623578e-1

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 28: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Tipos (fontes) de erros. Erro absoluto e erro relativoCondicionamento e estabilidade

Exemplo (cont.)

10−20

10−15

10−10

10−5

10−1

10−15

10−10

10−5

10−1

h

Erro

Ab

so

luto

Figura: Efeito combinado dos erros de truncatura e arredondamento nocálculo numérico da derivada.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 29: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Tipos (fontes) de erros. Erro absoluto e erro relativoCondicionamento e estabilidade

O facto de os erros serem inevitáveis em cálculo numérico levanta aquestão da sensibilidade da solução de um problema a pequenasvariações nos dados ou nos parâmetros do problema.

Um problema diz-se sensível ou mal-condicionado se pequenasperturbações nos seus dados ou nos seus parâmetros conduzem agrandes alterações nos resultados.

Um problema diz-se insensível ou bem-condicionado se pequenasperturbações nos seus dados ou nos seus parâmetros conduzem apequenas alterações nos resultados.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 30: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Tipos (fontes) de erros. Erro absoluto e erro relativoCondicionamento e estabilidade

x

x

f

f

y

y

Figura: Ilustração de um problema mal-condicionado no cálculo dey = f (x): quando o dado x é ligeiramente perturbado para x, o resultadoy = f (x) é muito diferente de y.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 31: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Tipos (fontes) de erros. Erro absoluto e erro relativoCondicionamento e estabilidade

Exemplo

As raízes do polinómio

p(x) = (x− 1)(x− 2)(x− 3)(x− 4)(x− 5)(x− 6)(x− 7)

= x7 − 28x6 + 322x5 − 1960x4 + 6769x3 − 12132x2 + 13068x− 5040

são muito sensíveis a pequenas variações nos coeficientes. Porexemplo, se o coeficiente em x6 for alterado para -28.002, as raízesreais originais 5 e 6 são alteradas para as raízes complexas5.459± 0.540i.

Neste caso p(x) é uma função mal-condicionada.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 32: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Tipos (fontes) de erros. Erro absoluto e erro relativoCondicionamento e estabilidade

O número de condição, cond [·], é uma medida quantitativa docondicionamento de problemas numéricos.

cond =|erro relativo na solução||erro relativo nos dados|

=

∣∣∣∣∣∣∣∣f (x + ∆x)− f (x)

f (x)∆xx

∣∣∣∣∣∣∣∣

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 33: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Tipos (fontes) de erros. Erro absoluto e erro relativoCondicionamento e estabilidade

f (x + ∆x) = f (x) + f ′(x)∆x + . . .

f (x + ∆x)− f (x) = f ′(x)∆x + . . .

f (x + ∆x)− f (x)f (x)

=f ′(x)∆x

f (x)+ . . .

Para ∆x pequeno:

f (x + ∆x)− f (x)f (x)

≈ f ′(x)∆xf (x)

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 34: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Tipos (fontes) de erros. Erro absoluto e erro relativoCondicionamento e estabilidade

Então:

cond ≈

∣∣∣∣∣∣∣∣f ′(x)∆x

f (x)∆xx

∣∣∣∣∣∣∣∣ =∣∣∣∣x f ′(x)

f (x)

∣∣∣∣Definição

O número de condição de uma função f (x) é dado por

cond [f (x)] =∣∣∣∣x f ′(x)

f (x)

∣∣∣∣

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 35: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Tipos (fontes) de erros. Erro absoluto e erro relativoCondicionamento e estabilidade

Exemplo

Função tan(x) para argumentos próximos de π/2:

tan(1.57079) ≈ 1.58058× 105

tan(1.57078) ≈ 6.12490× 104

A variação relativa na solução é ≈ 9.6× 104 superior à variaçãorelativa nos dados (argumento).

cond [tan(x)] =∣∣∣∣x(1 + tan2(x))

tan(x)

∣∣∣∣cond [tan(1.57079)] ≈ 2.48275× 105

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 36: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Tipos (fontes) de erros. Erro absoluto e erro relativoCondicionamento e estabilidade

O bom ou mau condicionamento de um problema é umacaracterística que lhe é intrínseca, portando, independente dométodo adoptado na sua resolução.

A estabilidade de um algoritmo é um conceito usado para indicarque o efeito dos erros computacionais não são agravados pelopróprio algoritmo.

Um algoritmo é estável se o resultado a que conduz é relativamenteinsensível a perturbações nos dados (considerando um problemabem-condicionado).

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 37: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Tipos (fontes) de erros. Erro absoluto e erro relativoCondicionamento e estabilidade

x

x

fy

Figura: Ilustração de um algoritmo estável no cálculo de y = f (x): oresultado y é o resultado exacto para o dado ligeiramente perturbado x,y = f (x). Assim, se o algoritmo é estável e o problema bem condicionado, oresultado calculado y é próximo do exacto y.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 38: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Um sistema de numeração de base n é caracterizado pela utilizaçãode n dígitos diferentes.

Sistema decimal: d10 = {0, 1, 2, ..., 9}.

Sistema binário: d2 = {0, 1}.

Outros (octal, hexadecimal, ...).

O sistema binário é usado, quase invariavelmente, para representartodos os elementos de informação armazenados nos computadores.Voltaremos a este assunto.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 39: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Consideremos, por ora, o sistema decimal.

Qualquer número real pode ser representado de modo exactomediante uma sequência decimal infinita.

Exemplo

x =83

= 2.6666 . . . =(

2101 +

6102 +

6103 +

6104 +

6105 + . . .

)× 101

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 40: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Como veremos, a representação de números em computador éfisicamente limitada a um determinado número de dígitos.

Exemplo

A representação de x, por exemplo apenas com quatro dígitos poromissão dos restantes dígitos da representação infinita, será:

x =(

2101 +

6102 +

6103 +

6104

)= 0.2666× 101

(note-se que x é uma aproximação de x).

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 41: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Generalizando a metodologia exemplificada, podemos falar em tdígitos decimais e chamar a t precisão.

Para qualquer número real x podemos associar uma representaçãoem vírgula flutuante, denotada por fl(x):

fl(x) = ±0.d1d2 . . . dt−1dt × 10e

= ±(

d1

101 +d2

102 + . . . +dt−1

10t−1 +dt

10t + . . .)× 10e

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 42: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Exemplo (cont.)

Retomando o nosso exemplo, para

x =(

2101 +

6102 +

6103 +

6104

)= 0.2666× 101

tem-se t = 4 e e = 1.

Este exemplo serve também para mostrar que a representação não éúnica:

0.2666× 101 = 0.02666× 102 = 0.002666× 103 = . . .

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 43: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Para evitar ambiguidades na representação, esta é normalizada,impondo que d1 6= 0. Assim,

fl(x) = ±0.d1d2 . . . dt−1dt × 10e

em que1 6 d1 6 9, 0 6 di 6 9, i = 2, ..., t.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 44: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

A gama do expoente também é restringida na representação denúmeros em computador. Ou seja, existem inteiros U > 0 e L < 0 taisque todos os expoentes possíveis num dado sistema de representaçãoem vírgula flutuante satisfaz

L 6 e 6 U

O maior número representável de modo preciso em tal sistema é:

0.99 . . . 99× 10U / 10U

e o número positivo mais pequeno é

0.10 . . . 00× 10L = 10L−1

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 45: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Considere-se o número real

x = ±(0.d1d2d3 . . . dtdt+1dt+2 . . .)× 10e

Existem duas formas distintas de aproximar x tomando apenas tdígitos:

truncatura: ignorar os dígitos dt+1dt+2dt+3 . . .;arredondamento: adicionar 1 ao dígito dt se dt+1 > 10

2 = 5 edepois ignorar os dígitos dt+1dt+2dt+3 . . ..

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 46: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Exemplo

Truncatura e arredondamento de x, com t = 3:

Trunc. Arred.x x x

5.672 5.67 5.67-5.672 -5.67 -5.675.677 5.67 5.68

-5.677 -5.67 -5.68

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 47: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Recordar as expressões para os erros absoluto e relativoErro absoluto: Eabs = |fl(x)− x|

Erro relativo: Erel =|fl(x)− x|

|x|

Seja x 7−→ fl(x) = 0.f × 10e em que f é obtido como indicado atrás,por truncatura ou por arredondamento.

O erro absoluto cometido pela representação finita pode sermajorado, verificando-se que

Eabs 6

{10−t · 10e, no caso da truncatura12 10−t · 10e, no caso do arredondamento

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 48: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Para o erro relativo, basta atender a que, devido à normalização:

|x| >(

1101 +

0102 + . . . +

010t + . . .

)× 10e = 0.1× 10e

Então, no caso de aproximação por truncatura:

|fl(x)− x||x| 6

10−t · 10e

0.1× 10e = 101−t =: εm

No caso de aproximação por arredondamento, o erro relativo émetade daquele que se observa no caso da aproximação portruncatura, donde:

εm =12

101−t

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 49: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

εm =12

101−t

A quantidade εm é designada por precisão da máquina.

εm serve para quantificar a magnitude dos erros de arredondamentona representação de vírgula flutuante com precisão finita.

O simétrico do expoente, t− 1, corresponde, no caso da aproximaçãopor arredondamento, ao número de algarismos significativos.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 50: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Casas decimais correctas. Uma aproximação x de x tem k casasdecimais correctas se

|x− x| 6 0.5× 10−k.

Algarismos significativos correctos. Se

|x− x||x| 6 0.5× 10−k

então x é uma aproximação de x com k algarismos significativoscorrectos.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 51: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Assim, um algarismo significativo é correcto se o arredondamento donúmero aproximado depois desse dígito corresponder a um erroabsoluto inferior a 1/2 na posição daquele dígito.

Exemplo

|22/7− π| = 0.00126 . . . 6 0.5× 10−2, donde 22/7 = 3.14286 . . . éuma aproximação de π = 3.14159 . . . com 2 casas decimais correctas.

Também|22/7− π|

|π| = 4.025 . . .× 10−4 6 0.5× 10−3

donde a aproximação 22/7 possui 3 algarismos significativoscorrectos.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 52: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Geralmente, é impossível eliminar a acumulação de erros dearredondamento.

Seja Erel,n o erro relativo ao fim de uma operação n de um dadoalgoritmo, e sejam c0 e c1 constantes > 1. Então.

Erel,n = c0 n Erel,0 representa um crescimento linear;Erel,n = cn

1 Erel,0 representa um crescimento exponencial;

Interessa garantir que o crescimento dos erros seja não mais quelinear.

É necessário evitar um crescimento exponencial dos erros.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 53: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Potenciais problemas:se as magnitudes de x e y forem muito diferentes, o erro absolutoem x + y é grande;

se |y| � 1, os erros absoluto e relativo emxy

são grandes;

se |y| � 1, os erros absoluto e relativo em x y são grandes;se x ' y, o erro relativo em x− y é grande (cancelamentosubtractivo).

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 54: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Exemplo

Raízes deax2 + bx + c = 0

podem ser obtidas mediante:

x =−b±

√b2 − 4ac

2a

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 55: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Exemplo (cont.)

Sejax2 − 54.32x + 0.1 = 0

cujas raízes são (considerando doze casas decimais)

x1 = 54.318158995042, x2 = 0.001841004958.

Importa notar que

b2 = 2950.7 � 4ac = 0.4.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 56: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Exemplo (cont.)

Cálculo das raízes usando uma aritmética com quatro dígitos.√b2 − 4ac =

√(−54.32)2 − 0.4000

=√

2951− 0.4000

=√

2951

= 54.32

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 57: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Exemplo (cont.)

x1,4dig =−b +

√b2 − 4ac

2a

=+54.32 + 54.32

2.000

=108.62.000

= 54.30∣∣x1,4dig − x4∣∣

|x4|× 100 ' 0.0%

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 58: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Exemplo (cont.)

x2,4dig =−b−

√b2 − 4ac

2a

=+54.32− 54.32

2.000

=0.00002.000

= 0∣∣x2,4dig − x4∣∣

|x4|× 100 = 100%

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 59: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Exemplo (cont.)

A fraca aproximação obtida para a raiz x2,4dig é o resultado do erro de

arredondamento no cálculo de√

b2 − 4ac, em particular devido aocancelamento subtractivo.

É possível contornar o problema?

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 60: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Exemplo (cont.)

x1 =−b +

√b2 − 4ac

2a

(−b−

√b2 − 4ac

−b−√

b2 − 4ac

)

=2c

−b−√

b2 − 4ac

x2 =−b−

√b2 − 4ac

2a

(−b +

√b2 − 4ac

−b +√

b2 − 4ac

)

=2c

−b +√

b2 − 4ac

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 61: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Exemplo (cont.)

x2,4dig =2c

−b +√

b2 − 4ac

=0.2000

+54.32 + 54.32

=0.2000108.6

= 0.001842∣∣x2,4dig − x4∣∣

|x4|× 100 = 0.05%

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 62: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Exemplo (cont.)

x1,4dig =2c

−b−√

b2 − 4ac

=0.2000

+54.32− 54.32

=0.2000

0= ∞

A precisão limitada no cálculo de√

b2 + 4ac origina umcancelamento subtractivo fatal.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 63: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Exemplo (cont.)

O recurso a uma fórmula que tenha em consideração o sinal de b seráuma boa opção para prevenir o cancelamento subtractivo fatal.

X = −12

(b + sign(b)

√b2 − 4ac

)em que

sign(b) =

{1 se b > 0

−1 se b < 0

As raízes serão então:

x1 =Xa

, x2 =cX

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 64: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Como atrás se disse, um sistema de numeração de base n écaracterizado pela utilização de n dígitos diferentes.

Sistema decimal: d10 = {0, 1, 2, ..., 9}.

Sistema binário: d2 = {0, 1}.

Outros (octal, hexadecimal, ...).

O sistema binário é usado, quase invariavelmente, para representartodos os elementos de informação armazenados nos computadores.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 65: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

bit: (binary digit) quantidade elementar de informação quepode ser representada através de um dígito binário

byte (B): agrupamento de 8 bites consecutivos;1 byte (1 B) = 8 bits.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 66: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

1 kilobyte (kB) = 1 000bytes = 103 B1 megabyte (MB) = 1 000kilobytes = 106 B1 gigabyte (GB) = 1 000megabytes = 109 B

1 kibibyte (KiB) = 1 024 bytes = 210 bytes = 1 024 B1 mebibyte (MiB) = 1 024 kibibytes = 220 bytes = 1048 576 B1 gibibyte (GiB) = 1 024 mebibytes = 230 bytes = 1 073 741 824 B

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 67: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Tabela: Algumas correspondências entre as representações decimal ebinária.

base 10 base 2

1 0000 00012 0000 00104 0000 01008 0000 10009 0000 1001

10 0000 101027 0001 1011︸ ︷︷ ︸

um byte

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 68: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Exemplo

Converter {36}10 à base binária (e vice-versa).36 20 18 2

0 9 21 4 2

0 2 20 1

{36}10 = {100100}2

1× 25 + 0× 24 + 0× 23 + 1× 22 + 0× 21 + 0× 20 == 32 + 0 + 0 + 4 + 0 + 0 = 36

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 69: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Exemplo

Converter {0.3125}10 à base binária.

0.3125× 2 = 0 .62500.6250× 2 = 1 .25000.2500× 2 = 0 .50000.5000× 2 = 1 .0000

{0.3125}10 = {0.0101}2

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 70: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Exemplo

Converter {0.3}10 à base binária.

0.3× 2 = 0 .60.6× 2 = 1 .20.2× 2 = 0 .40.4× 2 = 0 .80.8× 2 = 1 .6

...

{0.3}10 = {0.01001 . . .}2

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 71: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Valores numéricos com partes fraccionais não nulas sãoarmazenados como números de vírgula flutuante.Um conjunto fixo de bits atribuído para armazenar cada número.O número total de bits divide-se em partes separadas paraarmazenar a mantissa e o expoente.Todos os valores de vírgula flutuante são representados atravésde notação científica normalizada:

fl(x) = ± 0.d1d2 . . . dt−1dt︸ ︷︷ ︸mantissa

×10e

em que1 6 d1 6 9, 0 6 di 6 9, i = 2, ..., t.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 72: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Precisão simples – 32 bits por número de vírgula flutuante.Precisão dupla – 64 bits por número de vírgula flutuante.

Precisão Mantissa (bits) Expoente (bits)

Simples 24 8Dupla 53 11

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 73: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Um número de vírgula flutuante com precisão dupla pode seresquematicamente representado por:

64 bits︷ ︸︸ ︷b︸︷︷︸

sinal

bbbbbbbbbbbbbbb . . . . . . bbb︸ ︷︷ ︸mantissa (52 bits)

bbbbbbbbbbb︸ ︷︷ ︸exp. e sinal (11 bits)

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 74: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Consequências:

O limite no número de bits atribuído à representação doexpoente implica a existência de um limite superior e de umlimite inferior na magnitude dos números de vírgula flutuante.O limite no número de bits atribuído à representação damantissa limita a precisão (número de algarismos significativos)de qualquer número de vírgula flutuante.A maioria dos números reais não pode ser armazenado de modoexacto.

Inteiros inferiores a 252 podem ser armazenados de modo exacto.Números com 15 dígitos decimais que seja a soma exacta depotências de (1/2) podem ser armazenados de modo exacto.

Pedro Nuno Simões Introdução ao Cálculo Numérico

Page 75: Computação Aplicada I - Introdução ao Cálculo Numérico

DEQFCTUC

IntroduçãoAlgoritmos numéricos e erros

Erros de arredondamento e aritmética computacional

Representação de vírgula flutuanteErros na representação de vírgula flutuanteAcumulação de erros e cancelamento subtractivoRepresentação de números em computador

Tabela: Comparação entre a recta dos números reais e a recta dos númerosde vírgula flutuante.

Reais Vírgula flutuante

Gama Infinita: existem números re-ais arbitrariamente grandes earbitrariamente pequenos.

Finita: o número de bits atri-buídos ao expoente limitama magnitude dos valores devírgula flutuante.

Precisão Infinita: existe um númeroinfinito de números reais en-tre quaisquer dois númerosreais.

Finita: existe um númerofinito de números de vír-gula flutuante entre quais-quer dois valores de vírgulaflutuante.

Pedro Nuno Simões Introdução ao Cálculo Numérico