Advertisement
Guest User

Untitled

a guest
Nov 21st, 2017
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.33 KB | None | 0 0
  1. def integral_s(K, sX):
  2. r = K-1
  3. f = symbols('f')
  4. s = symbols('s')
  5. const = 1/((2**(r/2))*gamma(r/2))
  6. f = (s**(r/2-1))*exp(-s/2)
  7. f = integrate(f,(s,sX,float('+inf')))
  8. return f*const
  9.  
  10. # проверка хи2
  11. #array-эмпирический массив значений, K - кол-во интервалов
  12. def hi2(array, K, N, lya_cur, tetha_cur, alpha):
  13. # for i in range(len(array)):
  14. # array[i] = (array[i]-tetha_cur)/lya_cur
  15.  
  16. intervals = SelectIntervals(array, K)
  17.  
  18. #эмпирическая частота попадания
  19. frecuency0 = np.zeros(len(intervals)-1)
  20. for item in (array):
  21. for i in range(len(frecuency0)):
  22. if(intervals[i] <= (item-tetha_cur)/lya_cur and (item-tetha_cur)/lya_cur <intervals[i+1]):
  23. frecuency0[i]+=1
  24. break
  25.  
  26. # теоретическая частота попадания
  27. frecuency1 = np.zeros(len(intervals)-1)
  28. for i in range(len(frecuency1)):
  29. frecuency0[i] /= N
  30. if(intervals[i] < -1 and intervals[i+1] >= -1 and intervals[i+1] <= 1):
  31. frecuency1[i] = 0.1 - CosExpD(v, b1, intervals[i], 1, 0) + CosExpD(v, b1, intervals[i+1], 1, 0) - CosExpD(v, b1, -1, 1, 0)
  32. else:
  33. if(intervals[i+1] > 1 and intervals[i] >= -1 and intervals[i] <= 1):
  34. frecuency1[i] = CosExpD(v, b1, 1, 1, 0) - CosExpD(v, b1, intervals[i], 1, 0) - CosExpD(v, b1, intervals[i+1], 1, 0) + 0.1
  35. else:
  36. if(intervals[i+1] > 1 and intervals[i] > 1):
  37. frecuency1[i] = - CosExpD(v, b1, intervals[i + 1], 1, 0) + CosExpD(v, b1, intervals[i], 1, 0)
  38. else:
  39. frecuency1[i] = CosExpD(v, b1, intervals[i+1], 1, 0)- CosExpD(v, b1, intervals[i], 1, 0)
  40.  
  41. result = 0
  42. for i in range(K):
  43. result += ((frecuency0[i] - frecuency1[i])**2)/frecuency1[i]
  44. result *= N
  45.  
  46. print("Критерий Хи-Квадрат Пирсона")
  47. if (integral_s(K, result) > alpha):
  48. print(integral_s(K, result), '>', alpha)
  49. print("Гипотеза не отвергается")
  50. else:
  51. print(integral_s(K, result), '<', alpha)
  52. print("Гипотеза не принимается")
  53.  
  54. DrawHistogram(intervals[0:K], frecuency0,intervals[0:K], frecuency1)
  55. return
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement