Całka Oznaczona

Wprowadzenie do całki oznaczonej

Intuicyjnie całkę oznaczoną można opisać jako sposób na obliczenie pola powierzchni między wykresem funkcji \( f(x) \) w określonym przedziale, gdzie wartości znajdujące się powyżej osi \( x \) mają wartość dodatnią, a poniżej ujemną.

Metody obliczania całek oznaczonych

Jest wiele metod aby w przybliżeniu obliczyć całki, jednak jedną z najprostszych i najbardziej intuicyjnych jest metoda numeryczna, która polega na zsumowaniu wielu mniejszych częsci np. pól prostokątów, trapezów czy parabol. Na tej podstronie przedstawię kilka najpopularniejszych metod numercznych

Metoda Prostokątów

Jest to najprostsza metoda która polaga na narysowaniu określonej liczby jednakowo szerokich prostokątów o wysokościach jednakowych jak wykres funkcji który znajduje się na miejscu tego prostokąta. Można ją zapisać w formie wzoru:

\[ \int_{a}^{b} f(x) \,dx \approx \sum_{i=1}^{n} f(x_i) \Delta x \]

Jej największą zaletą jest prostota, a wadą brak dokładności.

Metoda trapezów

Ta metoda jest podobna do metody prostokątów, jednak posiada znaczące usprawnienie w postaci aprosymacji liniowej w każdym z podprzedziałów (czyli narysowanie prostej pomiędzy dwoma końcami podprzedziału, co daje nam trapez) co znacząco zwiększa dokładność obliczeń. Metodę opisuje następujący wzór:

\[ \int_{a}^{b} f(x) \,dx \approx \frac{\Delta x}{2} \sum_{i=1}^{n} \left( f(x_i) + f(x_{i+1}) \right) \]

Jest ona bardziej dokładna od metody Prostokątów, jednak jest również bardziej skomplikowana

Metoda Parabol (Simpsona)

Metoda paraboli działa na również na zasadzie aproksymacji podprzedziałów, jednak za pomocą paraboli a nie prostych co dodatkowo zwiększa dokładność. Można ją opisać wzorem:

\[ \int_{a}^{b} f(x) \,dx \approx \frac{\Delta x}{3} \sum_{i=1,3,5,...}^{n-1} \left( f(x_i) + 4f(x_{i+1}) + f(x_{i+2}) \right) \]

jest ona niezwykle dokładna ale również dość skomplikowana pod względem obliczeniowym

Zastosowanie całki oznaczonej

Wizualizacja w Geogebrze

Metoda Prostokątów:

Metoda trapezów:

Implementacja w C++

Oto kod C++ obliczający całkę metodą prostokątną:


#include <iostream>
#include <cmath>

using namespace std;

double obliczCalkeProstokatna(double (*funkcja)(double), double poczatek, double koniec, int liczbaPodzialow) {
    double szerokosc = (koniec - poczatek) / liczbaPodzialow;
    double suma = 0.0;
    for (int i = 0; i < liczbaPodzialow; i++) {
        double srodek = poczatek + (i + 0.5) * szerokosc;
        suma += funkcja(srodek) * szerokosc;
    }
    return suma;
}

double przykladowaFunkcja(double x) {
    return sin(x);
}

int main() {
    double poczatek, koniec;
    int liczbaPodzialow;

    cout << "Podaj początek przedziału: ";
    cin >> poczatek;
    cout << "Podaj koniec przedziału: ";
    cin >> koniec;
    cout << "Podaj liczbę podprzedziałów: ";
    cin >> liczbaPodzialow;

    double wynik = obliczCalkeProstokatna(przykladowaFunkcja, poczatek, koniec, liczbaPodzialow);
    cout << "Wynik całkowania: " << wynik << endl;

    return 0;
}