Hier ist eine C-Implementation der Sinusberechnung mit der Taylor-Reihenentwicklung:
/***********************************************
* Sinusberechnung mit Taylor-Reihenentwicklung
*
* Marco Dickert
* https://misterunknown.de
**********************************************/
#include <stdio.h>
#include <math.h>
//Potenzberechnung bei natürlichen Exponenten
double hochInt(double base, int exponent) {
double ret = 1.0;
int i = 0;
for(i = 0; i < exponent; i++)
ret = ret * base;
return ret;
}
// Fakultätsberechnung
int fakultaet(int f) {
if(f<=0)
return 1;
else
return (f * fakultaet(f-1));
}
//Sinusberechnung mit Taylor-Reihenentwicklung
double sinus(double x, double summe, int iteration) {
double glied = ( hochInt(x, (2 * iteration + 1) ) / fakultaet(2 * iteration + 1) );
if( fabs(glied) >= 0.00001 ) return sinus(x, summe + (hochInt(-1.0, iteration) * glied), iteration + 1);
else return (summe + hochInt(-1.0, iteration) * glied);
}
int main(void) {
double x = 0.0, tmp = 0.0;
int k = 0;
printf("Sinusberechnung mit Taylor-ReihenentwicklungnBitte geben sie eine Zahl ein: ");
// Benutzereingabe
//scanf("%lf", &x);
printf("Das Ergebnis ist: %lf", sinus(1.4,0,0));
return 0;
}