Thema Datum  Von Nutzer Rating
Antwort
16.12.2010 11:14:36 Denny
NotSolved
16.12.2010 14:02:58 Severus
NotSolved
16.12.2010 16:21:23 Holger
NotSolved
16.12.2010 16:45:33 Severus
NotSolved
Rot Aw:Aw:Aw:Aw:Kuriose Nachkommazahlen
16.12.2010 18:20:06 Holger
NotSolved
16.12.2010 15:01:37 Severus
NotSolved
16.12.2010 16:43:24 Denny
NotSolved

Ansicht des Beitrags:
Von:
Holger
Datum:
16.12.2010 18:20:06
Views:
932
Rating: Antwort:
  Ja
Thema:
Aw:Aw:Aw:Aw:Kuriose Nachkommazahlen
Hallo Severus,
der Grund für das Verhalten ist doch simpel. Zahlen, die im Dezimalsystem endlich viele von Null verschiedene Nachkommastellen haben, brauchen das in anderen p-adischen Entwicklungen nicht zu haben und umgekehrt. Kleine Abweichungen sind nicht zu vermeiden. Bei häufiger Addition summieren sich diese bis zu darstellbaren Größen.
Übrigens würde ich das Problem nicht so, sondern nach dem Newtonschen Näherungsverfahren lösen.
Gruß
Holger


Severus schrieb am 16.12.2010 16:45:33:

@Holger: Da hast Du natürlich Recht. Mir ist es eigentlich zuerst darum gegangen den Grund für das Verhalten auszuschließen. Außerdem hat man hier die Möglichkeit über den "Faktor" die Genauigkeit einfach zu ändern.
Severus


Holger schrieb am 16.12.2010 16:21:23:

Ich mische mich nur ungern ein, aber ich glaube, das Problem ist einfacher zu lösen, wenn man nicht direkt mit 0 vergleicht, sondern mit einer kleinen Zahl, die quasi eine Fehlergrenze darstellt, z.B.
if abs(y)<.0000001
Gruß
Holger


Severus schrieb am 16.12.2010 14:02:58:

Es scheint, daß die Schleifenzählung mit Dezimalwerten nicht funktioniert!
Versuche mal

Sub test()
Dim e1 As Double, e2 As Double, e3 As Double, e4 As Double, e5 As Double
Dim a As Double, b As Double, c As Double, d As Double, e As Double, f As Double
Dim x As Double, y As Double, y1 As Double, Polyx As Double
Dim ZeichenFolge As String
e1 = 5#
e2 = 4#
e3 = 3#
e4 = 2#
e5 = 1#
a = 0#
b = 0#
c = 0#
d = 0#
e = 1#
f = 1#



For x = -2000# To 2000# Step 1
y = (a * ((x / 100) ^ (e1))) + (b * ((x / 100) ^ (e2))) + (c * ((x / 100) ^ (e3))) + (d * ((x / 100) ^ (e4))) + (e * ((x / 100) ^ (e5))) + f

If y = 0 Then
Polyx = x
MsgBox ("x Wert für die Polynom Division: ") & Polyx / 100
End If
y1 = y
Next x

End Sub

Severus

Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
16.12.2010 11:14:36 Denny
NotSolved
16.12.2010 14:02:58 Severus
NotSolved
16.12.2010 16:21:23 Holger
NotSolved
16.12.2010 16:45:33 Severus
NotSolved
Rot Aw:Aw:Aw:Aw:Kuriose Nachkommazahlen
16.12.2010 18:20:06 Holger
NotSolved
16.12.2010 15:01:37 Severus
NotSolved
16.12.2010 16:43:24 Denny
NotSolved