Análisis Numéricos.

5. Ejercicio ortodrómica

5.1. ejemplo solución coseno

/*
 *  Germán Andrés Xander 2017  *
 *
 *   Programa que calcula el coseno de un número utilizando la serie de Taylor 
*/

#include <iostream>
using namespace std;

int factorial(int j);
long double calculaTerm(long double x, int j);

#define PI 3.1415926535897932384

int main(void){
   long double deg;
   long double rad;
   int i;
   long double result = 1;

   cout<<"Ingrese x en grados: ";
   cin>>deg;

   /* convertir x a radianes */
   rad = deg * PI / 180;
   for(i = 1; i <= 10; ++i){
       int j = 2*i;
       long double term = calculaTerm(rad, j);
       // suma si i es par y resta si es impar, según la serie de taylor
        if(i%2==0){
            result=result+term;
        }else{
            result=result-term;
        }
   }
   cout.precision(15);
   cout<< "el coseno de "<<deg<<" es "<<result;
} 

int factorial(int j){
    int fact=1;
    for (int i=2; i<j+1;i++){
       fact=fact*i;
   }
   return fact;
}

long double calculaTerm(long double x, int j){
    long double taylor=1;
    for(int i=0;i<j;i++){
        taylor=taylor*x;
    }
    return taylor/factorial(j);
 }