calculo numérico - magnitude e precisão em C
EXÉRCITO BRASILEIRO
DEPARTAMENTO DE CIÊNCIA E TECNOLOGIA
INSTITUTO MILITAR DE ENGENHARIA
(Real Academia de Artilharia, Fortificação e Desenho / 1792)
CÁLCULO NUMÉRICO
Curso de Graduação
Professor: Cel Diéguez
Trabalho 1 – Magnitude e Precisão
1º Ten FELIPE
1º Ten FEITOSA
1º Ten AZZOLIN
1º Ten KOGAKE
Rio de Janeiro, Outubro de 2013
1º Trabalho de Cálculo Numérico
Prof: Cel Dieguez
Todos os programas foram implementados em Linguagem C através do ambiente de desenvolvimento Dev-C++. As bibliotecas stdio.h e math.h foram utilizadas.
1º Pedido:
Algoritmo MAGNITUDE (Precisão simples):
#include
#include
int main(void)
{
float z, m; float n1; z = 1;
while(z>0) { m = z; z = z/2; }
n1 = log10(fabs(log10(m)/log10(2))+1)/log10(2); printf("Magnitude: %.60G\n", m); printf("Nr de bits do expoente: %d\n\n", (int)n1);
system("pause"); return 0;
}
Resultado na tela:
Algoritmo MAGNITUDE (Precisão dupla):
#include
#include
int main(void)
{
double z, m; float n1; z = 1;
while(z>0) { m = z; z = z/2; }
n1 = log10(fabs(log10(m)/log10(2))+1)/log10(2); printf("Magnitude: %.60G\n", m); printf("Nr de bits do expoente: %d\n\n", (int)n1);
system("pause"); return 0;
}
Resultado na tela:
2º Pedido:
Algoritmo PRECISÃO (Precisão simples):
#include
#include
int main(void)
{
float p; float d = 0; int n2 = 0; p = 1; while((p+1)>1) { p = p/2; } p = 2*p; d = fabs(log10(p)); n2 = fabs(log10(p)/log10(2)); printf("Precisao: %.30G\n", p); printf("Num. digitos significativos decimais: %d\n", (int)d); printf("Num bits da mantissa: %d\n", n2);
system("pause"); return 0;
}
Resultado na tela:
Algoritmo