Ich habe eine Funktion zur Berechnung von Cosinus basierend auf Taylor-Serie, erstellt, nur um ein Genauigkeitsproblem zu begegnen, wenn Sie es mit der Standardbibliothek Cosinus vergleichen. zum Beispiel Rechen 23 meines cos gibt: -0,53283 und die Standard-Bibliothek gibt: -0,53283Präzisions-Issuse mit Taylor-Serie zum Auffinden von Kosinus
Ich habe die Web gesucht, und zu versuchen, es selbst Figur, sondern nur couldn bezeichne das Problem nicht! wenn das treasould 1.0e-7 erhöht wird, ist das Problem gelöst. aber es sollte auch gut für 1.0e-6 funktionieren (wie es für meine Freunde funktionierte)
würde sich über jede Einsicht freuen, danke voraus.
#define PI 3.14159265358979323846264338327950288419716
double my_cos(double rad){
int i = 0;
double numer = 1, denom = 1;
double x2, cos = 0;
rad = fmod(fabs(rad),2*PI);
x2 = pow(rad,2);
do{
cos += pow(-1,i)*(numer/denom);
i++;
numer *= x2;
denom *= (2*i)*(2*i-1);
} while (numer/denom>1.0e-6);
return cos ;
}
Sir, ich liebe dich. (Ich kann nicht glauben, dass ich so viel Zeit damit verschwendet habe) –