Funtionswerte in Tabelle überführen



  • äääh... ich meinte: exp(-ii)*
    🙂



  • Danke das sieht schonmal besser aus, als der Mist den ich verzapft hatte, jedoch ist das Ergebnis noch nicht das gewünschte, einfach weil ich mich falsch ausgedrückt habe:

    Also Ausgabe sollte wiefolgt aussehen:

    x-Wert______y-Wert
    0.00________1.0000
    0.01________0.9999
    0.02________0.9996
    ...______...
    0.99________0.3753
    (Natürlich ohne die Linien (
    ))

    Da sind die -Werte jetzt natürlch mal zur Einfachheit außen vor.
    Die x-Werte haben wir ja jetzt schonmal.



  • boenz666 schrieb:

    Also Ausgabe sollte wiefolgt aussehen:

    und? was kommt bei dir raus?
    🙂



  • Im c++ Forum sagte ja bereits jemand, dass Gleitkomma-Schleifenzähler aufgrund der Rundungsfehler vermieden werden sollten, womit dieser Jemand auch recht hatte.
    Ansonsten musst Du nur noch das printf für formatierte Ausgabe anpassen:

    #include <stdio.h>
    #include <math.h>
    
    int main()
    {
        double x;
        int idx = -100;
        printf("x-Wert\ty-Wert\n");
        while(idx <= 100)
        {
            x = idx / 100.0;
            printf("%1.2f\t%1.5f\n", x, exp(pow(-x, 2)) );
            ++idx;
        }
        return 0;
    }
    


  • Tachyon schrieb:

    Im c++ Forum sagte ja bereits jemand, dass Gleitkomma-Schleifenzähler aufgrund der Rundungsfehler vermieden werden sollten

    grösser/kleiner-vergleiche sind aber nicht so schlimm. nur mit == wird man sich oft wundern.
    🙂



  • floatingpoint-freak schrieb:

    Tachyon schrieb:

    Im c++ Forum sagte ja bereits jemand, dass Gleitkomma-Schleifenzähler aufgrund der Rundungsfehler vermieden werden sollten

    grösser/kleiner-vergleiche sind aber nicht so schlimm. nur mit == wird man sich oft wundern.
    🙂

    Es geht nicht um die Vergleiche sondern um den größer werdenden Fehler bei der Iteration der x-Werte.



  • Tachyon schrieb:

    ...sondern um den größer werdenden Fehler bei der Iteration der x-Werte.

    hast ja recht, aber bei 100 * 0.01 und einer double-variablen müsste es noch gut klappen. bei 'float', glaub ich, geht's aber daneben.
    🙂



  • Tachyon du bist mein persönlicher c-Gott^^

    Habe jetzt noch:

    printf("%1.2f\t%1.5f\n", x, exp(pow(-x, 2)) );
    

    zu:

    printf("%1.2f\t%1.5f\n", x, exp(-pow(x, 2)) );
    

    geändert und schon stimmen auch die Ergebnisse.
    Vielen Dank (auch an alle anderen user, die unterstützend mitgewirkt haben).

    €: Welcher Befehl genau sorgt im Eigentlichen dafür, dass die zweite Spalte entsprechend ausgegeben wird?



  • was war den hier dran verkehrt
    printf ("%f --> %f\n", i, exp(-i*i)); 😕



  • Ich denke mal, du meinst das \t. Das ist sozusagen ein Tabulator...

    häääh ?? schrieb:

    was war den hier dran verkehrt
    printf ("%f --> %f\n", i, exp(-i*i)); 😕

    Nichts (im Gegensatz zu zu meinem Vorzeichenfehler 🙄), ich denke mal, er hat nur die formatierte Ausgabe vermisst.


Anmelden zum Antworten