Академический Документы
Профессиональный Документы
Культура Документы
rico
Notas em Ca
Volume ???, 2016
Editores
Adilandri M
ercio Lobeiro (Editor Chefe)
Universidade Tecnol
ogica Federal do Paran
a - UTFPR
Campo Mourao, PR, Brasil
e-ISSN ????-????
ii
Agradecimentos
Estas notas seguem de muito perto a bibliografia referenciada e que correspondem
aos livros textos deste Curso. Sugere-se a sua aquisicao. O u
nico objetivo destas
notas e facilitar as atividades dos alunos em sala de aula, pois nao precisarao anotar
conte
udos e enunciados de exerccios. De forma que o aluno tem um maior conforto
em sala de aula e o professor podera explicar os temas de forma mais r
apida. De
nenhuma maneira a leitura ou consulta da bibliografia est
a descartada, isto e dever
do aluno.
Monitoria
Atendimento
Horarios
???
???
???
???
P.ALuno
Atendimento
Horarios
Terca
17:30-19:30
Sala
D001
Provas
Eventos
Primeira Prova
Segunda Prova
Reavaliacao
CN3XB (ID4A)
26/09/16
28/11/16
05/12/16
EA34D(IF4A)
26/09/16
28/11/16
05/12/16
iv
Conte
udo
Pref
acio
vii
1 Introdu
c
ao
ix
2 An
alise de Arredondamento em Ponto Flutuante
2.1 Introducao . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2 Sistemas de N
umeros no Computador . . . . . . . . . . . . .
2.2.1 Representacao de um N
umero Inteiro . . . . . . . . .
2.2.2 Representacao de um n
umero real . . . . . . . . . . .
2.2.3 Mudanca de Base . . . . . . . . . . . . . . . . . . . . .
2.3 Representacao de N
umeros no Sistema F (, t, m, M ) . . . . .
2.3.1 Erro de Arredondamento e Aritmetica Computacional
2.3.2 Operacoes Aritmeticas em Ponto Flutuante . . . . . .
2.4 Usando o MATLAB para a resolucao de exerccios . . . . . .
2.4.1 Mudanca de Base . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
2
2
2
4
5
5
8
11
11
Pref
acio
vii
viii
Captulo 1
Introduc
ao
C
alculo Num
erico e a obtencao da solucao de um problema pela aplicacao de
metodo numerico; a solucao do problema sera caracterizada, ent
ao, por um conjunto
de n
umeros, exatos ou aproximados.
M
etodo Num
erico e um algoritmo composto por um n
umero finito de operacoes
envolvendo apenas n
umeros (operacoes aritmeticas elementares, calculo de funcoes,
consulta a uma tabela de valores, consulta a um gr
afico, arbitramento de um valor,
etc.).
A resolucao de tais problemas envolve v
arias fases que podem ser assim estruturadas:
Problema Real
ou Problema
Fsico
Levantamento de
Dados
Construcao do
Modelo
Matematico
Escolha do
Metodo
Numerico
Adequado
Analise dos
Resultados
Obtidos
Implementacao
Computacional
deste Metodo
Se Necessario
Reformular o Modelo
Matematico e/ou
Escolhe Novo Metodo
Numerico
Captulo 2
An
alise de Arredondamento
em Ponto Flutuante
2.1
Introduc
ao
Neste captulo [2], chamamos atencao para o fato de que o conjunto dos n
umeros represent
aveis em qualquer maquina e finito, e portanto discreto, ou seja nao e possvel
representar em uma maquina todos os n
umeros de um dado intervalo [a, b]. A implicacao imediata desse fato e que o resultado de uma simples operacao aritmetica
ou o calculo de uma funcao, realizadas com esses n
umeros, podem conter erros.
A menos que medidas apropriadas sejam tomadas, essas imprecis
oes causadas, por
exemplo,
1. por simplificacao no modelo matematico (algumas vezes necessarias para se
obter um modelo matematico sol
uvel);
2. erro de truncamento (troca de uma serie infinita por uma finita);
3. erro de arredondamento (devido a propria estrutura da maquina);
4. erro nos dados (dados imprecisos obtidos de experimentos, ou arredondados
na entrada); etc,
podem diminuir e algumas vezes destruir, a precis
ao dos resultados [?].
Exemplo 2.1. Calcular a
area do disco de raio 100 m utilizando:
a) = 3, 14;
b) = 3, 1416;
c) = 3, 141592654.
possvel obter exatamente
Como justificar as diferencas entre os resultados? E
esta
area?
Os erros ocorridos dependem da representaca
o dos n
umeros na m
aquina utilizada. A representaca
o de um n
umero depende da base escolhida ou disponvel na
m
aquina em uso e do n
umero m
aximo de dgitos usados na sua representaca
o.
O n
umero , por exemplo, n
ao pode ser representado atraves de um n
umero
finito de dgitos decimais. No exemplo mostrado acima, o n
umero foi escrito como
3, 14; 3, 1416 e 3, 141592654 respectivamente nos casos (a), (b) e (c). Em cada um
deles foi obtido um resultado diferente, e o erro neste caso depende exclusivamente
da aproximaca
o escolhida para . Qualquer que seja o disco, a sua
area nunca ser
a
obtida exatamente, uma vez que e um n
umero irracional.
Assim, nosso objetivo aqui sera o de alertar o leitor para os problemas que
possam surgir durante a resolucao de um problema, bem como dar subsdios para
evita-los e para uma melhor interpretacao dos resultados obtidos.
2.2
Sistemas de N
umeros no Computador
2.2.1
Representa
c
ao de um N
umero Inteiro
Em princpio, a representacao de um n
umero inteiro no computador nao apresenta
qualquer dificuldade. Qualquer computador trabalha internamente com uma base
fixa , onde e um inteiro 2; e e escolhido como uma potencia de 2.
Assim, dado um n
umero inteiro n 6= 0, ele possui uma u
nica representacao:
n = (nk nk+1 n1 n0 ) = (nk k + n(k1) (k1) + + n1 1 + n0 0 ),
onde os ni , i = 0, 1, , k s
ao inteiros satisfazendo 0 ni < e nk 6= 0.
Por exemplo, na base = 10, o n
umero 2015 e representado por
2315
2 103 + |{z}
3 102 + |{z}
1 101 + |{z}
5 100 ,
|{z}
n3
n2
n1
n0
e e armazenado como n3 n2 n1 n0 .
2.2.2
Representa
c
ao de um n
umero real
A representacao de um n
umero real no computador pode ser feita de duas maneiras
[4]:
a) Representa
c
ao em Ponto Fixo: Este foi o sistema usado, no passado, por
muitos computadores. Assim, dado um n
umero real, x 6= 0, ele sera representado em ponto fixo por:
n
X
xi i ,
x=
i=k
onde k e n s
ao inteiros satisfazendo k < n e, usualmente, k 0 e n > 0 e os
xi s
ao inteiros satisfazendo 0 xi < .
Por exemplo, na base = 10, o n
umero 1997, 16 e representado por:
1997, 16
=
=
1 103 + |{z}
9 102 + |{z}
9 101 + |{z}
7 100 + |{z}
1 101 + |{z}
6 102
|{z}
x3
2
P
x2
x1
x0
xi i ,
i=3
x1
x2
Introducao
b) Representa
c
ao em Ponto Flutuante: Esta representacao, que e mais flexvel
que a representacao em ponto fixo, e universalmente utilizada nos dias atuais.
Dado um n
umero real, x 6= 0, este sera representado em ponto flutuante1 por:
x = d e ,
onde e a base do sistema de numeracao, d e a mantissa e e e o expoente. A
mantissa e um n
umero em ponto fixo, isto e:
d=
n
X
di i ,
i=k
2.2.3
Mudan
ca de Base
Introducao
2.3
Representac
ao de N
umeros no Sistema F (, t, m, M )
Sabemos que os n
umeros reais podem ser representados por uma reta contnua.
Entretanto, em ponto flutuante podemos representar apenas pontos discretos na
reta real. Para ilustrar este fato consideremos o seguinte exemplo.
Exemplo 2.7. Quantos e quais n
umeros podem ser representados no sistema F (2, 3, 1, 2)?
Exemplo 2.8. Considerando o mesmo sistema do Exemplo 2.7, represente os
n
umeros: x1 = 0, 38, x2 = 5, 3 e x3 = 0, 15 dados na base 10 2 .
Exerccio 2.6. Considere o sistema F (3, 3, 2, 1).
a) Quantos e quais n
umeros podemos representar neste sistema?
b) Represente no sistema os n
umeros: x1 = (0, 40)10 , x2 = (2, 8)10 .
Exerccio 2.7. Considere o sistema F (2, 5, 3, 1).
a) Quantos e quais n
umeros podemos representar neste sistema?
b) Qual o maior n
umero na base 10 que podemos representar neste sistema (sem
fazer arredondamento)?
2.3.1
0, d1 d2 dt 10n
Introducao
0, d1 d2 dt 10n .
0, 1 2 t 10n .
|p p |
ERp
|pp |
|p|
admitindo-se que p 6= 0.
Exemplo 2.11. Suponhamos que voce tenha a tarefa de medir os comprimentos
de uma ponte e de um rebite e que conseguiu 9999 e 9 cm, respectivamente. Se os
valores verdadeiros forem 10000 e 10 cm, respectivamente, calcule:
1. o Erro Absoluto;
2. o Erro Relativo.
Defini
c
ao 2.3 (Dgitos Significativos). O n
umero p e dito pr
oximo de p, t dgitos
significativos, se t for o maior inteiro n
ao negativo para o qual [5]
|pp |
|p|
< 0, 5 10t .
2.3.2
Operac
oes Aritm
eticas em Ponto Flutuante
Considere uma maquina qualquer e uma serie de operacoes aritmeticas. Pelo fato
do arredondamento ser feito apos cada operacao temos, ao contrario do que e v
alido
para n
umeros reais, que as operacoes aritmeticas (adicao, subtracao, divisao e multiplicacao) nao s
ao nem associativas e nem distributivas. Ilustraremos esse fato
atraves de exemplos [?].
Exemplo 2.13. Efetue as operaco
es abaixo fazendo arredondamento de tres dgitos
em ponto flutuante ap
os cada operaca
o.
1. (11, 4 + 3, 18) + 5, 05 e 11, 4 + (3, 18 + 5, 05);
3,18
e 5,05
2. 3,1811,4
11, 4;
5,05
3. 3, 18 (5, 05 + 11, 4) e 3, 18 5, 05 + 3, 18 11, 4.
Exemplo 2.14. Considerando o Sistema F (10, 3, 10, 10), some 1/3 dez vezes consecutivas usando arredondamento.
Exemplo 2.15. Seja P (x) = x3 3x2 + 3x 1 e Q(x) = ((x 3)x + 3)x 1. Com
base no F (10, 3, 10, 10) calcule P (2, 19) e Q(2, 19). Compare os resultados com o
valor verdadeiro, P (2, 19) = Q(2, 19) = 1, 685159, calculando o erro absoluto.
Observando os tres u
ltimos exemplos, vemos que erros consideraveis podem
ocorrer durante a execucao de um algoritmo. Isso se deve ao fato de que existem
limitacoes da maquina e tambem que os erros de arredondamento s
ao introduzidos
a cada operacao efetuada. Em consequencia, podemos obter resultados diferentes
mesmo utilizando metodos numericos matematicamente equivalentes.
Assim, devemos ser capazes de conseguir desenvolver um algoritmo tal que os
efeitos da aritmetica discreta do computador permaneca inofensivo quando um
grande n
umero de operacoes s
ao executadas [?].
Cancelamento
O cancelamento ocorre na subtracao de dois n
umeros quase iguais. Vamos supor
que estamos operando com aritmetica de ponto flutuante. Sejam x e y dois n
umeros
com expoente e. Quando formamos a diferenca x y ela tambem ter
a o expoente e.
Se normalizarmos o n
umero obtido, veremos que devemos mover os dgitos para a
esquerda de tal forma que o primeiro seja diferente de zero. Assim, uma quantidade
de dgitos iguais a zero aparecem no final da mantissa do n
umero normalizado.
Estes zeros nao possuem significado algum. Veremos este fato atraves de exemplos.
Exemplo 2.16. Compare osresultadosdos c
alculos f (9875)
e g(9875)
utilizando o
b+ b2 4ac
2a
x2 =
b b2 4ac
.
2a
(2.3.1)
x1 x2 = c/a.
(2.3.2)
Introducao
10
4,577
4,577
4,577 .
Exerccio 2.17. Seja P (x) = 2, 3x3 0, 6x2 + 1, 8x 2, 2. Deseja-se obter o valor
de P (x) para x = 1, 61.
1. Calcule P (1, 61) com todos os algarismos da sua calculadora, sem efetuar
arredondamento.
2. Calcule P (1, 61) considerando o sistema F (10, 3, 4, 3). Faca arredondamento
a cada operaca
o efetuada.
Exerccio 2.18. Seja P (x) = x3 6, 1x2 + 3, 2x + 1, 5 e Q(x) = ((x 6, 1)x +
3, 2)x + 1, 5. Com base no F (10, 3, 10, 10) calcule P (4, 71) e Q(4, 71). Compare os
resultados com o valor verdadeiro, P (4, 71) = Q(4, 71) = 14, 263899, calculando o
erro absoluto.
Exerccio 2.19. Efetue as operaco
es indicadas, utilizando aritmetica de ponto flutuante com tres algarismos significativos.
a) (19, 3 1, 07) 10, 3 e 19, 3 (1, 07 + 10, 3);
b) 27, 2 1, 3 327, 0 0, 00251;
c)
10, 1 3, 1 8, 2
;
14, 1 + 7, 09 3, 22
10
X
2
k2
k=1
0, 5971 103
;
0, 4268 101
11
Introducao
d) (0, 5971 103 ) (0, 4268 100 ).
Exerccio 2.22. considere o sistema F (3, 3, 2, 2). Dizer quais das seguintes afirmaco
es
s
ao verdadeiras. Para as que forem falsas, dizer como seria o correto.
a) No sistema dado, podemos representar 181 n
umeros.
b) A representaca
o de (0, 342)10 no sistem dado e 0, 101 30 .
c) A representaca
o (15, 342)10 no sistema dado e 0, 102 33 .
d) O maior n
umero positivo deste sistema e 0, 111 102 .
e) O menor n
umero positivo do sistema e 0, 100 32 .
f ) O n
umero (38)10 n
ao pode ser representado no sistem dado.
Exerccio 2.23. Calcule
701
700
2.4
2.4.1
x2 = 62, 08390 .
12
Comando: dec2bin(d)
Este comando e utilizado para realizar a mudanca de um n
umero d na base 10 para
a base 2. Para us
a-lo basta digitar o comando na Command Window do software
colocando o n
umero o qual deseja-se mudar de base entre parenteses.
Exemplo 2.18. Representar o n
umero 23 na base 10, na base 2:
13
Introducao
100
P
0, 1 e
i=1
100
P
i=1
14
Bibliografia
[1] BARROSO, L. C. C
alculo Numerico (com aplicaco
es). Sao Paulo: Harbra Editora Ltda, 1987.
[2] BURDEN, R.; FAIRES, J. An
alise Numerica. 3. ed. Sao Paulo: Pioneira Thomson Learning, 2003.
[3] CHAPRA, S. C.; CANALE, R. P. Metodos Numericos para Engenharia. Sao
Paulo: Mc Graw Hill, 2008.
[4] FRANCO, N. B. C
alculo Numerico. Sao Paulo: Pearson Prentice Hall, 2006.
[5] MATHEWS, J. H.; FINK, K. D. Numerical Methods Using MatLab. 1. ed. Borre:
Prentice Hall Upper Saddle Biver NJ 07458, 1999.
[6] RUGGIERO, M. A. G.; LOPES, V. L. R. C
alculo numerico: aspectos te
oricos e
computacionais. Sao Paulo: Makron Books, 1997.
15