Il codice che ho scritto finora è questo :
Codice PHP:
#include <iostream>
#include <stdlib.h>
#include <cmath>
using namespace std;
unsigned long fattoriale (unsigned long ); //Prototipo della funzione fattoriale
int main ()
{ double x, epsilon, fatt, potenze_x;
cout << "Inserire un valore in radianti per l'argomento del seno : ";
cin >> x;
double termine=x, somma=x;
cout <<"Inserire il valore di epsilon compreso tra 0 e 1 : ";
cin >> epsilon;
while ((fabs(termine))> (epsilon*(fabs(somma)))){
for(int j=3; j<6; j+=2){ // incrementa j da 3 a 6 con passi di 2
potenze_x = pow (x,j);
fatt = fattoriale(j);
termine = potenze_x * (1/fatt);
somma += termine;
cout << "iterazione # " <<j<<"\n";
cout << " valore parziale " << somma << endl;
}
}
cout <<"\nvalore finale " << somma << endl;
cout << "\nvalore calcolato con la funzione di libreria " << sin(x) << endl;
cout << "\nerrore computato in percentuale " << "\n " <<((sin(x) - somma) /sin(x) )* 100 << endl ;
system("Pause");
return 0;
}
//Definisco la funzione fattoriale
unsigned long fattoriale (unsigned long n)
{
unsigned long fatt = 1;
for (int i=1; i<=n; i++)
fatt *= i;
return fatt;
}
Il problema è che così facendo non riesco a sommare i termini della serie con il segno appropriato (x-x^3/3! +...), dovrei far variare j in modo tale da avere una potenza col segno positivo e l'altra con il segno negativo e questo mi risulta difficile.