Вы находитесь на странице: 1из 25

lculo Nume

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

Figura 1.1: Modelo


Modelagem e a fase de obtencao do modelo matematico que descreve o comportamento do sistema fsico.
Resolu
c
ao e a fase de obtencao da solucao atraves da aplicacao de metodos
numericos (este e o objetivo de estudo do Calculo Numerico).
Posteriormente, estudaremos os erros que surgem da representacao de n
umeros
num computador e os erros resultantes das operacoes numericas efetuadas.
Campo Mourao, 08 de agosto de 2015.
Prof. Dr. Adilandri Mercio Lobeiro
ix

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

Analisde de Arredondamento em Ponto Flutuante

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

Inicialmente, descreveremos como os n


umeros s
ao representados num 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

e e armazenado como x3 x2 x1 x0 , x1 x2 onde = 10.

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

onde, frequentemente, nos grandes computadores, k = 1, tal que se x 6= 0,


ent
ao d1 6= 0; 0 di < , i = 1, 2, t, com t a quantidade de dgitos
significativos ou precis
ao do sistema, 1 d < 1 e m e M .
Observacoes:
1. d1 6= 0 caracteriza o sistema de n
umeros em ponto flutuante normalizado.
2. o n
umero zero pertence a qualquer sistema e e representado com mantissa
igual a zero e e = m.
Exemplo 2.2. Escrever os n
umeros abaixo, onde todos est
ao na base = 10, em
ponto flutuante na forma normalizada.
1. x1 = 5, 172;
2. x2 = 0, 35;
3. x3 = 0, 0123;
4. x4 = 5391, 3;
5. x5 = 0, 0003.
Agora, para representarmos um sistema de n
umeros em ponto flutuante normalizado, na base , com t dgitos significativos e com limites do expoente m e M ,
usaremos a notacao: F (, t, m, M ).
Assim um n
umero em F (, t, m, M ) sera representado por:
0, d1 d2 dt e ,
onde d1 6= 0 e m e M .
Exemplo 2.3. Considere o sistema F (10, 3, 2, 2). Represente nesse sistema os
n
umeros do Exemplo 2.2.
Podemos ent
ao definir formalmente dgitos significativos de um n
umero.
Defini
c
ao 2.1 (Dgitos Significativos). Seja a base do sistema de n
umeros em
ponto flutuante. Dgitos significativos de um n
umero x, s
ao todos os algarismos de
0 a 1, desde que x esteja representado na forma normalizada.
1 Ponto flutuante(do ingl
es flouting poit) ou vrgula flutuante
e um formato de representac
ao
digital de n
umeros reais, que
e usado nos computadores.

Analisde de Arredondamento em Ponto Flutuante

Para exemplificar as limitacoes da maquina, consideremos agora o seguinte exemplo.


Exemplo 2.4. Seja f (x) uma funca
o contnua real definida no intervalo [a, b],
a < b, e sejam f (a) < 0 e f (b) > 0. Ent
ao de acordo com o teorema do valor
intermedi
ario, existe x, a < x < b tal que f (x) = 0. Dada f (x) = x3 3, determinar
x tal que f (x) = 0, para isso utilize uma m
aquina e considere F (10, 10, 10, 10).
Exerccio 2.1. Considere o sistema F (10, 4, 4, 4). Represente neste sistema os
n
umeros:
1. x1 = 4321, 24;
2. x2 = 0, 0013523;
3. x3 = 125, 64;
4. x4 = 57481, 23;
5. x5 = 0, 00034.
Exerccio 2.2. Represente no sistema F (10, 3, 1, 3) os n
umeros do Exerccio 2.1.

2.2.3

Mudan
ca de Base

Como ja dissemos anteriormente, a maioria dos computadores trabalham na base


onde e um inteiro 2; e e normalmente escolhido como uma potencia de 2.
Assim um mesmo n
umero pode ser representado em mais de uma base. Alem disso,
sabemos que, atraves de uma mudan
ca de base, e sempre possvel determinar a
representacao em uma nova base. Veremos ent
ao, atraves de exemplos, como se faz
mudanca de base.
Exemplo 2.5. Mudar a representaca
o dos n
umeros:
a) 1101 da base 2, para a base 10. Neste caso, o procedimento e multiplicar cada
algarismo do n
umero na base 2 por potencias crescentes de 2, da direita para
a esquerda, e somar todas as parcelas.
b) 0, 110 da base 2, para a base 10. Neste caso, o procedimento e multiplicar cada
algarismo do n
umero na base 2, ap
os a vrgula, por potencias decrescentes de
2, da esquerda para a direita, e somar todas as parcelas.
c) 13 da base 10, para a base 2. Neste caso, o procedimento e dividir o n
umero por
2. A seguir, continuar dividindo o quociente por 2, ate que o u
ltimo quociente
seja igual a 1. O n
umero na base 2 ser
a ent
ao obtido tomando-se o u
ltimo
quociente e todos os restos ds divis
oes anteriores.
d) 0, 75 da base 10, para a base 2. Neste caso, o procedimento e multiplicar a parte
decimal por 2. A seguir continuar multiplicando a parte decimal do resultado
obtido por 2. O n
umero na base 2 ser
a ent
ao obtido tomando-se a parte inteira
do resultado de cada multiplicaca
o.
e) 3, 8 da base 10, para a base 2. Neste caso, o procedimento e transformar a parte
inteira seguindo o item c e a parte decimal seguindo o item d.

Introducao

No exemplo 2.5, mudamos a representacao de n


umeros na base 10 para a base
2 e vice-versa. O mesmo procedimento pode ser utilizado para mudar da base 10
para uma outra base qualquer e vice-versa. A pergunta que surge naturalmente e:
qual o procedimento para representar um n
umero que est
a numa dada base 1 em
uma outra base 2 , onde 1 6= 2 6= 10? Nesse caso, devemos seguir o seguinte
procedimento: inicialmente, representamos o n
umero que est
a na base 1 , na base
10 e, a seguir, o n
umero obtido na base 10, na base 2 .
Exemplo 2.6. Dado o n
umero 12, 20 que est
a na base 4, represent
a-lo na base 3.
Exerccio 2.3. Considere os seguintes n
umeros: x1 = 34, x2 = 0, 125 e x3 =
33, 023 que est
ao na base 10. Escreva-os na base 2.
Exerccio 2.4. Considere os seguintes n
umeros: x1 = 110111, x2 = 0, 01011 e
x3 = 11, 0101 que est
ao na base 2. Escreva-os na base 10.
Exerccio 2.5. Considere os seguintes n
umeros: x1 = 33, x2 = 0, 132 e x3 =
32, 013 que est
ao na base 4. Escreva-os na base 5.

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

Erro de Arredondamento e Aritm


etica Computacional

A aritmetica utilizada por uma calculadora ou por um computador e diferente


daquela empregada nos cursos de algebra e de calculo. Por
exemplo, consideramos
como verdadeiras afirmacoes como 2 + 2 = 4, 4 4 = 16, ( 3)2 = 3. Ja na aritmetica
computacional padrao, as duas primeiras assertivas s
ao verdadeiras, mas a terceira
nem sempre e! Por que? [1]
Um erro de arredondamento e produzido quando uma calculadora ou um computador e utilizado para realizar calculo com n
umeros reais. O erro ocorre porque
2 Observe que apenas o primeiro n
umero pode ser representado no sistema, pois para o segundo
teremos overflow e, para o terceiro, underflow.

Analisde de Arredondamento em Ponto Flutuante

a aritmetica utilizada pela maquina utiliza apenas n


umeros com um n
umero finito
de dgitos, o que faz como que os calculos sejam executados com valores aproximados dos n
umeros verdadeiros envolvidos. Em um computador tpico, apenas um
subconjunto relativamente pequeno do campo dos n
umeros reais e utilizado para a
representacao de todos os n
umeros reais. Esse subconjunto contem apenas n
umeros
racionais, tanto positivos como negativos, e armazena a porcao fracionaria juntamente com uma porcao exponencial [2].
Em 1985, o IEEE (Institute for Eletrical and Electronic Engineers) publicou um
relatorio intitulado Binary Floating Point Arithmetic Standard 754-1985 (Normas
para ponto flutuante bin
ario 754-1985). Foram especificados formatos para precis
ao
simples, dupla e expandida, e essas normas s
ao geralmente seguidas por todos fabricantes de microcomputadores que se utilizam de hardware para ponto flutuante.
Por exemplo, o co-processador numerico dos PCs utiliza uma representacao de 64
bits (dgitos bin
arios) para um n
umero real, chamada de real extenso. O primeiro
bit e um indicador de sinal, designado por s. Esse dgito e seguido por uma parte
exponencial c de 11 bits, chamada caracterstica, e uma parte fracionaria d de 52
bits bin
arios denominada mantissa. A base para o expoente e 2.
Temos que 52 dgitos bin
arios correspondem a algo entre 16 e 17 dgitos decimais,
desta forma pode-se assumir que um n
umero representado nesse sistema tem uma
precis
ao de pelo menos 16 dgitos decimais. A parte decimal de 11 dgitos bin
arios
oferece um campo de valores de 0 a 211 1 = 2047. Entretanto, a utilizacao de
apenas n
umeros inteiros positivos para o expoente nao permite uma representacao
adequada de n
umeros de pequena magnitude. Para que n
umeros com pequena
magnitude possam ser igualmente represent
aveis, o valor 1023 e subtrado do valor
da caracterstica, de modo que a parte exponencial vai, na verdade, de -1023 e 1024
[2].
Para economizar espaco de armazenamento e fornecer uma representacao u
nica
para cada n
umero com ponto flutuante, torna-se necessario uma normalizacao. A
utilizacao desse sistema da uma n
umero com ponto flutuante da forma [6]
(1)s 2c1023 (1 + f ) .
Exemplo 2.9. Dado o n
umero de m
aquina
0 10000000011 1011100100010000000000000000000000000000000000000000
escreva ele na forma decimal. Encontre o n
umero imediatamente inferior em linguagem da m
aquina e o n
umero imediatamente superior.
O uso de dgitos bin
arios tende a tornar menos evidente as dificuldades de computacao que aparecem quando um conjunto finito de n
umeros em linguagem de
maquina e utilizado para representar todos os n
umeros reais. Para examinar esses
problemas, assumiremos como hip
otese simplificadora que os n
umeros em linguagem
de maquina s
ao representados na forma normalizada de ponto flutuante decimal [3]
y

0, d1 d2 dt 10n

onde 1 d1 9 e 0 di 9 para cada i = 2, 3, , t. N


umeros nessa forma s
ao
chamados de n
umeros de maquina decimais de t dgitos.
Qualquer n
umero real positivo dentro do campo de variacao numerica das maquinas
pode ser normalizado na notacao
y

0, d1 d2 dt dt+1 dt+2 10n .

Introducao

O formato de ponto flutuante de y e obtido limitando-se a mantissa de y em t dgitos


decimais. Existem duas maneiras de se obter essa limitacao. Um metodo, chamado de truncamento, consiste em simplesmente cortar os dgitos dt+1 , dt+2 , ,
obtendo-se
y

0, d1 d2 dt 10n .

O outro metodo, chamado de arredondamento, adiciona 510n(t+1) a y e trunca


o resultado para se obter um n
umero no formato
y

0, 1 2 t 10n .

Assim sendo, quando fazemos o arredondamento se dt+1 5, adicionamos 1 a dt


para obter y, isto e, arredondamos para cima (ou seja, para mais). Quando dt+1 < 5,
smplesmente cortamos fora todos os dgitos seguintes aos t primeiros algarismos,
portanto arredondamos para baixo. Se arredondamos para baixo, ent
ao i = di
para i = 1, 2, , t. Entretanto, se arredondamos para cima, os algarismos podem
mudar.
Exemplo 2.10. Escreva o valor do n
umero = 3, 14159265 em notaca
o de
ponto flutuante com cinco dgitos, utilizando-se do metodo de corte e do metodo de
arredondamento.
O erro resultante da substituicao do n
umero real por sua notacao em ponto flutuante e chamado de erro de arredondamento (a respeito de qual seja o metodo
utilizado, de truncamento ou de arredondamento). A definicao a seguir descreve
dois metodos para se medir os erros de aproximacao [2].
Defini
c
ao 2.2 (Erro). Se p e uma aproximaca
o para p, o Erro Absoluto (EAp )
e
EAp

|p p |

ERp

|pp |
|p|

e o Erro Relativo (ERp ) e


,

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 .

Exemplo 2.12. Determine o Erro Absoluto (EAp ), o Erro Relativo (ERp ) e o


n
umero de dgitos significativos nas aproximaco
es:
1. p = 3, 141592 e p = 3.14;
2. p = 1000000 e p = 999996;
3. p = 0, 000012 e p = 0, 000009;

Analisde de Arredondamento em Ponto Flutuante

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

F(10,10,10,10) onde f (x) = x + 1 x e g(x) = 1/( x + 1 + x). Onde obtem


melhor aproximaca
o?
Exemplo 2.17. A f
ormula quadr
atica afirma que as razes de ax2 + bx + c = 0,
quando a 6= 0, s
ao
x1 =

b+ b2 4ac
2a

x2 =

b b2 4ac
.
2a

(2.3.1)

Tambem, as razes x1 e x2 de uma equaca


o geral quadr
atica est
ao relacionadas
aos coeficientes pelo fato de que:
x1 + x2 = b/a

x1 x2 = c/a.

(2.3.2)

Introducao

Use a aritmetica de arredondamento, com quatro algarismos, e as f


ormulas (2.3.1)
e (2.3.2) para determinar a aproximaca
o mais precisa para as razes da equaca
o
x2 1634x + 2 = 0, no sistema F (10, 10, 10, 10).
Nos exemplos dados foi razoavelmente facil resolver o problema do cancelamento.
Entretanto, cabe salientar, que nem sempre existe uma maneira trivial de resolver
problemas ocasionados pelo cancelamento.
LISTA DE EXERCICIOS
Exerccio 2.8. Considere os seguintes n
umeros: x1 = 27, x2 = 0, 138 e x3 =
45, 128 que est
ao na base 10. Escreva-os na base 2.
Exerccio 2.9. Considere os seguintes n
umeros: x1 = 13, x2 = 0, 143 e x3 =
23, 314 que est
ao na base 5. Escreva-os na base 2.
Exerccio 2.10. Dado os n
umeros (13, 44)5 , (122, 35)6 , (31, 202)4 . Existe algum
com representaca
o exata no sistema F (2, 10, 10, 10)?
Exerccio 2.11. Considere o sistema F (2, 8, 4, 4) e os n
umeros x1 = 0, 10110011
22 e x2 = 0, 10110010 27 . Qual dos dois n
umeros representa melhor (2, 8)10 ?
Exerccio 2.12. Considere o sistema F (2, 2, 2, 3)
a) Exiba todos os n
umeros represent
aveis neste sistema e coloque-os sobre um eixo
ordenado.
b) Qual o maior n
umero na base 10 que pode ser colocado nesse sistema sem fazer
arredondamento?
c) Qual o menor n
umero positivo na base 10 que pode ser representado neste sistema
sem fazer arredondamento?
Exerccio 2.13.
Considere o sistema F (2, 8, 10, 10). Represente no sistema os
n
umeros x1 = 8, x2 = e2 , x3 = 3, 57, onde todos est
ao na base 10. Existe algum
com representaca
o exata neste sistema?
Exerccio 2.14. Utilize a regra de formaca
o de n
umeros com formato de 64 bits
para encontrar o equivalente na forma decimal dos seguintes n
umeros dados em
formato de m
aquina com ponto flutuante:
1. 0100000010101001001100000000000000000000000000000000000000000000;
2. 1100000010101001001100000000000000000000000000000000000000000000;
3. 0011111111110101001100000000000000000000000000000000000000000000;
4. 0011111111110101001100000000000000000000000000000000000000000001;
Exerccio 2.15. Determine o Erro Absoluto (EAp ), o Erro Relativo (ERp ) e o
n
umero de dgitos significativos nas aproximaco
es:
1. p = , p = 22/7;
2. p = e, p = 2, 718;
3. p = e10 , p = 22000;

10

Analisde de Arredondamento em Ponto Flutuante


4. p = 8!, p = 39900.

Exerccio 2.16. Considere o sistema F (10, 3, 5, 5). Efetue as operaco


es indicadas:
1. (1, 386 0, 987) + 7, 6485 e 1, 386 (0, 987 7, 6485);

 

1,338
2,038
e
2. 1,3382,038

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

d) (367, 0 + 0, 6) + 0, 5 e 367, 0 + (0, 6 + 0, 5);


P100
e)
i=1 0, 11. Compare seu resultado com 100 0, 11.
Exerccio 2.20. Deseja-se calcular
S=

10
X
2
k2

k=1

no sistema F (10, 3, 5, 4), usando arredondamento em todas as operaco


es. Assim,
efetue a soma:
a) da direita para a esquerda,
b) da esquerda para a direita.
Os valores obtidos em (a) e (b) s
ao iguais?
Exerccio 2.21. Usando arredondamento para quatro dgitos significativos, efetue
as operaco
es indicadas e escreva o resultado na forma normalizada.
a) 0, 5971 103 + 0, 4268 100 ;
b) 0, 5971 101 0, 5956 102 ;
c)

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

usando seis algarismos significativos em todas as operaco


es. O resultado que voce
obteve possui seis algarismos significativos corretos? Voce saberia obter o resultado
com o m
aximo de algarismos significativos corretos?
Exerccio 2.24. Calcule as razes da equaca
o
x2 60x + 1 = 0
usando quatro algarismos significativos em todas as operaco
es. O resultado das
razes que voce obteve possui quatro algarismos significativos corretos? Voce saberia
o que fazer para obte-las com o m
aximo de algarismos significativos?
Exerccio 2.25. Compare os
alculos f(700) e g(700)
utilizando o
resultados
dos c

F(10,6,10,10) onde f (x) = x + 1 x e g(x) = 1/( x + 1 + x). Onde obtem


melhor aproximaca
o?
Exerccio 2.26. Utilizando a notaca
o com arredondamento para quatro dgitos,
encontre as razes da equaca
o
x2 + 62, 10x + 1 = 0,
sabendo que as razes s
ao aproximadamente
x1 = 0, 01610723

2.4
2.4.1

x2 = 62, 08390 .

Usando o MATLAB para a resoluc


ao de exerccios
Mudan
ca de Base

O softwere MATLAB possui comandos que realizam a Mudanca de Base, porem


para utiliz
a-los, o n
umero o qual deseja-se mudar de base deve ser um inteiro naonegativo menor do que 252 . Os comandos existentes s
ao:

12

Analisde de Arredondamento em Ponto Flutuante

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:

Figura 2.1: Exemplo do comando dec2bin(d)


Comando: bin2dec(binarystr)
O comando bin2dec e utilizado para mudar um n
umero na base 2 para a base 10.
O binarystr (n
umero bin
ario) deve ser digitado entre aspas simples () dentro
do parenteses, pois o software reconhecer
a este n
umero como uma string formado
apenas pelos n
umeros 0 e 1.
Desta forma nao e possvel realizar a mudanca de base de n
umeros decimais
como 0.1100 na base 2 para a base 10, pois o ponto nao pertence ao conjunto de
strings que formam um n
umero bin
ario. 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.19. Representar o n
umero 010111 na base 2, na base 10:

Figura 2.2: Exemplo do comando bin2dec(binarystr)


Comando: base2dec(strn, base)
Este comando realiza a mudanca de base de um n
umero em uma base qualquer para
a base 10. Para isto, deve-se digit
a-lo na Command Window do software e entrar
com o n
umero (strn) que se deseja mudar para a base 10, entre aspas simples (),
e com a base (base) na qual o n
umero est
a.
Assim como no n
umero bin
ario, nao se pode realizar a mudanca de base de um
n
umero decimal, como por exemplo 3.8, pois o ponto nao pertence ao conjunto de
strings que formam um n
umero em qualquer base.
Exemplo 2.20. Representar o n
umero 212 na base 3, na base 10:

13

Introducao

Figura 2.3: Exemplo do comando base2dec(strn, base)


Comando: dec2base(d,base)
O comando dec2base(d, base), muda um n
umero na base 10 para uma base qualquer.
Para us
a-lo, digita-se o comando na Command Window do software e entra-se com
o n
umero (d) na base 10 e com a base para qual o n
umero sera convertido.
Exemplo 2.21. Representar o n
umero 23 na base 10, na base 4:

Figura 2.4: Exemplo do comando dec2base(d,base)


Exerccio 2.27 (Computacional). Usando o MatLab calcule as somas

100
P

0, 1 e

i=1
100
P

0, 25. Explique porque a primeira soma da um valor aproximado e a segunda da

i=1

o valor correto [5].

14

Analisde de Arredondamento em Ponto Flutuante

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

Вам также может понравиться