Cosinus Berechnen



  • Hallo

    wie kann ich den Cosinus berechnen ohne das ich die Mathematische funktion benötige??
    Ich habe es für den sinus bereits fertiggebracht, mit hilfe. Aber ich habe so zimlich keine ahnung wie das beim cosinus jetzt funtioniert,..

    **double Trigonometrie::sinus(double x)
    {
    long double sin = x; //enthaelt den berechneten Sinuswert
    long double summand = 0;
    long double zaehler = x;
    long double nenner = 1;
    int vorzeichen = 1;
    int c = 0;
    int i = 1;

    // (Anweisung; Bedingung; Zähler der Schlaufe hochzählen)
    for(c=0; c<100; c++)
    {
    zaehler = zaehler * x * x;
    nenner = nenner * (i+1) * (i+2);
    summand = zaehler / nenner;
    vorzeichen = vorzeichen * (-1);
    sin = sin+summand * vorzeichen;
    i = i + 2;
    }

    return sin;
    }**



  • Hey Stroke,

    Der Cosinus, wie auch der Sinux läßt sich in eine Reihenentwicklung zerlegen... Je mehr Glieder die Reihenentwicklung hat, desto genauer ist die Berechnung des Cosinus.

    Die Reihenentwicklung für den Cosinus sieht so aus
    cos(x)=1-((x^2)/Fakultät(2)) + ((x^4)/Fakultät(4)) + ... + ((-1)n)*((x2n)/Fakultät(2n))

    Dabei ist n der Exponent, quasi Deine Iterationstiefe und x der Wert an der Stelle des zuberechnenden Cosinuses.

    Gruß Winn



  • Hi Stroke,

    wenn Du den Sinus schon hast, kannst Du zur Berechnung des Cosinus entweder den Sinus aufrufen und das Argument mit -90° oder -Pi/2 modifizieren - oder Du baust den Sinus entsprechend um, damit dann der Cosinus rauskommt.



  • gg, das geht natürlich auch... die Reihenentwicklung ist in RAD angegeben, d.h du müßtest -Pi/2 nehmen.

    Winn



  • das ich das irgendwie umformen muss, ist mir eigendlich auch noch klar,.. nur weiss ich nicht wie..



  • So müßte es gehen...

    double Trigonometrie::cosinus(double x)
    {
       long double cos; //enthaelt den berechneten Cosinuswert
       long double summand = 0;
       long double zaehler = (x-(Pi/2));
       long double nenner = 1;
       int vorzeichen = 1;
       int c = 0;
       int i = 1;
    
       // (Anweisung; Bedingung; Zähler der Schlaufe hochzählen)
       for(c=0; c<100; c++)
       {
          zaehler *= (x-(Pi/2)) * (x-(Pi/2));
          nenner *= (i+1) * (i+2);
          summand = zaehler / nenner;
          vorzeichen* = (-1);
          cos += summand * vorzeichen;
          i += 2;
       }
    
       return cos;
    }
    

Anmelden zum Antworten