Całkowanie numeryczne - metoda prostokątów
Stronę tą wyświetlono już: 8898 razy
Całkowanie numeryczne metodą prostokątów należy do jednych z najprostszych sposobów numerycznego obliczania przybliżonej wartości całki oznaczonej z danej funkcji f(x) w przedziale od a do b. Metoda ta polega na podzieleniu tegoż przedziału na elementarne prostokąty o wymiarach na f(xi), gdzie i jest indeksem kolejnego prostokąta należącego na pewnego przedziału.
W językach programowania takich jak C++ do wykorzystania tego algorytmu konieczne jest zaimplementowanie algorytmu ONP, który powstał jako modyfikacja algorytmu notacji polskiej Jana Łukasiewicza. W przypadku języków skryptowych takich jak PHP czy Python można posłużyć się funkcją eval, której użycie ze względów bezpieczeństwa jest niewskazane.
Oto przykład prostego programu obliczającego tą metodą całkę podanej na wejście funkcji napisany w Pythonie:
- #!/usr/bin/env python
- def integrate(function, a, b, i):
- dx = (b - a) / i
- integr = 0
- for x in range(i):
- x = x * dx + a
- integr += dx * eval(function)
- return integr
- def main(args):
- function = input("Funkcja: ")
- a = float(input("Początek przedziału: "))
- b = float(input("Koniec przedziału: "))
- i = int(input("Liczba podprzedziałów"))
- print("Całka z funkcji {funkcjon} po przedziale od {a} do {b} = {integrate}".format(funkcjon = function, a = a, b = b, integrate = integrate(function, a, b, i)))
- return 0
- if __name__ == '__main__':
- import sys
- sys.exit(main(sys.argv))
Przykład działania dla f(x) = x2, a = 0, b = 1, oraz i = 10:
Funkcja: x**2 Początek przedziału: 0 Koniec przedziału: 1 Liczba podprzedziałów10 Całka z funkcji x**2 po przedziale od 0.0 do 1.0 = 0.2850000000000001 Aby kontynuować, naciśnij dowolny klawisz . . .
Jak widać, dla i = 10 dokładność jest kiepska, zważywszy na fakt, że:
Nieco lepsze wyniki można uzyskać dla i = 100:
Funkcja: x**2 Początek przedziału: 0 Koniec przedziału: 1 Liczba podprzedziałów100 Całka z funkcji x**2 po przedziale od 0.0 do 1.0 = 0.32835000000000014 Aby kontynuować, naciśnij dowolny klawisz . . .

Tytuł:
Matematyka dyskretna dla praktyków. Algorytmy i uczenie maszynowe w Pythonie
Autor:
Ryan T. White, Archana Tikayat Ray

Tytuł:
Algorytmy kryptograficzne w Pythonie. Wprowadzenie
Autor:
Shannon W. Bray

Tytuł:
Algorytmy sztucznej inteligencji. Ilustrowany przewodnik
Autor:
Rishal Hurbans

Tytuł:
Algorytmy bez tajemnic
Autor:
Thomas H. Cormen

Tytuł:
Algorytmy dla bystrzaków
Autor:
John Paul Mueller, Luca Massaron

Tytuł:
Algorytmy Data Science. Siedmiodniowy przewodnik. Wydanie II
Autor:
David Natingga

Tytuł:
Algorytmy uczenia maszynowego. Zaawansowane techniki implementacji
Autor:
Giuseppe Bonaccorso

Tytuł:
Struktury danych i algorytmy w języku Java. Przewodnik dla początkujących
Autor:
James Cutajar

Tytuł:
C++. Struktury danych i algorytmy
Autor:
Wisnu Anggoro

Tytuł:
Struktury danych i algorytmy w języku C#. Projektowanie efektywnych aplikacji
Autor:
Marcin Jamro