Reihenentwicklung

Anfängerfragen zum Programmieren mit PureBasic.
Tirreg
Beiträge: 5
Registriert: 19.05.2022 12:13

Reihenentwicklung

Beitrag von Tirreg »

Hallo,
vielleicht ist das hier in der falschen Kategorie.
Vielleicht gibt es hier einen Mathematiker der beantworten kann, warum die Reihenentwicklung bei der 7. Nachkommastelle (und nur da!) einen Fehler macht?

Vielen Dank!

Code: Alles auswählen

                                    ; Berechnung der Zahl Pi
Anzahl = 1e7                        ; Anzahl Durchläufe, 1e8 bringt 1 Stelle mehr, dauert aber fast 30s

m = 1
a = 1

For i = 1 To Anzahl                 ; 1 - 1/3 + 1/5 - 1/7 + 1/9 - ... = Pi/4
  c.d = a * 1 / m
  p.d = p + c
  a = a * -1
  m = m + 2
Next

pi.d = p * 4                        ; Fehler auf der 7. Stelle !!!

Debug "Reihenentwicklung:"
Debug pi: Debug 3.1415926535897931 -pi: Debug ""  ; Differenz Reihenentwicklung - 2*ASin(1)

                                    ; 3.1415925535897915  nur auf 7 Nachkommastellen genau   ???
                                    ; kopiert aus Internet:  3.14159265358979323846

Debug "ATan(1) * 4"
Debug ATan(1) * 4: Debug ""         ; 3.1415926535897931   genau und schnell!

Debug "2 * ASin(1)"
Debug 2* ASin(1): Debug ""          ; 3.1415926535897931   genau und schnell!

Debug "4 * ATan(1/5) - ATan(1/239)) * 4"
Debug (4 * ATan(1/5) - ATan(1/239)) * 4   ; 3.1415926535897936   etwas weniger genau
Debug ""

Debug "kopiert aus Internet, 16 Nachkommastellen:"
Debug "3.1415926535897932"                ; gerundet auf 16 Stellen
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6999
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Re: Reihenentwicklung

Beitrag von STARGÅTE »

Das liegt daran, dass diese Reihe ganz fürchterlich schlecht konvergiert und dann auch noch alternierend ist.
Wie du selber geschrieben hast brauchst du sehr viele Iterationen (ganz grob 10^n für n Stellen), weil mit jeder Iteration immer nur 1/2n hinzu addiert ober abgezogen wird. Deswegen ist die 7. Nachkommastelle falsch wenn du nur 1e7 nimmst.
Das die stellen Danach stimmen, ist mehr oder weniger Zufall.
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Tirreg
Beiträge: 5
Registriert: 19.05.2022 12:13

Re: Reihenentwicklung

Beitrag von Tirreg »

Danke!
Antworten