cos(x) und sin(x) ohne math.h

  • hallo zusammen
    habe ein problem muss cos(x) und sin(x) ohne benutzung von math.h programmieren.
    also ich habe nun cos(x) ohne math.h hinbekommen aber ich bekomme jetzt sin(x) einfach nicht hin.kann mir jemand helfen!!!

    also sourcecode für cos(x) lautet:

    #include <stdio.h>

    main()
    {
    double x,term,cosx;
    int i;
    printf("X?: ");
    scanf("%lf",&x);
    term = 1;
    cosx = 1;

    for (i=1;i < 20; ++i)
    {
    term = term * x * x;
    term = term / i * 2 * ( i * 2-1);
    if ( i % 2 == 0 )
    cosx = cosx + term ;
    else
    cosx = cosx - term;
    }
    printf("\n %.9f ",cosx);

    im Anhang ist die formel für sin(x)

  • Zitat von Lord Binary

    warum einfach, wenn's auch kompliziert geht.
    sin(x)=sqrt(1-cos(x)*cos(x))
    sin(x)=cos(Pi/2+x)
    ...


    1. lesen hilft meistens im leben weiter
    2. habe ich gesagt ich soll die aufgabe ohne math.h lösen,weißt du eigentlich wo sqrt und pi und cos und sinx stecken...ich verrate es dir in math.h
    3. ich weiß auch das es leichter geht, undzwar die funktion gibt es ja eigentlich schon, aber mein prof will es so umständliuch haben.


    so wenn jemand jetzt konkrete hilfestellungen hat,dann bitte etwas produktiver.

    mfg
    conelia

  • Zitat von conelia

    1. lesen hilft meistens im leben weiter
    2. habe ich gesagt ich soll die aufgabe ohne math.h lösen,weißt du eigentlich wo sqrt und pi und cos und sinx stecken...ich verrate es dir in math.h
    3. ich weiß auch das es leichter geht, undzwar die funktion gibt es ja eigentlich schon, aber mein prof will es so umständliuch haben.

    Wenn wir dir hier schon helfen sollen, würde ich vorschlagen,

    • einen ein wenig freundlicheren Ton anzuschlagen.
    • auch mal genau zu lesen was Lord Binary geschrieben hat.
    • darüber nachzudenken.
    • wenn du immer noch nicht erleuchtet bist, noch einmal darüber nachzudenken.

    Wenn du dann immer noch nicht weiter bist, ein kleiner Tip: Die Lösung von Lord Binary ist völlig korrekt, und verwendet kein math.h, genau wie von dir gefordert. Sie geht davon aus, dass du cos(x) wie oben angegeben ja bereits implementiert hast.

  • sinx = 0;
    nenner = 1;
    zaehler = x;
    mult = +1;

    for (int n=0; n<N; n++)
    {
    sinx += mult * (zaehler / nenner);
    mult = -mult;
    zahler *= (x*x);
    nenner *= (2*n + 1)
    }

    Informatik @ TU Wien (1998 - 2005)

  • Auch wenn's die ursprüngliche Fragestellerin wahscheinlich Nüsse interessiert, eine kleine Randbemerkung:
    Approximation mittels Taylorreihen ist keinesfalls optimal, das geht auch mit anderen Polynomen mit geringerem Grad (=weniger Rechenaufwand) und gleicher/besserer Approximationsgüte.


    Trading for a living [equities,futures,forex]

  • Zitat von conelia

    1. lesen hilft meistens im leben weiter
    2. habe ich gesagt ich soll die aufgabe ohne math.h lösen,weißt du eigentlich wo sqrt und pi und cos und sinx stecken...ich verrate es dir in math.h
    3. ich weiß auch das es leichter geht, undzwar die funktion gibt es ja eigentlich schon, aber mein prof will es so umständliuch haben.

    so wenn jemand jetzt konkrete hilfestellungen hat,dann bitte etwas produktiver.

    liebe conelia (?),

    weißt du, ein derart unverschämtes posting habe ich schon lange nicht mehr gelesen.

    ein tipp von mir an pubertierende schulkinder, denen mami & papi kein benehmen beigebracht haben: löst eure aufgaben selbst. dieses forum wurde nicht wegen letzterer gegründet.

    michael

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!