∫ Całka Riemanna
Zobacz, jak sumy Riemanna zbiegają do prawdziwej całki. Porównaj metodę lewych, prawych, środkowych prostokątów i trapezów dla sin(x), x^2, exp(x), |x|, sqrt(x). Bieżący błąd w funkcji N.
O tej symulacji
Ten symulator wizualizuje sumy Riemanna zbiegające do dokładnej całki oznaczonej pięciu funkcji — sin x, x², eˣ, |x| i √x — na regulowanym przedziale [a, b]. Każdy z N podprzedziałów ma stałą szerokość Δx = (b−a)/N, a wysokość jego prostokąta jest próbkowana według jednej z czterech klasycznych reguł — Lewa (koniec f(x₀)), Prawa (koniec f(x₁)), Środkowa (f((x₀+x₁)/2)) lub Trapezowa (½(f(x₀)+f(x₁))) — a następnie sumowana i mnożona przez Δx. Płótno rysuje te N kształtów pod prawdziwą krzywą, podczas gdy dolny pasek wykreśla bezwzględny błąd |suma−dokładna| dla każdego n od 1 do min(N+1, 50), dzięki czemu można obserwować zbieżność pierwszego i drugiego rzędu obok siebie.
🔬 Co pokazuje
Główne płótno nakłada N prostokątów Lewa/Prawa/Środkowa lub paneli trapezowych na prawdziwą krzywą funkcji (narysowaną na biało) między przerywanymi granicami a i b; pasek pod nią wykreśla, jak błąd przybliżenia maleje wraz ze wzrostem N, pozwalając porównać szybkość zbieżności każdej reguły.
🎮 Jak korzystać
Wybierz funkcję (sin x, x², eˣ, |x| lub √x), wybierz regułę sumowania, a następnie przeciągnij suwak Podprzedziały (1–200) oraz suwaki a/b, aby zmienić kształt przedziału. Pasek statystyk pod płótnem aktualizuje sumę Riemanna, dokładną całkę, błąd i Δx na bieżąco przy każdej zmianie ustawień.
💡 Czy wiesz, że...
Symulator przelicza całą krzywą błędu w funkcji N w każdej klatce, ponownie uruchamiając riemannSum() dla n = 1 do min(N+1, 50). Uśrednienie metody środkowej i trapezów w stosunku dwa do jednego — (2׌rodkowa + Trapezowa)/3 — odtwarza regułę Simpsona, której błąd maleje jako O(Δx⁴), znacznie szybciej niż każda z reguł osobno.
Najczęściej zadawane pytania
Dlaczego metoda trapezów rysuje ukośne wierzchołki zamiast płaskich prostokątów?
W funkcji draw() gałąź method === "trap" jako jedyna wypełnia czworokąt łączący (x₀,0) → (x₀,f(x₀)) → (x₁,f(x₁)) → (x₁,0), zamiast pojedynczej próbkowanej wysokości jak Lewa, Prawa i Środkowa. Ten ukośny wierzchołek to dokładnie średnia ½(f(x₀)+f(x₁)) używana przez riemannSum() dla metody trapezów.
Dlaczego wykreślony błąd jest dużo większy dla eˣ niż dla sin x przy tym samym N?
Teoretyczne ograniczenie |błąd| ≤ M·(b−a)³/(12N²) zależy od M = max|f″| na [a,b]. Ponieważ |f″| funkcji sin x jest wszędzie ograniczona przez 1, podczas gdy druga pochodna eˣ to samo eˣ i rośnie nieograniczenie wraz ze wzrostem b, to samo N daje wyraźnie większą krzywą błędu dla eˣ w dolnym panelu.
Dlaczego √x zachowuje się dziwnie, gdy dolna granica a jest ujemna?
FUNS.sqrt.f zwraca 0 dla dowolnego x < 0 (x ≥ 0 ? Math.sqrt(x) : 0), a jej exact() ogranicza obie granice do max(0,·) przed całkowaniem. Przeciąganie a poniżej zera nie ekstrapoluje ujemnego pierwiastka kwadratowego — symulator po prostu traktuje funkcję podcałkową jako zero na tej części przedziału, zgodnie z rzeczywistą dziedziną √x.
Co dokładnie pokazuje dolny panel błędu i dlaczego zatrzymuje się na 50?
Dla każdego n od 1 do min(N+1, 50) skrypt wywołuje riemannSum(fn, a, b, n, method), oblicza różnicę bezwzględną od dokładnej całki i wykreśla wynikową krzywą. Ograniczenie do 50 punktów utrzymuje przeliczenia w każdej klatce tanie, nawet gdy suwak Podprzedziały N jest przesunięty do maksimum 200.
Dlaczego błędy metody środkowej i trapezów maleją szybciej niż lewej i prawej wraz ze wzrostem N?
Metody lewa i prawa próbkują tylko jeden koniec każdego podprzedziału, więc ich lokalny błąd na panel to O(Δx), a błąd całkowity skaluje się jako O(Δx); metody środkowa i trapezów efektywnie uśredniają krzywiznę f w panelu, dając lokalny błąd O(Δx²) i błąd całkowity — tę samą zbieżność drugiego rzędu gwarantowaną przez ograniczenie |błąd| ≤ M(b−a)³/(12N²) pokazane w panelu informacyjnym.