Periodische Zahlen vorzeitig abbrechen
-
Hey,
mir ist klar, daß ich wohl eine eigene Funktion dafür schreiben müßte die mir eine entsprechende Binär Division abbildet oder gibt es Librarys für sowas ?
Winn
-
Was genau meinst du mit periodische Zahlen? sowas, wie 1,33333333333333333333333333333333333333333333333333333333......?
Dann brauchst du garnichts, denn es ist standardmäßig so, dass nur die ersten 6 Kommastellen ausgegeben werden, die letzte (6.) Stelle wird dann gerundet, aber auch nur bei der Ausgabe, d.h. du kannst mit deiner periodischen Zahl weiterrechnen.
-
Hey,
Das die Ausgabe nach der 6 Stelle rundet ist mir klar, aber ich möchte auch nur (im einfachsten Fall) mit diesen 6 Stellen rechnen. Ich habe mehrer von diesen periodischen Zahlen, die in der numerisch besten Lösung, addiert Null ergeben sollen.
Winn
-
Das wird Dir auf einem Computer einfach nicht gelingen da immer irgendwo gerundet wird.
-
ahso, ok, naja, das kann man festlegen, mit round(); (dazu musst du die math.h oder cmath includieren. ich weiß aber jetzt nichgenau, ob die Funktion round() hieß, kann auch sein, dass sieanders hieß, auf jedenfall stehts in diesen Bibliotheken.
-
Den maschinellen Rundungsfehler kann man auch austricksen indem man kleine Zahlen mit großen Zahlen multipliziert um sie im Ergebnis wieder mit dieser großen Zahl zudividieren, d.h. durch Transformation der Werte in einen numerisch sicheren Bereich und anschließender Rücktransformation hat man "richtige" Werte.
Warum denn nicht auch in diesem Fall ?
Bei dem Problem das ich habe, habe ich im symmetrischen Fall, stets komplementäre periodische Zahlen, die sich einfach eleminieren müssen, wenn ich sie addiere ! Das ist aber nicht der Fall, selbst dann nicht, wenn ich sie mit großen Zahlen multipliziere usw... deswegen möchte ich sie vorzeitig abschneiden, damit sie zu Null werden.
Winn
-
also ich finds nicht
-
Original erstellt von Winn:
Bei dem Problem das ich habe, habe ich im symmetrischen Fall, stets komplementäre periodische Zahlen, die sich einfach eleminieren müssen, wenn ich sie addiere !Könntest Du rationale Zahlen nehmen?
-
Original erstellt von Daniel E.:
Könntest Du rationale Zahlen nehmen?Die Zahlen entstehen durch ein Polynom, als Input hab ich rationale Zahlen, dennoch entstehen interessanterweise an den Rändern stets periodische Zahlen. Im symmetrischen Fall komplementäre, im unsymmetrischen Fall periodische Zahlen mit gegensätzliche Vorzeichen. Wenn ich sie nun vorzeitig abknicken könnte, könnte ich sie entsprechend ausbalancieren. Ich berechne damit Ableitung von Funktionen, die bei einer konstanten Funktion z.B. f(x)=1 nicht Null ausgeben würden, sondern etwas sehr kleines ungleich Null, ist nur ein numerischer Schönheitsfehler, der mich aber ungemein stört, denn ich benutze die Funktion mindestens 10.000 Mal in der Simulation, womit ich den Fehler 10.000 Mal begehen würde...
Winn
P.S.: Natürlich würde ich damit einen Ableitungsfehler bei variablem Funtkionen begehen, diesen würde ich aber akzeptieren.
[ Dieser Beitrag wurde am 26.05.2003 um 19:20 Uhr von Winn editiert. ]
-
Original erstellt von Winn:
Im symmetrischen Fall komplementäre, im unsymmetrischen Fall periodische Zahlen mit gegensätzliche Vorzeichen.s/komplementäre/identische/
?Wenn ich sie nun vorzeitig abknicken könnte, könnte ich sie entsprechend ausbalancieren.
Mit FAKTOR multiplizieren, durch ceil (für positive und floor für negative Zahlen) jagen und durch FAKTOR dividieren, wobei FAKTOR einfach eine Zahl ist, die es schafft, einen signifikant großen Bereich der Periodenstellen in den Vorkommateil zu bringen. Wenn Du deinen komplementären Gliedern machst, sollten sie sich zu Null addieren. Das dürfte deinem oben angegebenen Verfahren ähnlich sein.
sondern etwas sehr kleines ungleich Null, ist nur ein numerischer Schönheitsfehler, der mich aber ungemein stört
Eine willkürliche Schranke einführen: Alles was kleiner als diese Schranke ist, wird zu 0, oder so?
-
Bedank, sowas brauchte ich