|
Serwis Edukacyjny w I-LO w Tarnowie
Materiały dla uczniów liceum |
Wyjście Spis treści Wstecz Dalej
Autor artykułu: mgr Jerzy Wałaszek |
©2026 mgr Jerzy Wałaszek
|
| SPIS TREŚCI REMANENT |
|
| Podrozdziały |
Metoda Prostokątów (ang. Rectangle Method, z jej wariantami: lewymi, prawymi i środkowymi) to jedna z najstarszych i najbardziej intuicyjnych technik obliczeniowych w historii matematyki. Pomimo że dzisiaj kojarzymy ją głównie z formalną definicją całki Riemanna, jej początki można znaleźć już tysiące lat wstecz, na długo przed narodzinami współczesnego rachunku różniczkowego i całkowego.
Poniżej przedstawiamy krótko chronologiczny przegląd rozwoju tej metody – od starożytnych intuicji geometrycznych po rygorystyczną analizę matematyczną.
Przed sformułowaniem pojęcia „całki”, matematycy próbowali rozwiązywać problem kwadratury, czyli znajdowania pól powierzchni figur o zakrzywionych brzegach.
Eudoksos z Knidos, a następnie Archimedes z Syrakuz (III w. p.n.e.), rozwinęli metodę ekshaustii (wyczerpywania). Wpisywali oni i opisywali na badanych obszarach (np. pod parabolą lub wewnątrz koła) wielokąty o znanych polach. Zwiększając liczbę boków, „wyszukiwali” dokładną wartość pola. Choć nie używali pojęcia „prostokąta” w sensie siatki kartezjańskiej, zasada aproksymacji sumą prostych figur geometrycznych była identyczna z ideą dzisiejszych sum prostokątów.
Tabliczki pismem klinowym z około 200 r. p.n.e. dowodzą, że babilońscy astronomowie używali geometrycznych przybliżeń (w tym trapezów i prostokątów) do obliczania drogi i pozycji Jowisza na niebie. Był to pierwszy znany przypadek wykorzystania tej idei do analizy ruchu.
Nicole Oresme (XIV w.). Ten francuski filozof i matematyk jako jeden z pierwszych zaczął geometrycznie reprezentować intensywność cech (np. prędkość jako funkcję czasu). Dzielił czas na małe odcinki i przybliżał przebytą drogę za pomocą sumowania „pasków”, co bezpośrednio odpowiadało geometrycznej idei metody prostokątów.
Bonaventura Cavalieri (XVII w.). W 1635 roku włoski matematyk sformułował geometrię niepodzielnych (łac. indivisibles). Postrzegał on figury płaskie jako złożone z nieskończenie wielu równoległych linii (odcinków). Przejście od nieskończenie cienkich linii do „pasków” o mierzalnej szerokości stanowiło bezpośredni pomost techniczny do algorytmu prostokątów.
W drugiej połowie XVII wieku Sir Isaac Newton oraz Gottfried Wilhelm Leibniz niezależnie odkryli podstawowe twierdzenie rachunku całkowego, łącząc pochodne z całkami.
Leibniz postrzegał całkę jako sumę nieskończenie wielu nieskończenie małych prostokątów o szerokości \(dx\) i wysokości \(f(x)\). To właśnie od słowa łacińskiego summa (suma) wprowadził on charakterystyczny znak całki \(\int \) (stylizowaną literę S). W tamtym okresie metoda prostokątów przestała być jedynie geometryczną sztuczką, a stała się fundamentalną intuicją stojącą za nowym aparatem matematycznym.
Mimo sukcesów Newtona i Leibniza, rachunek całkowy przez ponad stulecie opierał się na nieostrym pojęciu „wielkości nieskończenie małych”. Dopiero w XIX wieku nastąpiła pełna rygoryzacja matematyczna.
Bernhard Riemann (1854 r.). Niemiecki matematyk zdefiniował całkę w sposób całkowicie uniezależniony od pojęcia pochodnej. Wprowadził konstrukcję znaną dziś jako suma Riemanna. Podzielił przedział na skończoną liczbę podprzedziałów, a nad każdym z nich wzniósł prostokąt o wysokości równej wartości funkcji w dowolnym punkcie tego podprzedziału. Pokazał, że jeśli przy zagęszczaniu podziału suma pól zmierza do jednej granicy, funkcja jest całkowalna.
Gaston Darboux (1875 r.). Uporządkował teorię Riemanna, wprowadzając sumy dolne (metoda prostokątów wpisanych/lewych/prawych w zależności od monotoniczności) oraz sumy górne (prostokąty opisane). Udowodnił, że zbieżność obu tych skrajnych wariantów metody prostokątów definiuje istnienie całki.
Wraz z pojawieniem się pierwszych maszyn liczących i komputerów w XX wieku, metoda prostokątów zyskała nowe życie w analizie numerycznej. Została sklasyfikowana jako najprostszy przypadek wzorów Newtona-Cotesa stopnia zerowego (gdzie funkcję podcałkową przybliża się wielomianem stopnia 0, czyli funkcją stałą).
Choć w praktyce inżynierskiej szybciej wyparto ją na rzecz dokładniejszych metod (takich jak metoda trapezów czy metoda Simpsona), wariant środkowy (ang. Midpoint Rule) pozostał ceniony za optymalny stosunek prostoty do dokładności (posiada ten sam rząd zbieżności co metoda trapezów, mimo prostszej konstrukcji).
W przeciwieństwie do współczesnej matematyki, która opiera się na formalnej logice symbolicznej i teorii zbiorów, starożytni „widzieli” matematykę poprzez kształty, proporcje i ruch.
Ich intuicje charakteryzowały się kilkoma kluczowymi cechami:
Podsumowując: starożytna intuicja matematyczna była niezrównanym mistrzostwem wyobraźni przestrzennej. Tam, gdzie my dziś używamy skomplikowanych wzorów algebraicznych, oni używali oka, harmonii, proporcji i fizycznego poczucia przestrzeni.
Metoda obliczania całki oznaczonej za pomocą prostokątów jest następująca:
Mamy pewną funkcję \(y = f(x)\), której całkę oznaczoną chcemy policzyć w wybranym przedziale \({[x_p;x_k]}\). Zgodnie z definicją wartość całki oznaczonej jest równa polu obszaru pod wykresem funkcji. Pole jest dodatnie, gdy obszar znajduje się ponad osią OX, a ujemne, gdy obszar jest pod osią OX. Pola tych obszarów są sumowane z uwzględnieniem znaku pola.

Przedział \({[x_p;x_k]}\) wypełniamy \(n\) w równych odstępach punktami:

Aby równo rozmieścić punkty \(x_i\) w przedziale \({[x_p;x_k]}\), musimy znaleźć wartość odstępu \(h\) pomiędzy dwoma sąsiednimi punktami. Wyliczamy ją ze wzoru:
Dlaczego tak? Długość przedziału na osi OX jest równa różnicy współrzędnych \(x\) jego końca i początku, czyli \({x_k - x_p}\). A dlaczego tę długość dzielimy przez \({n - 1}\)? Spójrzmy niżej.
Każde dwa kolejne punkty \(x_i\) wyznaczają jeden podprzedział (segment):
| Liczba punktów | Liczba podprzedziałów | Podział przedziału |
| n = 2 | n - 1 = 2 - 1 = 1 |
|
| n = 3 | n - 1 = 3 - 1 = 2 |
![]() |
| n = 4 | n - 1 = 4 - 1 = 3 |
|
| n = 5 | n - 1 = 5 - 1 = 4 |
![]() |
| ... | ... | ... |
Jak widzisz, liczba podprzedziałów jest zawsze o 1 mniejsza od liczby punktów rozłożonych równomiernie w przedziale \({[x_p;x_k]}\). Dlatego, aby obliczyć szerokość \(h\) podprzedziału (wszystkie podprzedziały mają tę samą szerokość), szerokość całego przedziału dzielimy przez liczbę podprzedziałów, a ta jest równa liczbie punktów minus jeden, co wyjaśnia nasz wzór.
Gdy znamy szerokość \(h\), czyli odległość pomiędzy każdymi dwoma kolejnymi punktami podziałowymi:
możemy prosto wyznaczyć każdy z punktów podziałowych. Pierwszy punkt \({x_1 = x_p}\). Ostatni punkt \({x_n = x_k}\). Pozostałe punkty wyliczymy dodając do \(x_p\) odpowiednią ilość szerokości \(h\):
Po tym wstępie możemy przejść do właściwej metody prostokątów. Metoda ta występuje w trzech odmianach. Obszar pomiędzy wykresem funkcji \({y = f(x)}\) wypełniamy prostokątami o szerokości \(h\) i wysokości uzależnionej od wartości funkcji.
Metoda prostokątów lewostronnych (ang. Left Riemann Sum lub Left Endpoint Rule), wysokość każdego prostokąta wyznacza wartość funkcji na początku podprzedziału, czyli z lewej strony, stąd pochodzi nazwa tej metody.

Obliczamy wartości funkcji w początkach podprzedziałów, czyli z lewej strony:
Obliczamy pole prostokąta zbudowanego na każdym podprzedziale:
Pola prostokątów sumujemy i otrzymujemy przybliżoną wartość całki oznaczonej. Zwróć uwagę, iż wartości \(y_i\) leżące pod osią OX są ujemne, zatem pola prostokątów pod osią będą również ujemne, co jest zgodne z definicją całki oznaczonej. Przy sumowaniu pól prostokątów możemy wyciągnąć ich szerokość \(h\) przed nawias:
I ostatecznie:
Zwróć uwagę, iż całka może być obliczana w locie na podstawie \(i\), \(x_p\) oraz szerokości \(h\).
Metoda prostokątów prawostronnych (ang. Right Riemann Sum lub Right Endpoint Rule) jest dokładnym odpowiednikiem metody prostokątów lewostronnych. Jedyną różnicą jest to, iż jako wysokości prostokątów bierzemy wartości funkcji w prawych krańcach podprzedziałów, czyli od strony prawej.

Wyznaczamy wartości funkcji w końcach podprzedziałów, czyli z prawej strony:
Obliczamy pole prostokąta zbudowanego na każdym podprzedziale:
Pola prostokątów sumujemy i otrzymujemy przybliżoną wartość całki oznaczonej. Przy sumowaniu pól prostokątów możemy wyciągnąć \(h\) przed nawias:
I ostatecznie:
Tak jak poprzednio całka może być liczona w locie na podstawie \(i\), \(x_p\) oraz wyliczonej szerokości \(h\).
Metoda prostokątów punktu środkowego (ang. Midpoint Rule) wyznacza wysokości prostokątów dla podprzedziałów jako wartości funkcji \(f(x)\) w ich środkach.

Na rysunku poglądowym powyżej specjalnie rozszerzyłem podprzedziały, aby lepiej było widać zasadę tworzenia prostokątów.
Współrzędne środków podprzedziałów obliczymy łatwo wg wzoru:
Reszta odpowiada metodzie prawostronnej. Jedynie przesuwamy punkt startowy \(x_p\) o połowę szerokości podprzedziału, co ułatwi rachunki:
Metoda prostokątów punktu środkowego jest najdokładniejszą z tych trzech opisanych metod obliczania całki oznaczonej.
Program liczy całkę oznaczoną:
Całka ta ma wartość dokładną (analityczną) 2. Program liczy całkę dla 100 punktów trzema metodami prostokątów, a następnie wyświetla wyniki porównawcze. Wyjaśnienia są w komentarzach
C++// Całkowanie metodą prostokątów
// (C)2026 mgr Jerzy Wałaszek
// Metody numeryczne 0081
//------------------------------
#define _USE_MATH_DEFINES
#include <iostream>
#include <windows.h>
#include <iomanip>
#include <cmath>
using namespace std;
// Definicje stałych
//------------------
// Liczba punktów
const int N = 100;
// Przedział całkowania
const double Xp = 0;
const double Xk = M_PI;
// Szerokość prostokątów
const double H = (Xk - Xp) / (N - 1);
// Całkowana funkcja
double f(double x)
{
return sin(x) + cos(x);
}
// Metoda prostokątów lewostronnych
double left_r()
{
int i;
double s;
// Wartość całki
s = 0;
for(i = 1; i < N; i++)
s += f(Xp + (i - 1) * H);
s *= H;
return s;
}
// Metoda prostokątów prawostronnych
double right_r()
{
int i;
double s;
// Wartość całki
s = 0;
for(i = 2; i <= N; i++)
s += f(Xp + (i - 1) * H);
s *= H;
return s;
}
// Metoda prostokątów
// punktu środkowego
double middle_r()
{
int i;
double x,s;
// Wartość całki
s = 0;
// Punkt startowy
x = Xp + H / 2;
for(i = 1; i < N; i++)
s += f(x + (i - 1) * H);
s *= H;
return s;
}
// Program główny
//---------------
int main()
{
SetConsoleOutputCP(CP_UTF8);
SetConsoleCP(CP_UTF8);
cout << setprecision(5)
<< fixed;
cout
<< "Obliczanie całki oznaczonej "
"metodami prostokątów:\n\n"
<< "prawostronnych : " << setw(7)
<< right_r() << endl
<< "lewostronnych : " << setw(7)
<< left_r() << endl
<< "punktu środkowego : " << setw(7)
<< middle_r() << endl;
cout << endl;
system("pause");
return 0;
}
|
| Wynik: |
Obliczanie całki oznaczonej metodami prostokątów: prawostronnych : 1.96810 lewostronnych : 2.03157 punktu środkowego : 2.00008 |
Python
(dodatek) # Całkowanie metodą prostokątów
# (C)2026 mgr Jerzy Wałaszek
# Metody numeryczne 0081
#------------------------------
from math import sin, cos, pi
# Definicje stałych
#------------------
# Liczba punktów
n = 100
# Przedział całkowania
xp = 0
xk = pi
# Szerokość prostokątów
h = (xk - xp) / (n - 1)
# Całkowana funkcja
def f(x):
return sin(x) + cos(x)
# Metoda prostokątów lewostronnych
def left_r():
# Wartość całki
s = 0
for i in range(n - 1):
s += f(xp + i * h)
s *= h
return s
# Metoda prostokątów prawostronnych
def right_r():
# Wartość całki
s = 0
for i in range(1, n):
s += f(xp + i * h)
s *= h
return s
# Metoda prostokątów
# punktu środkowego
def middle_r():
# Wartość całki
s = 0
# Punkt startowy
x = xp + h / 2
for i in range(n - 1):
s += f(x + i * h)
s *= h
return s
# Program główny
#---------------
print(f"Obliczanie całki oznaczonej "
f"metodami prostokątów:\n\n"
f"prawostronnych : "
f"{right_r():7.5f}\n"
f"lewostronnych : "
f"{left_r():7.5f}\n"
f"punktu środkowego : "
f"{middle_r():7.5f}\n")
input("Naciśnij Enter...")
|
![]() |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2026 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.