Advertisement
sementry

Untitled

Jun 15th, 2013
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.24 KB | None | 0 0
  1. from math import *
  2. from random import expovariate, gauss
  3.  
  4. (gamma, tGamma) = (0.98, 2.326)
  5.  
  6. def mean(lst): # среднее для набора значений
  7.     return sum(lst) / len(lst)
  8.  
  9. def variance(lst): # дисперсия
  10.     m = mean(lst)
  11.     return sum(map(lambda x : (x - m) ** 2, lst)) / (len(lst) - 1)
  12.  
  13. def points(n, randvar): # генерация n исходов для случайной величины randvar
  14.     return [randvar() for i in range(n)]
  15.  
  16. def integrate(f, dg, n): # вычисление значения определенного интеграла
  17.     print("n = %d:" % n)
  18.     lst = list(map(f, points(n, dg)))
  19.     p = mean(lst) # оценка среднего значения
  20.     print("p_n = %.8f" % p)
  21.     d = tGamma * sqrt(variance(lst) / n) # оценка доверительной точности
  22.     print("d_n = %.8f" % d)
  23.     print("interval = [%.8f, %.8f]\n" % (p - d, p + d))
  24.  
  25. integrals = [
  26.     (lambda x : x ** 4, lambda : expovariate(1)),
  27.     (lambda x : sqrt(abs(x)) * (2 * sqrt(pi)), lambda : gauss(-2, sqrt(2)))]
  28.  
  29. for (f, dg) in integrals: # вычисление значений двух интегралов из задания
  30.     for n in [10 ** 4, 10 ** 6]: # для заданных значений n
  31.         integrate(f, dg, n)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement