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.