fork download
  1. import numpy as np
  2.  
  3. def f(x):
  4. return np.sqrt(1 - x**2)
  5.  
  6. def metoda_prostokatow(a, b, n):
  7. h = (b - a) / n
  8. suma = 0
  9. for i in range(n):
  10. x = a + i * h
  11. suma += f(x)
  12. return suma * h
  13.  
  14. def metoda_trapezow(a, b, n):
  15. h = (b - a) / n
  16. suma = 0.5 * (f(a) + f(b))
  17. for i in range(1, n):
  18. x = a + i * h
  19. suma += f(x)
  20. return suma * h
  21.  
  22. # Przedział
  23. a = -1
  24. b = 1
  25. n = 100000 # liczba podziałów
  26.  
  27. # Obliczenia
  28. calka_prostokaty = metoda_prostokatow(a, b, n)
  29. calka_trapezy = metoda_trapezow(a, b, n)
  30.  
  31. pi_prostokaty = 2 * calka_prostokaty
  32. pi_trapezy = 2 * calka_trapezy
  33.  
  34. print("Przybliżenie π metodą prostokątów:", pi_prostokaty)
  35. print("Przybliżenie π metodą trapezów:", pi_trapezy)
  36. print("Rzeczywista wartość π:", np.pi)
Success #stdin #stdout 1.34s 41308KB
stdin
1000
stdout
Przybliżenie π metodą prostokątów: 3.1415925484068286
Przybliżenie π metodą trapezów: 3.1415925484068286
Rzeczywista wartość π: 3.141592653589793