cálculo numérico aplicado -...

35
Cálculo Numérico Conceitos Básicos Prof. Jorge Cavalcanti – [email protected] www.univasf.edu.br/~jorge.cavalcanti - www.twitter.com/jorgecav MATERIAL ADAPTADO DOS SLIDES DA DISCIPLINA CÁLCULO NUMÉRICO DA UFCG - www.dsc.ufcg.edu.br/~cnum/ 1

Upload: dangkhanh

Post on 03-Dec-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Cálculo Numérico

Conceitos Básicos

Prof. Jorge Cavalcanti – [email protected]

www.univasf.edu.br/~jorge.cavalcanti -www.twitter.com/jorgecav

MATERIAL ADAPTADO DOS SLIDES DA DISCIPLINA CÁLCULO NUMÉRICO DA UFCG - www.dsc.ufcg.edu.br/~cnum/

1

Princípios usados em CN

2

Fluxograma – Solução Numérica

PROBLEMAMODELO

MATEMÁTICOSOLUÇÃO

modelagem resolução

PROBLEMA

ESCOLHA DO MÉTODO

NUMÉRICO

IMPLEMENTAÇÃO COMPUTACIONAL

CONSTRUÇÃO DO MODELO

MATEMÁTICO

LEVANTAMENTO DE DADOS

ANÁLISE DOS RESULTADOS

VERIFICAÇÃO

Princípios usados em CN

Comuns à análise matemática:

1. Iteração ou aproximação sucessiva Partindo-se de solução aproximada, inicial,

repetem-se mesmas ações/processos para refinar solução inicial

OBS: para evitar trabalho sem fim (e de graça), deve-se determinar se a iteração converge (nem sempre é o caso...) e condições de parada

3

Princípios usados em CN

2. Discretização Na resolução de problemas contínuos

devemos discretizar o problema.

Ex: ~ Σ... dxex2

4

Princípios usados em CN

3. Aproximação Substituir uma função ou modelo por outro

que ofereça comportamento (de interesse)

semelhante, mais simples de manipular

f(x) g(x)

Ex: assíntotas ilustram comportamento “no limite”

de uma função (complexa) de interesse

5

Princípios usados em CN

4. Transformação

Dado um problema P, desmembra-se P

em dois problemas mais simples de

resolver, P1 e P2

Área de um trapézio por retângulo (P1) e

triângulos (P2)

6

Princípios usados em CN

5. Divisão e Conquista

Resolver um problema P, por partes ou

etapas

Exemplo anterior (área do trapézio)

Aulas nesta disciplina de CN

7

Sistemas de numeração

Representação posicional

Base decimal (10)

10 dígitos disponíveis [0,1,2, ... ,9]

“Posição” indica potência positiva de 10

5432 = 5x103 + 4x102 + 3x101 + 2x100

N=anbn+an-1b

n-1+an-2bn-2+...+a0b

0+a-1b-1+... +a-mb-m

N é um dado numero na base b e an, an-1 etc

representam os coeficientes que multiplicam as

potências de b.

8

Sistemas de numeração

Representação de inteiros

Base binária (2)

2 “bits” disponíveis [0,1]

“Posição” indica potência positiva de 2

11011 na base 2 = 1x24 +1x23 + 0x22 + 1x21 +

1x20 = 16 +8+0+2+1 = 27 na base decimal

9

Sistemas de numeração

Representação de números fracionários

Base decimal (10)

“Posição” da parte inteira indica potência positiva

de 10

Potência negativa de 10 para parte fracionária

54,32 = 5x101 + 4x100 + 3x10-1 + 2x10-2

10

Sistemas de numeração

Representação de números fracionários

Base binária (2)

“Posição” da parte inteira indica potência positiva

de 2

Potência negativa de 2 para parte fracionária

10,11 na base 2 = 1x21 + 0x20 + 1x2-1 + 1x2-2 =

2+0+1/2+1/4 = 2,75 na base decimal

11

Outros sistemas de numeração

Maior interesse em decimal (10)

Nossa anatomia e cultura

e binário (2)

Uso nos computadores

Outros sistemas

Octal (8), {0,1,2, ... , 7}

Hexadecimal (16), {0,1,2, ... , 9, A,B,C,D,E,F}

Dodecimal (relógio, calendário)

12

Alguns sistemas numéricos

Decimal Binário Octal Hexadecimal

0 0 0 0

1 1 1 1

2 10 2 2

3 11 3 3

4 100 4 4

5 101 5 5

6 110 6 6

7 111 7 7

8 1000 10 8

9 1001 11 9

10 1010 12 A

11 1011 13 B

12 1100 14 C

13 1101 15 D

14 1110 16 E

15 1111 17 F

13

Conversão de Inteiros

Binário para decimal

Já visto

11011 na base 2 = 1x24 +1x23 + 0x22 + 1x21 + 1x20 = 16

+8+0+2+1 = 27 na base decimal

Inteiro decimal para binário

Divisão inteira (do quociente) sucessiva por 2, até que

resto seja = 0 ou 1

Binário = composição do último quociente (Bit Mais

Significativo – MSB) com restos (primeiro resto é bit

menos significativo – LSB)

Em inglês, Most Significant Bit – MSB e least significat bit – LSB, respectivamente.

14

Conversão de inteiro Exemplo: Converter 25 decimal para binário

25 / 2 = 12 (quociente) e resto 1= LSB

12 / 2 = 6 (quociente) e resto 0

6 / 2 = 3 (quociente) e resto 0

3 / 2 = 1 (último quociente=MSB) e resto 1

Binário = MSB ... LSB = 1 1 0 0 1= 1x24 + 1x24 + 0x22 + 0x21 + 1x20

= 16 + 8 + 0 + 0 + 1 = 25 decimal

15

Conversão de Inteiros entre Sistemas

Procedimentos básicos: - divisão

- polinômio

- agrupamento de bits

16

BINÁRIO

HEXADECIMAL OCTALDECIMAL

DIVPO

LI

DIV

POLI POLI

DIV

Conversão (Inteiros) entre

sistemas

17

Sentido

da leitura

125 2

62 2

1 31 2

0 15 2

1 7 2

1 3 2

111

12510 = 11111012

O resto 15 érepresentado pelaletra F

Sentido

da leitura

53810 = 21F16

543 16

33 16

151

2

Conversão (Inteiros) entre sistemas

a) (1011110010100111)2 = ( ? )16 b) (A79E)16 = ( ? )2

18

Conversão (Inteiros) entre sistemas

Conversão octal hexadecimal

Não é realizada diretamente não há relação depotências entre as bases oito e dezesseis.

Semelhante à conversão entre duas basesquaisquer base intermediária (base binária)

Conversão em duas etapas:

1 - número: base octal (hexadecimal) binária.

2 - resultado intermediário: binária hexadecimal (octal).

Conversão de fração

Operação inversa: multiplicar parte

fracionária por 2 até que parte fracionária

do resultado seja 0 (zero)

Bits da parte fracionária derivados das

partes inteiras das multiplicações

Bit imediatamente à direita da vírgula =

Parte inteira da primeira multiplicação

20

Conversão de fração

Exemplo: converter 0,625 decimal para binário

0,625 x 2 = 1,25 logo a primeira casa fracionária é

1 ; nova fração (resto) é 0,25 (1,25-1=0,25)

0,25 x 2 = 0,5 segunda casa é 0 ; resto é 0,5

0,5 x 2 = 1,0 terceira casa é 1 ; resto é zero.

Resultado: 0,62510 = 0,1012

21

Conversão partes

inteira,fracionária juntas

Para converter um número com parte

inteira e parte fracionária, fazer a

conversão de cada parte, separadamente.

22

mm

22

11

00

2n2n

1n1n

nn ba...bababa...bababa

Parte Inteira Parte Fracionária

Conversão partes

inteira,fracionária juntas

(8,375)10 = ( ? )2

23

Exercícios

Mostre que:

5,8 = 101,11001100... , é uma dízima.

11,6 = 1011,10011001100...

a vírgula foi deslocada uma casa para a direita,

pois 11,6 = 2 x 5,8 .

24

Representação em ponto

(vírgula) flutuante - float

Representação pode variar (“flutuar”) a

posição da vírgula, ajustando potência da

base.

54,32 = 54,32 x 100 = 5,432 x 101 = 0,5432 x

102 = 5432,0 x 10-2

Forma normalizada usa um único dígito antes

da vírgula, diferente de zero

Exemplo: 5,432 x 101

25

Representação em ponto

(vírgula) flutuante - float No sistema binário:

110101 = 110,101x23 = 1,10101x25 = 0,0110101x27

No caso dos números serem armazenados em um computador, os expoentes serão também gravados na base dois Como 310 = 112 e 7=1112

110,101 x (2)11 = 1,10101x(2)101 = 0,0110101x(2)111

Na representação normalizada, há apenas um “1” antes da vírgula Exemplo: 1,10101x(2)101

26

Representação em ponto

(vírgula) flutuante - float Algumas definições

No número 1,10101x(2)101 , tomado como referência: 1,10101 = significando (ou “mantissa”)

101 = expoente

OBS: a base binária não precisa ser explicitada (o

computador usa sempre esta)

O “1” antes da vírgula, na representação normalizada – se esta for adotada, também pode ficar implícito, economizando um bit (“bit escondido”).

27

Representação em ponto

(vírgula) flutuante - float

Representação genérica

Uma máquina representa um número real no sistema

de aritmética de ponto flutuante, na forma:

±(.d1d2...dt ) x (b)exp ,

t é o número de dígitos da mantissa

d1d2...dt = mantissa, com 0 di (b-1), d1≠ 0.

b = base

exp = expoente (inteiro com sinal)

28

Representação em ponto

(vírgula) flutuante - float

Representação genérica

Considere uma máquina que opera no sistema:

±(.d1d2...dt ) x (b)exp , onde:

t = 3

b = 10

exp [-5, 5]

1. Como os números serão representados nesse sistema?

2. Qual o menor (m) e o maior número (M), em valor absoluto,

que pode ser representado nesta máquina?

29

Padrão IEEE para floats

O padrão IEEE 754 para ponto (vírgula)

flutuante é a representação mais comum

para números reais em computadores de

hoje, incluindo PC's compatíveis com Intel,

Macintosh, e a maioria das plataformas

Unix/Linux.

30

Padrão IEEE para floats

O padrão (ou norma) IEEE 754 define dois

formatos básicos para os números em

ponto flutuante:

o formato ou precisão simples, com 32 bits; e,

o duplo com 64 bits.

31

Padrão IEEE 754 para floatsSinal Expoente(+/-) Mantissa

Simples (32bits) 1 [bit31] 8 [bits30-23] 23 [bits22-00]

Dupla (64 bits) 1 [bit63] 11 [bits62-52] 52 [bits51-00]

Sinal: 0 = + e 1 = -

Combinações: Sinal + Expoente + Mantissa

32

Erro na representação de floats

Casos especiais: Overflow: número a representar é maior que o maior

número possível de ser representado.

Underflow: número a representar é menor que o menor número possível de ser representado.

Menor Nº que pode ser expresso (DP):

Maior Nº que pode ser expresso (DP):

33

Aritmética com floats

Conhecidos os erros em dois números, é

possível determinar o erro de uma

operação entre eles, como adição,

subtração, multiplicação e divisão.

Erro depende de método / procedimentos

empregados.

34

Aritmética com floats

Padrão IEEE 754 define algoritmo para

adição, subtração, multiplicação, divisão e

raiz quadrada e exige que implementações

produzam o(s) mesmo(s) resultado(s).

Igualdade dos bits (resultados) em várias

processadores.

Transportabilidade de software.

35