Epsilon und Nachkommastellen

Neue Frage »

tigerbine Auf diesen Beitrag antworten »
Epsilon und Nachkommastellen
Wie muss man denn wählen, um sagen zu können, dass die Näherung



auf 1,2,3 etc. Nachkommastellen genau ist? verwirrt


GRuß,
tigerbine Wink
42 Auf diesen Beitrag antworten »

Hallo,
ich versuch mich mal:
also eine Nachkommastelle genau verstehe ich so, dass die Zahlen beim Runden auf eine Nachkommastelle den selben Wert haben (oder liege ich da falsch?).

Wenn man die Zahl 1,20 betrachtet, wäre 1,15 bis 1,24999... drin, also ist der Abstand maximal 0,05.

Also:
|orginal - fälschung| < 0,05 (für 1 Nachkommastelle)

Problem:
1,15 würde dem nicht mehr entsprechend, wenn man aus < ein <= macht, wäre aber 1,25 noch in der Grenze.


PS:
Erst hatte ich überlegt, dass man 1 Nachkommastelle genau auch wörtlich nehmen könnte, dann wäre aber 1,20 und 1,19999....9 nicht mehr auf 1 Nachkommastelle genau. So eine Definition ist aber m.E. schwachsinn, da der Abstand zwischen 1,20 und 1,1999... ja beliebig klein werden kann, es aber nie auf 1 Nachkommastelle genau ist.
Hier würde eine Epsilon-Def. auf keinen Fall funktionieren.

Was klappt ist:
, für 1 Nachkommastelle
(also wenn x,x**** von zwei Zahlen übereinpasst)



PPS:
Persönlich finde ich zu sagen, dass eine Toleranz von z.B. 1/10, 1/100, 1/1000 erlaubt, deutlich sinnvoller.
Dieses 'auf x Nachkommastellen genau' finde ich irgendwie sehr unpräzise und unpraktisch.
tigerbine Auf diesen Beitrag antworten »

Also wenn man irgendein Näherungsverfahren implementiert würde man sich ja ws ein Epsilon vergeben? Ich suche nun eben nach der Übersetzung, wenn jemand kommt:

"1/100. aha. Und auf wie viele Stellen ist das dann genau?"

oder eben

"Ich bräuchte das auf 5 Nachkomastellen genau." (Was muss ich dann für epsilon eingeben"


Dabei würde ich was die Definition der Nachkommastellen anbetrifft, deinem ersten Versuch anschließen. Wink
42 Auf diesen Beitrag antworten »

Hallo,
wenn der maximale Fehler bei 1/100 liegt, dann weiß ich, dass die Abweichung eben entsprechend klein ist, eben maximal 1/100 Augenzwinkern

Persönlich finde ich den Begriff 'auf wie viele Stellen ist das genau' schwer zu handhaben.
Wie gesagt, die Zahl 1,20 und 1,1999...99.
Auf wieviele Nachkommastellen wären diese genau? Keine, weil 2 und 1 sich unterscheiden?
Obwohl der Abstand zwischen beiden beliebig klein werden kann. Und beim Runden auf x Nachkommastellen (x hinreichend klein Augenzwinkern ) wären sie gleich.


Bei Näherungsverfahren kenn ich es eigentlich auch nur, dass man sagt, dass der Fehler davon kleiner x ist, also z.B. der Fehler ist kleiner als 1/10 (oder eine Messtoleranz von z.B. 1%).
Dies wäre ja genau das, was du mit deiner epsilon-Darstellung suchst. Das aber ein Näherungsverfahren auf z.B. 3 Nachommastellen genau arbeitet (also wenn man die Nachkommastellen direkt vergleicht), hört man eher selten.


Ansonsten beim 1. Versuch, also mit dem Runden:
Für x-Nachkommastellen genau:

(gerne kann man auch ein < 1 daraus machen)

Sofern das zutrifft, dann sind orginal und faelschung gleich, wenn man diese auf x Nachkommastellen rundet.
Airblader Auf diesen Beitrag antworten »

Ich persönlich finde, dass das "1,20 und 1,19999..."-Beispiel etwas hinkt.
Diese zwei Zahlen werden hier als etwas verschiedenes dargestellt - tatsächlich ist es aber eben ein- und dieselbe Zahl.

Sicher, es sind zwei verschiedene Darstellungen. Aber es ist die selbe Zahl und damit stimmen sie auf gewisse Art und Weise in allen Nachkommastellen überein.
Vielleicht sollte man den Fall "" einfach als Spezialfall "verbieten"?

air
42 Auf diesen Beitrag antworten »

Hallo,
Zitat:
Original von Airblader
Ich persönlich finde, dass das "1,20 und 1,19999..."-Beispiel etwas hinkt.
Diese zwei Zahlen werden hier als etwas verschiedenes dargestellt - tatsächlich ist es aber eben ein- und dieselbe Zahl.

Ich weiß, deswegen schrieb ich 1,999...9, also mit endlich vielen 9.
Da ich aber ja beliebig, aber endlich viele, neunen schreiben kann, ist der Abstand zu 1,20 eben beliebig klein.
 
 
tigerbine Auf diesen Beitrag antworten »
Richtung 1
Ich vermute mal, der Wunsch nach Nachkommastellen kommt daher, dass man sich die Zahl wie ein Zahlenschloss vorstellt und je richtiger Ziffer macht es *ding* Big Laugh

Wenn ich also das epsilon vorgebe und der Algorithmus bricht ab, könnte man dann ein Intervall angeben in dem der wahre Wert liegen muss? Damit der andere sich die Zahlen "konkret" vorstellen kann?

Danke Euch schon mal Wink
42 Auf diesen Beitrag antworten »

Hallo,
natürlich. Wenn x_0 dein Ergebnis, dann liegt das richtige Ergebnis im Intervall


Wenn du also sagen wir dein Verfahren eine Genauigkeit von 1/10 hat und du z.B. 2,4 erhälst, dann liegt das richtige Ergebnis zwischen 2,3 und 2,5.

Das Problem ist immer, zu bestimmten, welche Genauigkeit ein Verfahren hat. Du wendest ja ein Näherungsverfahren an, weil dir das richtige/korrekte Ergebnis nicht bekannt ist.
Hier zu sagen, wie stark es sich maximal vom richtigen Ergebnis unterscheidet, ist gar nicht so leicht.
Oft hat man auch nur relative Angaben, z.B. Genauigkeit bis auf 1%. Wenn du z.B. die Fläche unter einem Graphen per Näherungsverfahren bestimmst, dann wird der absolute Fehler normalerweise größer, je größer dein Abschnitt wird.

Ist ja auch logisch, ich kann für einen Graphen auf dem Intervall [0, 1] viel leichter die Fläche bestimmen, wenn der absolute Fehler max. z.B. 1/10 betragen soll als
wenn das Intervall [0, 1000000] ausgedehnt wird. Hier einen absoluten Fehler von 1/10 zu erhalten ist es schon schwieriger.

Hier sagt man dann oft, dass das Verfahren eine Toleranz/Genauigkeit von 1% hat, also wenn die korrekte Fläche des Graphen von [0, 1] z.B. 10 ist, dann muss mein Verfahren ein Ergebnis zwischen 9,9 und 10,1 liefern.
Ist die korrekte Fläche des Graphen von [0, 10^6] z.B. 10^9, müsste mein Verfahren ein Ergebnis zwischen 10^9-10^7 und 10^9+10^7 liefern.
tigerbine Auf diesen Beitrag antworten »

Danke. Mit der Fläche sprichst du schon was an. Da wir im Board nicht so viel zum Thema numerische Integration haben, versuch ich mich da gerade mein reinzulesen. Augenzwinkern Und eben auch mal Beispiele zu rechnen. Wenn ich nun endlich meine Fehler im Post "Adaptive Integration" abstellen kann unglücklich (da klebt mir echt das "Pech" an den Händen") komme ich hierher nochmal zurück.

Kennst du dich mit Romberg-Integration aus? Ich lese gerade den Bronstein, ist da ja recht kurz abgehandelt. Da suchen die im Zahlendiagramm dann nach einem "Nest" vergleichen da aber wiederum nur Ziffern (Stellen) und nicht Genauigkeiten. (Wenn du das Buch nicht hast, ich schreibe dazu später noch einen Thread "Romberg-Verfahren")

Wink
42 Auf diesen Beitrag antworten »

Hallo,
ne Romberg-Integration sagt mir relativ wenig.

Wir hatten das ganze Thema mit Näherungsverfahren bisher nur in der Informatik, numerische Algorithmen, bei der es eher um konkrete Algorithmen geht (z.B. für Nullstellen, Extrema, num. Integration).

Wie gesagt, die Vorlesung war eher praxisbezogen, es ging mehr ums wirkliche Implementieren und Verwenden der Algorithmen.
Natürlich ist die Güte von Näherungsverfahren auch immer wichtig, sowie wie effizient (d.h., wie schnell) das Verfahren arbeitet.
Darauf haben wir verschiedene Algorithmen untersucht, Sonderfälle betrachtet in denen die Algorithmen nicht funktionieren (z.B. nicht terminieren) oder sehr schlechte (falsche) Ergebnisse liefern.
Der erste Ansatz ist natürlich immer, die Algorithmen auf Funktionen loszulassen, für die man das richtige Ergebnis kennt (z.B. bei der num. Integration, für die man deren Stammfunktion kennt). So kann man dann schauen, wie gut das Ergebnis ist, wenn man 10, 100 oder 1000 Rechenschritte hat bzw. welches Verfahren normalerweise besser arbeitet.
Interessant werden dann die Sonderfälle, z.B. bei denen mehr Rechenschritte (z.B. das zu integrierende Intervall kleiner unterteilen) zu einem schlechteren Ergebnis führen.


Aber die ganze Theorie die es in der Numerik gibt, erwartet mich noch.
tigerbine Auf diesen Beitrag antworten »

Zitat:
Original von 42


Wie gesagt, die Vorlesung war eher praxisbezogen, es ging mehr ums wirkliche Implementieren und Verwenden der Algorithmen.
Natürlich ist die Güte von Näherungsverfahren auch immer wichtig, sowie wie effizient (d.h., wie schnell) das Verfahren arbeitet.


Mit was programmiert ihr? Hast du noch programme?

Zitat:

Darauf haben wir verschiedene Algorithmen untersucht, Sonderfälle betrachtet in denen die Algorithmen nicht funktionieren (z.B. nicht terminieren) oder sehr schlechte (falsche) Ergebnisse liefern.

Der erste Ansatz ist natürlich immer, die Algorithmen auf Funktionen loszulassen, für die man das richtige Ergebnis kennt (z.B. bei der num. Integration, für die man deren Stammfunktion kennt). So kann man dann schauen, wie gut das Ergebnis ist, wenn man 10, 100 oder 1000 Rechenschritte hat bzw. welches Verfahren normalerweise besser arbeitet.
Interessant werden dann die Sonderfälle, z.B. bei denen mehr Rechenschritte (z.B. das zu integrierende Intervall kleiner unterteilen) zu einem schlechteren Ergebnis führen.



Kannst du ein paar Beispiele schreiben, wenn du Zeit und Lust hast?


LG Wink
42 Auf diesen Beitrag antworten »

Hallo,
also bei den Algorithmen gings ums Verständnis dieser, da ist dann die Programmiersprache relativ egal. In der Informatik ist das Ziel, unabhänig von der Programmiersprache Probleme lösen zu können bzw. Probleme auch in verschiedensten Sprachen zu lösen.

Ansonsten haben wir in Java programmiert, da dies hier das üblich ist.


Programme bestehen bei uns eben nur aus Java Source Code. Wir hatten ein Skript (Papier), indem die Verfahren allgemein erklärt werden, und sollten diese dann oft in Java umsetzen, versuchen die Güte abzuschätzen o.ä.
Der Professor hatte dann selber ein Tool, indem die verschiedenen Verfahren dann beispielhaft implementiert sind.


Ansonsten findet man im Netz relativ viele gute Artikel zur numerischen Integration, wenn man es praxis bezogen mag, evt. mal nach Skripten aus Informatikvorlesungen suchen.


Ansonsten kann ich ein paar grundlegenden Algorithmen (in Java) hier posten, z.B. für Nullstellen, Extrema oder zur num. Integration (wobei wir hier nur die relativ leichten Verfahren implementiert haben).
Auf die Güte zu untersuchen geht relativ einfach, zumindest für den Anfang.
Man gibt ein paar Funktionen mit Stammfunktionen ein, schaut dann, was rauskommen müsste und überprüft, was das Näherungsverfahren (je nach Unterteilung) dir ergibt.
tigerbine Auf diesen Beitrag antworten »

Zitat:
Original von 42
Ansonsten kann ich ein paar grundlegenden Algorithmen (in Java) hier posten, z.B. für Nullstellen, Extrema oder zur num. Integration (wobei wir hier nur die relativ leichten Verfahren implementiert haben).
Auf die Güte zu untersuchen geht relativ einfach, zumindest für den Anfang.
Man gibt ein paar Funktionen mit Stammfunktionen ein, schaut dann, was rauskommen müsste und überprüft, was das Näherungsverfahren (je nach Unterteilung) dir ergibt.


Wir sind zwar nicht im Informatiker Board, aber da es bei uns ja Numerik gibt, gerne. Freude Schreib einfach einen neuen Thread, wenn du Zeit und Lust hast. Ich verschiebe den dann in das Workshop Forum. (Da kannst du nicht selbst posten)

Mit was für einem Programm programmiert man den da? Gibt es freeware, die ich für unsere user verlinken könnte?

Gruß
Wink
therisen Auf diesen Beitrag antworten »

Hallo Bine,

ich bin mir nicht sicher, aber ich glaube man meint mit "auf k Nachkommastellen genau", dass . Übrigens ist das Buch von Deuflhard sehr empfehlenswert (ich benutze es gerade als Prüfungsvorbereitung).

Gruß, therisen
tigerbine Auf diesen Beitrag antworten »

Meinst du das hier: Buch

Macht der Mehr "Theorie" oder "Praxis"? "Leider" befassen sich im Schnitt die meisten Skripte eher mit der Theorie, d.h. ja meist Analysis und Lineare Algebra. Ist ja auch sicherlich richtig, nur beim programmieren/umsetzen der Ideen hört es dann auf. Schade.

GRuß und danke Wink
therisen Auf diesen Beitrag antworten »

Es gibt mittlerweile auch eine Auflage von 2008: http://www.degruyter.de/cont/fb/ma/detai...9783110203547-4
Ich finde, dass dort viele praxisrelevante Bemerkungen enthalten sind, z.B. auch der Abschnitt über Google. Ferner gibt es eigentlich zu jedem Algorithmus einen Pseudo-Code, den man leicht in einer beliebigen Programmiersprache umsetzen kann (vorzugsweise natürlich Matlab).
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »