Olá pessoal, gostaria de uma ajuda: preciso criar uma função que dado o seno de um ângulo em radianos, ele devolve a aproximação pela série de taylor. Pois bem, eu fiz funciona bem até 4 radianos, a partir dai, o programa dá muito ruim e eu não entendo o porquê. Alguém pode me ajudar?
#include <stdio.h>
#define EPSILON 0.01
int pot(int n,int k){
int pot,i;
pot = 1;
for(i=0;i<k;i++){
pot=pot*n;
}
returnpot;
}
intfat(intn){
intfat,i;
fat=1;for(i=n;i>1; i--){
fat = fat*i;
}
return fat;
}
int main(){
double x,seno,termo;
int sinal,i,n,k;
sinal=1;
i=0;
printf("Digite um angulo:");
scanf("%lf",&x);
k = pot(x,2*i+1);
n = fat(2*i+1);
termo =(double)k/n;
seno = termo;
for(i=1;termo>EPSILON || termo<-EPSILON;i++){
sinal = -sinal;
k = pot(x,2*i+1);
n = fat(2*i+1);
termo =(double)k/n;
seno = seno + termo*sinal;
printf(" \n pot : %d",k);
printf("\n fat: %d",n);
printf("\n termo : %lf",termo);
}
printf("\nseno:%lf",seno);
return 0;
}
Pergunta
badluckmath
Olá pessoal, gostaria de uma ajuda: preciso criar uma função que dado o seno de um ângulo em radianos, ele devolve a aproximação pela série de taylor. Pois bem, eu fiz funciona bem até 4 radianos, a partir dai, o programa dá muito ruim e eu não entendo o porquê. Alguém pode me ajudar?
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.