Autor: Sylwester Bogusiak, MARTE.BEST
Łódź: 04/01/2023 AD
Na wstępie chcę przedstwić dwa filmy, które opowiadają o skomplikowanych metodach obliczania wartości liczby Pi.
Pierwszy z nich.
A Brief History of Pi
Drugi film mówi od razu na wstępie o bardzo skomplikowanej formule Chudnowskiego. Opis w wiki. https://en.wikipedia.org/wiki/Chudnovsky_algorithm
How is pi calculated to trillions of digits?
A tutaj opis po polsku z kilkoma bardzo trudnymi wzorami: https://www.obliczeniowo.com.pl/16
Przykładowe wzory z tej strony:
Wyznaczenie liczby π możliwe jest również przy użyciu wzoru Leibniz-a:
Zapis wyrażenia w postaci Latex:
\pi=4\cdot\sum_{n=1}^{\infty }{\frac{\left(-1\right)^{n-1}}{2\cdot n-1}}=4\cdot\left(1-\frac{1}{3}+\frac{1}{5}-\frac{1}{7}+\frac{1}{9}-…\right)
Poniżej tego wzoru jest taka adnotacja:
Szereg [2] jest niestety wolno zbieżny, co oznacza, że aby obliczyć π z odchyleniem od rzeczywistej jej wartości mniejszym od 0.00001 trzeba zsumować aż 100 001 elementów tego szeregu. W ten sposób uzyskana liczba π ma wartość równą 3.14160265349 a jej odchylenie wynosi około 0.0000099999. Aby uzyskać większą dokładność, konieczne jest zliczenie znacznie większej liczby elementów szeregu potęgowego [2].
Leibnitz był wielkim matematykiem. Warto o Nim poczytać w wiki: https://en.wikipedia.org/wiki/Gottfried_Wilhelm_Leibniz
Kolejny wzór, który wybrałem z tej stron wynika ze stwierdzenia że:
Dla n→∞ bn=2·π·r, w związku z czym dla kolejnych elementów ciągu bn można uzyskać coraz to dokładniejszą wartość liczby π w następujący sposób:
Zapis wyrażenia w postaci Latex:
c_n=\frac{2^{n+1}}{2\cdot r}\cdot\sqrt{\left(r-\sqrt{r^2-\left(\frac{a_{n-1}}{2}\right)^2}\right)^2+\left(\frac{a_{n-1}}{2}\right)^2}
I adnotacja:
Dla 24 elementu ciągu [12] uzyskuje się przybliżoną wartość liczby π = 3.14159265358979, któremu odpowiada 33 554 432-kąt foremny.
Proszę się zastanowić. Mamy w użyciu trude wzory do obliczania wartości liczby Pi. Żadne nie są doskonałe.
Najprostsza metoda wynikająca z teorii, że Pi to stosunek obwodu okręgu do jego średnicy jest mało poręczna. a ta wiedza to wciąż jest największe odkrycie w historii ludzkości.
Zapiszmy ten wzór:
Pi = O / d
O = obwód
d = średnica
Wiemy, że gdy średnica będzie równa 1 m to obwód będzie równy w przybliżeniu 3.14 m
I to wszystko. Zwykłemu człowiekowi przybliżenie do dwóch miejsc po przecinku wystarczy, żeby sobie uświadomił, że to liczba niewymierna.
Moim zdaniem dokładniejszą wartość liczby Pi można obliczyć znacznie łatwiejszym sposobem od tych zaawansowanych, które pokazałem na początku i tylko trochę bardziej skomplikowanym niż Pi = O / d.
Kto interesuje się trochę tematyką złotej proporcji i starożytnych budowli, może natkął się na wzór wskazujący zależność pomiędzy liczbą Pi i Phi oraz Egipskim Kubitem oznaczanym czasem jako RC czyli Royal Cubit albo też jako CB czyli Cubit.
Mamy zatem wzór:
Pi = Phi ^ 2 + RC.
RC (royal egyptian cubit) to Pi/6
zatem mamy:
Pi = Phi^2 + Pi/6
stąd:
Pi – Pi/6 = Phi^2
i dalej:
5*Pi=6*(Phi^2)
zatem:
Pi = 6 * (Phi^2) / 5
Wiemy, że dobre przybliżenie Phi uzyskamy dzieląc przez siebie jak największe wartości ciągu Fibonacciego. Wartości ciągu można obliczyć za pomocą formuły:
f(n)=f(n-2)+f(n-1)
f(n) – to liczba ciągu Fibonacciego
f(n-1) – to poprzednia liczba ciągu Fibonacciego itd…
Pierwsze wyrazy ciągu Fibonacciego to:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144.
Więcej w wiki: https://en.wikipedia.org/wiki/Fibonacci_number
Skorzystajmy z tego wzoru aby obliczyć Phi, więc:
Phi = f(n) / f(n-1).
Podstawiam tą formułe do wzoru i mamy:
EUREKA!!! To jest dopiero odkrycie.
Pi = (6 * (f(n) / f(n-1) ) ^ 2 ) / 5
Mamy wzór, zróbmy więc pierwsze obliczenia.
Skorzystajmy ze strony
https://r-knott.surrey.ac.uk/Fibonacci/fibtable.html
na której jest lista 300 kolejnych liczb Fibonacciego.
Weźmy dwie ostatnie wartości:
f(300) = 222232244629420445529739893461909967206666939096499764990979600
i f(299) =137347080577163115432025771710279131845700275212767467264610201
Pi = (6 * ( f(n) / f(n-1) )^2 ) / 5
zatem:
Pi = (6* (222232244629420445529739893461909967206666939096499764990979600 / 137347080577163115432025771710279131845700275212767467264610201) ^2) / 5
Kalkulator na którym dzieliłem te wartości ciągu Fibanacciego podał wartość liczby Phi z wystarczającą precyzją do dalszych obliczeń. To niby tylko 15 miejsc po przecinku ale chyba udowadnia coś o czym powiem niżej.
Pi = (6 * (1.618033989)^2)/5
Pi = 3.1416407865
Zatem jest to wartość, która odbiega już na 4 miejscu po przecinku od wartości uważanej za prawidłową.
Tutaj opis i wartość liczby Pi https://en.wikipedia.org/wiki/Pi
π≈3,14159 26535 89793 23846 26433 83279 50288 41971 69399 37510
Rzekomo prawidłowa to wartość.
A może dotychczasowe formuły były zwyczajnie mało dokładne?
Tego nie wiem.
Ale skoro wiemy, że złotą liczbę Phi można wyrazić za pomocą prostej formuły o postaci:
Phi = (sqrt(5) +1) / 2
i to jest dość dobre brzybliżenie.
Podaje ten wzór nawet wikipedia https://en.wikipedia.org/wiki/Golden_ratio
To czemu nie uznać, że formuła dla Pi o postaci tylko ciut bardziej rozbudownej.
Pi = 6 * (((sqrt(5)+1)/2)^2)/5
nie daje właśnie tej poprawnej wartości?
A może współczesna nauka za bardzo zagmatwała te obliczenia w związku z Pi?
Moja prosta kalkulacja wskazała, że ta liczba ma jednak wartość Pi = 3.1416407865
A jak wynika z opisu poniżej, to właśnie Pi = 3,1416 jest w proporcjach Wielkiej Piramidy.
Cytat:
Ciekawostką jest, że jeden z cudów świata, jakim jest piramida Cheopsa, zawiera w swoich wymiarach liczbę π z dokładnością do czterech miejsc po przecinku. Gdy badacze obliczyli stosunek sumy dwóch boków podstawy budowli do jej wysokości, okazało się, że wynosi 3,1416! Do dziś trwają dyskusje, czy to osobliwy przypadek, czy też jednym z budowniczych był nieznany nam geniusz. Przypomnijmy, że budowę piramidy ukończono około roku 2560 przed Chrystusem.
Czytaj więcej: https://histmag.org/Liczba-pi-Zmagania-z-ludolfina-6466
Ta wartość zgadzały by się też z tym co uzyskujemy przy zastosowaniu wzoru Leibnitza, właśnie z dokładnością co do 4 miejsca po przecinku, gdzie powinno być 6, a nie 5.
Zatem zadaj sobie pytanie kolego i koleżanko.
Kto tu ma rację?
Gottfried Wilhelm Leibniz ma rację? Ja potwierdzam jego rację swoimi kalkulacjami za pomocą prostego równania. On to zrobił inaczej, ale wynik ten sam i to sie liczy… wynik. Rozumiesz? Późniejsze kalkulacje mogły być tylko gorsze.
Gottfried Wilhelm Leibniz był geniuszem… Mistrzem matematyki, filozofem, którego niewielu potrafi zrozumieć.
Zatem jego wartość Pi = 3.1416… i to jest potwierdzone … zrozum, że liczby nie kłamią.
Może te trzy wzory są jednak godne uwagi? Przypomnijmy je sobie.
Pi = 6 * (Phi ^ 2) / 5
Pi = 6 * ( ( (sqrt(5) + 1) / 2 ) ^ 2) / 5
Pi = (6 * (f(n) / f(n-1) ) ^ 2 ) / 5
Zarówno drugi jak i trzeci wzór jest dla mnie wprost genialny i niezwykle prosty do zastosowań w algorytmach komputerowych.
Wartośćci złotej liczby Phi niestety nie ma wbudowanych w postaci zmiennej we współczesne kalkulatory, kompilatory języków itd. Ale liczba Pi i liczba Eulera bywa często zapisywana jako zmienna typu “const” czyli jakby stałego. Jest nawet odzielny przycisk na kalkulatorach z liczbą Pi lub liczbą Eulera.
Nie rozumiem dlaczego ze złotą liczbą Phi nie jest podobnie.
Reasumując.
Przedstawiłem kolejne i raczej nowe wzory na obliczanie wartości liczby Pi.
Są proste i raczej logiczne w swojej formie.
Może przez to, że świat zna nieprawidłowe przybliżenie liczby Pi, to dzieje się tyle złego wokół Nas? Może przez to nie możemy osiągnąć wystarczającej precyzji w architekturze i budownictwie i nasze budowle są mniej trwałe w porówaniu do wiekowych Piramid?
Może naukowcy wciąż obliczają wartości liczby Pi, aby się przekonać czy aby napewno uzyskano prawidłowy wynik?
Rozumiecie?
Takiego wzoru jak Wam przedstawiłem, bazującego na liczbach ciągu Fibonacciego i złotej liczbie do obliczania wartości liczby Pi wcześniej chyba nie było. Może powinniście mnie zgłosić do nagrody Abela? 😉 ? Może kosmici jednak przylecą mi uścisnąć rękę… ? 😉
Jak przetestować tę nową wartośc Pi czy jest rzeczywiście lepszym przybliżeniem niż powszechnie przyjęta przez mainstream i resztę świata wartość?
No tak. Dalej nie wierzycie, że to ma sens… Otóż ma.
„Stań po właściwej stronie, nawet jeśli oznacza to, że będziesz stał sam.” – autor John Doe Zweinstein aka anonymous.
Zatem ja kontra reszta świata w kilku przykładach tylko:
Przyglądajcie się uważnie i czytajcie ze zrozumieniem.
A więc jak przetestowałem tę wartość?
Podstawiłem nową wartość pod zmienna nazwaną Pi w programie napisanym w języku C, który rysuje okrąg w kolorze białym, na szarym tle, w rozdzielczości zaledwie 320×200 px.
Dlaczego tylko taka niska rozdzielczość? Aby oko dostrzegło dobrze piksele z których rysowany jest okrąg. Widać wtedy każdy odstający choć trochę piksel.
Zrobiłem kilka zrzutów ekranu przy ustawiniu grafiki ekranu 1920x1080px i rozdzielczości okna programu 320×200 px, przyjrzyjcie się dobrze.
Najpierw dla Pi = 3.1416407865
Zrzut 1 – ( gładka linia z pikseli rysuje cały okrąg prawie perfekcyjnie )
Pi = 3.141592653589793… lub nawet z większą precyzją. Podstawiłem do zmiennej Pi zdefiniowaną stałą w kompilatorze języka C pod nazwą M_PI.
Ta stała jest napewno poprawna i zgodna z tym co podaje reszta świata na temat rzekomej wartości liczby. Używam środowiska IDE Code::Blocks z kompilatorem Gnu C.
Zrzut 2 – ( linia tworząca okrąg nie jest taka gładka, pewne piksele odstają. Można to zauważyć zwłaszcza centralnie na dole i po prawej. Zwróćcie uwagę, że okrąg jest w trochę mniejszej skali, a mimo to bardziej widać jego nieregularność niż na pierwszym zrzucie. ) – to moja subiektywan opinia
Zrzut 3 – ( Powiększony ten sam okrąg co wyżej. Linia tworząca okrąg też nie jest gładka mimo większej skali niż na zrzucie 1. Wyraźnie widać, że te piksele u dołu i po prawej coś nie leżą tak jak powinny. Zatem ten sam okrąg niezależnie od skali jest „mniej gładki”, przejścia pomiędzy pikselami nie są tak ciągłe i wyrównane jak na zrzucie 1) – subiektywna opinia
Po zmianie rozdzielczości ekranu na 1920×1080 px i rozdzielczości okna ekranu 800×600 wyniki są takie:
Dla Pi = 3.1416407865
Zrzut 4 – ( gładka linia z pikseli rysuje cały okrąg prawie perfekcyjnie )
Zrzut 5 – ( gładka linia z pikseli rysuje cały okrąg prawie perfekcyjnie )
Zrzut 6 – ( gładka linia z pikseli rysuje cały okrąg prawie perfekcyjnie )
Dla Pi = 3.14159265358979323846…
Zrzut 7 – ( mniej wygładzona linia z pikseli rysuje cały okrąg )
Zrzut 8 – ( mniej wygładzona linia z pikseli rysuje cały okrąg )
Zrzut 9 – ( mniej wygładzona linia z pikseli rysuje cały okrąg )
To narazie wszystko z grafik do porównania. Wciąż nie wierzysz w to co czytasz?
Spokojnie. To tylko liczba.
Wartość dziesiętna obliczna za pomocą algoryutmu FFCPI jest jednak błędnym sposobem. Wielu uczonych z całego swiata, obliczało wartość liczby Pi i jak widzisz zgadzają się tylko 3 cyfry po przecinku. Zatem pytanie do Ciebie. Co byś zrobił z tą wiedzą?
Może zwyczajnie podpowiedz znajomemu, przyjacielowi, nauczycielowi w szkole, że znasz nową formułę do obliczania wartości liczby Pi. Ale nie forsuj, że to jedyna słuszna metoda. Powiedz, że ma mały margines błędu, ale jest niesamowicie szybka.
Zobaczmy jeszcze 3 zestawy rysowanych okręgów w rozdzielczości naprawdę niskiej bo 320×200 px, czyli tak jak DOS-owy tryb graficzny 13h.
1. Okregi wyrysowane metodą Bresenhama, bez użycia Pi.
2. Pi kanoniczne
3.Pi złote (nie mylić ze złotą liczbą Phi)
Użyj opisanych tutaj wzorów do obliczania wartości liczby Pi. Kalkuluj, obliczaj, rysuj używając wiedzy o związku złotej proporcji z liczbą Pi
Dziel się tą wiedzą za darmo.
Zobacz jak wygląda kawałek kodu źródłowego programu, który rysuje okręgi.
Wykorzystuję tu bibliotekę graficzną Allegro 4.2 by Shawn Hargreaves.
Główna pętla programu, która rysuje kolejne piksele okręgu wykorzystuje taki prosty i znany większości programistów kawałek kodu w języku C.
W użyciu typ zmiennej double.
Double w C to typ danych używany do przechowywania bardzo precyzyjnych danych zmiennoprzecinkowych lub liczb (do 15 do 17 cyfr). Służy do przechowywania dużych wartości liczb dziesiętnych. Przechowywane wartości są dwukrotnie większe niż dane, które można przechowywać w typie danych zmiennoprzecinkowych. Dlatego nazywa się go podwójnym typem danych. Każda zmienna zadeklarowana przy użyciu typu danych double w C ma rozmiar 8 bajtów (lub 64 bity).
#define pi 3.1416407865
double zoom=1,scr_x,scr_y;
double theta,ti;
double xc,yc,c,r,x,y;
scr_x=0;
scr_y=0;
c=1;
r=c*zoom;
//set the initial point on the arc drawn with the center
x=xc+scr_x;
y=yc+scr_y;
for(ti=0;ti<=360; ti++) //draw the circle
{
theta=(double)(ti/180.0)*pi;
x=(xc+(r*cos(theta)));
y=(yc+(r*sin(theta)));
putpixel(back_screen,x,y,WHITE);
}
W tych wątkach jest opisany bardziej szczegółowo ten temat:
Formuły do obliczania wartości liczby Pi. Wzory, procedury, obliczenia. Liczby Phi, Pi, Eulera.
https://www.elektroda.pl/rtvforum/topic4015739.html
Calculating the value of Pi. A new formula using Fibonacci numbers and the golden Phi number.
To wszystko.
Kopiowanie i edycja wielce wskazane.
Enjoy!!!
Licencja CC.
Więcej na www.boskaproporcja.pl