Buscar

Erro Computacional

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Exercícios	
  de	
  implementação:	
  
1) Precisão	
  da	
  Máquina	
  
A	
  precisão	
  da	
  máquina	
  é	
  definida	
  como	
  sendo	
  o	
  menor	
  número	
  positivo	
  em	
  aritmética	
  
de	
  ponto	
  flutuante	
  ε,	
  tal	
  que	
  (1+	
  ε)	
  >	
  1.	
  Este	
  número	
  depende	
  totalmente	
  do	
  sistema	
  
de	
  representação	
  da	
  máquina:	
  base	
  numérica,	
  total	
  de	
  dígitos	
  na	
  mantissa,	
  da	
  forma	
  
como	
   são	
   realizadas	
   as	
   operações	
   e	
   do	
   compilador	
   utilizado.	
   É	
   importante	
  
conhecermos	
  a	
  precisão	
  da	
  máquina	
  porque	
  em	
  vários	
  algoritmos	
  precisamos	
  fornecer	
  
como	
  dado	
  de	
  entrada	
  um	
  valor	
  positivo,	
  próximo	
  de	
  zero,	
  para	
  ser	
  usado	
  em	
  testes	
  
de	
  comparação	
  como	
  zero.	
  	
  
	
   O	
  algoritmo	
  a	
  seguir	
  estima	
  a	
  precisão	
  da	
  máquina:	
  
	
   Passo	
  1:	
  	
   A	
  =	
  1;	
  
	
   	
   	
   s	
  =	
  2;	
  
	
   Passo	
  2:	
   Enquanto	
  (s)>1,	
  faça:	
  
	
   	
   	
   A=	
  A/2;	
  
	
   	
   	
   s=	
  1	
  +	
  A;	
  
	
   Passo	
  3:	
   Faça	
  Prec	
  =	
  2A	
  e	
  imprima	
  Prec.	
  
	
  
a) Teste	
  este	
  algoritmo	
  escrevendo	
  um	
  programa	
  usando	
  uma	
  linguagem	
  conhecida.	
  
Decrare	
  as	
  variáveis	
  do	
  programa	
  em	
  precisão	
  simples	
  e	
  execute	
  o	
  programa;	
  em	
  
seguida,	
  declare	
  as	
  variáveis	
  em	
  precisão	
  dupla	
  e	
  execute	
  novamente	
  o	
  programa.	
  
b) Interprete	
  o	
  passo	
  3	
  do	
  algoritmo,	
  isto	
  é,	
  por	
  que	
  a	
  aproximação	
  para	
  Prec	
  é	
  
escolhida	
  como	
  sendo	
  o	
  dobro	
  do	
  último	
  valor	
  de	
  A	
  obtido	
  no	
  passo	
  2?	
  
c) Na	
  definição	
  de	
  precisão	
  da	
  máquina,	
  usamos	
  como	
  referência	
  o	
  número	
  1.	
  No	
  
algoritmo	
  a	
  seguir,	
  a	
  variável	
  VAL	
  é	
  um	
  dado	
  de	
  entrada,	
  escolhido	
  pelo	
  usuário:	
  
	
   Passo	
  1:	
  	
   A	
  =	
  1;	
  
	
   	
   	
   s	
  =	
  VAL+A;	
  
	
   Passo	
  2:	
   Enquanto	
  (s)>VAL,	
  faça:	
  
	
   	
   	
   A=	
  A/2;	
  
	
   	
   	
   s=	
  VAL	
  +	
  A;	
  
	
   Passo	
  3:	
   Faça	
  Prec	
  =	
  2A	
  e	
  imprima	
  Prec.	
  
	
  
c.1)	
  Teste	
  seu	
  programa	
  atribuindo	
  para	
  VAL	
  os	
  números:	
  10,	
  	
  100,	
  1000,	
  10000.	
  
c.2)	
  Para	
  cada	
  valor	
  diferente	
  para	
  VAL,	
  imprima	
  o	
  valor	
  correspondente	
  obtido	
  
para	
  Prec.	
  Justifique	
  por	
  que	
  Prec	
  se	
  altera	
  quando	
  VAL	
  é	
  modificado.	
  
	
  
2) Considere	
  um	
  vetor	
  de	
  reais	
  de	
  tamanho	
  10	
  (conteúdo	
  inicializado	
  com	
  valores	
  
diferentes	
  a	
  seu	
  critério).	
  Codifique	
  um	
  programa	
  que	
  faça	
  a	
  ordenação	
  (crescente)	
  
deste	
  vetor	
  manipulando	
  os	
  seus	
  elementos	
  como	
  se	
  fossem	
  inteiros	
  com	
  sinal	
  (use	
  
conversão	
  de	
  tipos),	
  armazenando	
  o	
  resultado	
  em	
  um	
  vetor	
  auxiliar.	
  Faça	
  também	
  a	
  
ordenação	
  normal,	
  ou	
  seja,	
  lidando	
  com	
  os	
  valores	
  como	
  números	
  reais	
  e	
  armazene	
  o	
  
resultado	
  em	
  um	
  outro	
  vetor	
  auxiliar.	
  Mostre	
  na	
  tela	
  os	
  dois	
  vetores	
  ordenados.	
  Avalie	
  
e	
  comente	
  o	
  resultado	
  obtido.	
  
	
  
3) Algumas	
  operações	
  do	
  cálculo	
  analítico	
  pode	
  não	
  ser	
  válida	
  quando	
  este	
  cálculo	
  é	
  
realizada	
  pelo	
  computador.	
  Por	
  exemplo,	
  considere	
  a	
  igualdade	
  das	
  expressões	
  abaixo:	
  𝑎!𝑁!!!! = 1𝑁 𝑎!
!
!!! 	
  
Escreva	
  um	
  programa	
  que	
  calcule	
  e	
  exiba	
  na	
  tela	
  cada	
  lado	
  da	
  expressão	
  para	
  os	
  
seguintes	
  valores:	
  
a) n=	
  100000	
  
ak=	
  0,25	
  
N=	
  5	
  
b) n=	
  100000	
  
ak=	
  0,11	
  
N=	
  5	
  
Avalie	
  e	
  justifique	
  os	
  resultados	
  obtidos.	
  
	
  
4) Cálculo	
  de	
  ex	
  
Escreva	
  um	
  programa	
  em	
  linguagem	
  conhecida	
  para	
  calcular	
  ex	
  pela	
  série	
  de	
  Taylor	
  
com	
  n	
  termos.	
  O	
  valor	
  de	
  x	
  e	
  o	
  número	
  de	
  termos	
  da	
  série	
  são	
  dados	
  de	
  entrada	
  deste	
  
programa.	
  Para	
  valores	
  negativos	
  de	
  x,	
  o	
  programa	
  deve	
  calcular	
  ex	
  de	
  duas	
  formas:	
  
em	
  uma	
  delas	
  o	
  valor	
  de	
  x	
  é	
  usado	
  diretamente	
  na	
  série	
  de	
  Taylor	
  e,	
  na	
  outra	
  forma,	
  o	
  
valor	
  usado	
  na	
  série	
  é	
  y	
  =	
  -­‐x,	
  e,	
  em	
  seguida,	
  calcula-­‐se	
  o	
  valor	
  de	
  ex	
  através	
  de	
  1/ex.	
  
a) Teste	
  seu	
  programa	
  com	
  vários	
  valores	
  de	
  x	
  (próximo	
  de	
  zero	
  e	
  distante	
  de	
  zero)	
  e,	
  
para	
  cada	
  valor	
  de	
  x,	
  teste	
  o	
  cálculo	
  da	
  série	
  com	
  vários	
  valores	
  de	
  n.	
  Analise	
  os	
  
resultados	
  obtidos.	
  
b) Dificuldades	
  no	
  cálculo	
  do	
  fatorial:	
  
O	
  cálculo	
  de	
  k!	
  necessário	
  na	
  série	
  de	
  Taylor	
  pode	
  ser	
  feito	
  de	
  modo	
  a	
  evitar	
  a	
  
ocorrência	
  de	
  overflow.	
  Os	
  cálculos	
  podem	
  ser	
  organizados	
  de	
  modo	
  a	
  se	
  evitar	
  o	
  
“estouro”	
  no	
  cálculo	
  de	
  k!;	
  para	
  isto	
  é	
  preciso	
  analisar	
  cuidadosamente	
  o	
  k-­‐ésimo	
  
termos	
  de	
  xk/k!,	
  tentar	
  misturar	
  o	
  cálculo	
  do	
  numerador	
  e	
  do	
  denominador	
  e	
  
realizar	
  divisões	
  intermediárias.	
  Estude	
  uma	
  maneira	
  de	
  realizar	
  esta	
  operação	
  de	
  
modo	
  a	
  evitar	
  que	
  k!	
  estoure.	
  
c) Com	
  a	
  modificação	
  do	
  item	
  (b),	
  a	
  série	
  de	
  Taylor	
  pode	
  ser	
  calculada	
  com	
  quantos	
  
termos	
  se	
  queira.	
  Qual	
  seria	
  um	
  critério	
  de	
  parada	
  para	
  se	
  interromper	
  o	
  cálculo	
  
da	
  série?

Continue navegando