Baixe o app para aproveitar ainda mais
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?
Compartilhar