import numpy as np
def f(x):
return np.sqrt(1 - x**2)
def metoda_prostokatow(a, b, n):
h = (b - a) / n
suma = 0
for i in range(n):
x = a + i * h
suma += f(x)
return suma * h
def metoda_trapezow(a, b, n):
h = (b - a) / n
suma = 0.5 * (f(a) + f(b))
for i in range(1, n):
x = a + i * h
suma += f(x)
return suma * h
# Przedział
a = -1
b = 1
n = 100000 # liczba podziałów
# Obliczenia
calka_prostokaty = metoda_prostokatow(a, b, n)
calka_trapezy = metoda_trapezow(a, b, n)
pi_prostokaty = 2 * calka_prostokaty
pi_trapezy = 2 * calka_trapezy
print("Przybliżenie π metodą prostokątów:", pi_prostokaty)
print("Przybliżenie π metodą trapezów:", pi_trapezy)
print("Rzeczywista wartość π:", np.pi)
aW1wb3J0IG51bXB5IGFzIG5wCgpkZWYgZih4KToKICAgIHJldHVybiBucC5zcXJ0KDEgLSB4KioyKQoKZGVmIG1ldG9kYV9wcm9zdG9rYXRvdyhhLCBiLCBuKToKICAgIGggPSAoYiAtIGEpIC8gbgogICAgc3VtYSA9IDAKICAgIGZvciBpIGluIHJhbmdlKG4pOgogICAgICAgIHggPSBhICsgaSAqIGgKICAgICAgICBzdW1hICs9IGYoeCkKICAgIHJldHVybiBzdW1hICogaAoKZGVmIG1ldG9kYV90cmFwZXpvdyhhLCBiLCBuKToKICAgIGggPSAoYiAtIGEpIC8gbgogICAgc3VtYSA9IDAuNSAqIChmKGEpICsgZihiKSkKICAgIGZvciBpIGluIHJhbmdlKDEsIG4pOgogICAgICAgIHggPSBhICsgaSAqIGgKICAgICAgICBzdW1hICs9IGYoeCkKICAgIHJldHVybiBzdW1hICogaAoKIyBQcnplZHppYcWCCmEgPSAtMQpiID0gMQpuID0gMTAwMDAwICAjIGxpY3piYSBwb2R6aWHFgsOzdwoKIyBPYmxpY3plbmlhCmNhbGthX3Byb3N0b2thdHkgPSBtZXRvZGFfcHJvc3Rva2F0b3coYSwgYiwgbikKY2Fsa2FfdHJhcGV6eSA9IG1ldG9kYV90cmFwZXpvdyhhLCBiLCBuKQoKcGlfcHJvc3Rva2F0eSA9IDIgKiBjYWxrYV9wcm9zdG9rYXR5CnBpX3RyYXBlenkgPSAyICogY2Fsa2FfdHJhcGV6eQoKcHJpbnQoIlByenlibGnFvGVuaWUgz4AgbWV0b2TEhSBwcm9zdG9rxIV0w7N3OiIsIHBpX3Byb3N0b2thdHkpCnByaW50KCJQcnp5YmxpxbxlbmllIM+AIG1ldG9kxIUgdHJhcGV6w7N3OiIsIHBpX3RyYXBlenkpCnByaW50KCJSemVjenl3aXN0YSB3YXJ0b8WbxIcgz4A6IiwgbnAucGkp