Strona główna Matematyka i Analiza Ułamki łańcuchowe — najlepsze przybliżenia wymierne

🔢 Ułamki łańcuchowe — najlepsze przybliżenia wymierne

Rozwiń dowolną liczbę rzeczywistą w ułamek łańcuchowy [a0; a1, a2,…] i patrz, jak reduktory p/q spiralnie zbiegają na osi liczbowej, dowodząc, że są najlepszymi przybliżeniami wymiernymi przy każdym mianowniku.

Matematyka i Analiza2DŁatwy60 FPS
continued-fractions ↗ Otwórz osobno
Interfejs samej symulacji jest w języku angielskim.

O tej symulacji

Każdą liczbę rzeczywistą można zapisać jako ułamek łańcuchowy: a₀ + 1/(a₁ + 1/(a₂ + 1/(a₃ + …))), gdzie aₙ to nieujemne liczby całkowite zwane ilorazami cząstkowymi. Dla liczb wymiernych rozwinięcie się kończy, a dla niewymiernych trwa w nieskończoność. Przybliżenia wymierne powstałe przez obcięcie rozwinięcia — zwane reduktorami (zbieżnikami) — są najlepszymi możliwymi przybliżeniami wymiernymi danej liczby: żaden ułamek o mniejszym mianowniku nie jest bliżej.

🔬 Co pokazuje

Symulacja rozwija wybraną liczbę rzeczywistą w ułamek łańcuchowy i animuje kolejne reduktory p/q, pokazując, jak spiralnie zbiegają do właściwej wartości na osi liczbowej. Dostępne są też widoki drzewa Sterna-Brocota oraz wykresu błędu przybliżenia, ilustrujące tę samą zbieżność z różnych perspektyw.

🎮 Jak korzystać

Wybierz jedną z gotowych stałych — φ, π, e, √2, √3 lub γ — albo wpisz własną liczbę w polu tekstowym i zatwierdź przyciskiem Set. Suwak Max terms ustala, ile ilorazów cząstkowych obliczyć, a Animation speed reguluje tempo animacji. Przełączaj widoki (Number Line / Stern-Brocot / Error Chart) przyciskami u dołu, a Pause i Reset pozwalają zatrzymać lub uruchomić animację od nowa.

💡 Czy wiesz, że...

Złoty podział φ = (1+√5)/2 ma najprostszy możliwy ułamek łańcuchowy: [1; 1, 1, 1, …] — same jedynki — co czyni go najwolniej zbieżnym spośród wszystkich liczb niewymiernych i przynosi mu miano „najbardziej niewymiernej liczby”. Z kolei π ≈ 355/113, wynikające z ciągu reduktorów 3, 22/7, 333/106, 355/113, …, jest dokładne do 7 cyfr znaczących — przybliżenie znane już w starożytnych Chinach.

Najczęściej zadawane pytania

Dlaczego reduktory są najlepszymi przybliżeniami wymiernymi?

Reduktory pₙ/qₙ spełniają nierówność |x − pₙ/qₙ| < 1/(qₙ · qₙ₊₁). Z twierdzenia Legendre'a wynika, że każdy ułamek p/q spełniający |x − p/q| < 1/(2q²) musi być reduktorem liczby x. Oznacza to, że wśród wszystkich ułamków o mianownikach do qₙ włącznie, reduktor pₙ/qₙ daje najbliższe przybliżenie x — własność wykorzystywaną w projektowaniu przełożeń zębatych, reformie kalendarza i rozstawie anten.

Co sprawia, że φ jest „najbardziej niewymierną” liczbą?

Z twierdzenia Hurwitza wynika, że każdą liczbę niewymierną x można przybliżyć nieskończenie wieloma ułamkami p/q spełniającymi |x − p/q| < 1/(√5 · q²). Stała √5 jest optymalna — nie da się jej zastąpić żadną większą stałą dla wszystkich liczb niewymiernych — a liczbą, dla której ta granica jest ściśle osiągana, jest właśnie φ. Jej ułamek łańcuchowy złożony z samych jedynek [1; 1, 1, 1, …] daje najwolniej rosnące mianowniki (liczby Fibonacciego), co oznacza, że każdy kolejny reduktor przynosi najmniejszą możliwą poprawę jakości przybliżenia.

Jak ułamki łańcuchowe są wykorzystywane w projektowaniu kalendarza?

Rok zwrotnikowy trwa około 365,24219 dnia. Jego rozwinięcie w ułamek łańcuchowy to [365; 4, 7, 1, 3, 5, …], co daje reduktory 365/1, 1461/4 (kalendarz juliański, jeden rok przestępny na 4 lata), 10592/29, 128953/353 — jednak kalendarz gregoriański wykorzystuje 97 lat przestępnych na 400 lat (365 + 97/400 = 365,2425 dnia), co ściśle odpowiada reduktorowi 146097/400. Niewielki błąd resztkowy oznacza, że kalendarz gregoriański przesuwa się o jeden dzień co około 3030 lat.

Jakie jest rozwinięcie √2 w ułamek łańcuchowy?

√2 = [1; 2, 2, 2, 2, …] — okresowy ułamek łańcuchowy z powtarzającym się blokiem [2]. Z twierdzenia Lagrange'a wynika, że każda niewymierność kwadratowa (pierwiastek równania kwadratowego o współczynnikach całkowitych) ma ostatecznie okresowy ułamek łańcuchowy, i na odwrót. Reduktory √2 to 1/1, 3/2, 7/5, 17/12, 41/29, 99/70, … — są to stosunki liczb Pella, spełniające pₙ² − 2qₙ² = ±1 (równanie Pella).

Jak algorytm Euklidesa łączy się z ułamkami łańcuchowymi?

Rozwinięcie liczby wymiernej a/b w ułamek łańcuchowy powstaje bezpośrednio z algorytmu Euklidesa: a = q₀b + r₀, b = q₁r₀ + r₁, r₀ = q₂r₁ + r₂, … Ilorazy q₀, q₁, q₂, … to dokładnie ilorazy cząstkowe aₙ ułamka łańcuchowego. Oznacza to, że obliczanie ułamków łańcuchowych i obliczanie NWD to ten sam algorytm, a najgorszym możliwym przypadkiem dla algorytmu Euklidesa są kolejne liczby Fibonacciego — znów ze względu na ułamek łańcuchowy φ złożony z samych jedynek.

Czym jest uogólniony ułamek łańcuchowy?

Uogólniony ułamek łańcuchowy dopuszcza liczniki różne od 1: a₀ + b₁/(a₁ + b₂/(a₂ + b₃/(…))). Wiele ważnych stałych matematycznych ma eleganckie reprezentacje w postaci uogólnionych ułamków łańcuchowych: π = 4/(1 + 1/(3 + 4/(5 + 9/(7 + 16/…)))) (wzór Brounckera, 1655) oraz e = 2 + 1/(1 + 1/(2 + 2/(3 + 3/(4 + …)))). Takie uogólnienia często zbiegają szybciej niż standardowy ułamek łańcuchowy, ale tracą własność „najlepszego przybliżenia”.

Czy ilorazy cząstkowe π są losowe?

Ilorazy cząstkowe π to [3; 7, 15, 1, 292, 1, 1, 1, 2, 1, 3, 1, 14, …]. Duża wartość 292 na czwartej pozycji wyjaśnia, dlaczego 355/113 jest tak wyjątkowo dobrym przybliżeniem: kolejny reduktor wykorzystuje w liczniku 355×292 + 333 = 104 348, co daje ogromny skok dokładności. Mimo rozległych obliczeń ilorazów cząstkowych π nie istnieje dowód, że mają one rozkład normalny (to otwarty problem, czy π jest liczbą „normalną” w sensie ułamków łańcuchowych).

Czym są ciągi Fareya i jak łączą się z ułamkami łańcuchowymi?

Ciąg Fareya Fₙ to rosnący ciąg wszystkich ułamków nieskracalnych o mianownikach ≤ n w przedziale [0, 1]. Sąsiednie ułamki a/b i c/d w Fₙ spełniają własność medianty |bc − ad| = 1, a ich medianta (a+c)/(b+d) jest kolejnym ułamkiem wstawianym w miarę wzrostu n. Drzewo Sterna-Brocota, które zawiera każdą dodatnią liczbę wymierną dokładnie raz, jest zbudowane w całości z mediant, a ścieżka do dowolnego ułamka w drzewie koduje jego rozwinięcie w ułamek łańcuchowy — gałęzie w lewo odpowiadają ilorazom cząstkowym.

Jak ułamki łańcuchowe pomagają projektować przekładnie zębate?

Przy projektowaniu przekładni zębatej o precyzyjnym stosunku prędkości ułamki łańcuchowe pozwalają znaleźć przybliżenie o najmniejszej liczbie zębów mieszczące się w zadanym błędzie. Na przykład, aby przybliżyć stosunek 1 rok/1 dzień ≈ 365,24219, reduktory 4/1 (przybliżenie zgrubne), 29/8 (lepsze), 97/27, 365/100 sugerują praktyczne kombinacje zębatek. Antyczne zegary astronomiczne i orreria wykorzystywały analizę ułamków łańcuchowych, by dobrać liczby zębów utrzymujące mechaniczny kalendarz w zgodzie z rokiem słonecznym przez dekady.

Podobne symulacje