python正態分布圖
『壹』 python求正態分布的隨機數
比如要生成符合f()分布的隨機數,f的反函數是g,那麼先生成定義域內的均勻分布的隨機數,在帶入g(x)計算就好。
對於你這個問題,python有自帶的方法。
#!/usr/bin/python2.7
import random
random.normalvariate(帶三個參數,你試試)
『貳』 如何用python使變數服從正太分布
正太分布哈哈
首先,如果想要你的一千萬個數據嚴格服從正態分布,那麼先確定這個分布的數據,也就是均值和方差,N(u,o),這里均值 u=50,方差 o 由你確定,根據正態分布概率密度函數,對於每一個 1~100 之間的整數 x,都可以確定它出現的概率 f(x):
正態分布概率密度函數
而共有 10 000 000 個數字,那麼 10000000*f(x) 就是 x 出現的頻率。
因此,使用一個 101 元素的數組 freq[] 存放這些數出現的頻率,用 f(x)*10000000 逐個計算數組元素,也就是 x 應該出現的次數,假如說 2 一共會出現 3 次,那麼 freq[2]=3,計算出之後放在那裡,作為一個參照。再初始化一個全為 0 的 100 個元素的數組 sam[],記錄每個數字已經出現的次數。之後開始從 1~100 隨機,每隨機一個數字 x 都給 sam[x] 加1,再和 freq[x] 比較,如果超出了 freq[x] 就說明這個數字已經不能再出現了,將其舍棄。記錄隨機成功的次數,達到了 10000000 次即可。
『叄』 如何將已知數據用python寫成正態分布並且畫圖
importnumpyasnp
importmatplotlib.pyplotasplt
y=[2,5,7,10,16,23,20,16,9,6,6,3,1,1]
x=[59,60,61,62,63,64,65,66,67,68,69,70,71,72]
fig,ax=plt.subplots()
ax.bar(x,y,0.3,alpha=0.5,color='b',label='abc')
plt.axis([55,75,0,25])
ax.set_xlabel('XXX')
ax.set_ylabel('YYY')
ax.set_title('ABC')
ax.legend()
fig.tight_layout()
plt.show()
『肆』 如何在Python中計算累積正態分布
Python正態分布概率計算方法,喜歡演算法的夥伴們可以參考學習下。需要用到math模塊。先了解一下這個模塊方法,再來寫代碼會更好上手。
def st_norm(u):
'''標准正態分布'''
import math
x=abs(u)/math.sqrt(2)
T=(0.0705230784,0.0422820123,0.0092705272,
0.0001520143,0.0002765672,0.0000430638)
E=1-pow((1+sum([a*pow(x,(i+1))
for i,a in enumerate(T)])),-16)
p=0.5-0.5*E if u<0 else 0.5+0.5*E
return(p)
def norm(a,sigma,x):
'''一般正態分布'''
u=(x-a)/sigma
return(st_norm(u))
while 1:
'''輸入一個數時默認為標准正態分布
輸入三個數(空格隔開)時分別為期望、方差、x
輸入 stop 停止'''
S=input('please input the parameters:\n')
if S=='stop':break
try:
L=[float(s) for s in S.split()]
except:
print('Input error!')
continue
if len(L)==1:
print('f(x)=%.5f'%st_norm(L[0]))
elif len(L)==3:
print('f(x)=%.5f'%norm(L[0],L[1],L[2]))
else:
print('Input error!')
『伍』 python 怎麼求標准正態分布某個值
示例:
1、from numpy import *;
2、def rand_Matrix():
3、randArr=random.randn(2,3);
4、randMat=mat(randArr);
5、return randMat;
一種結果如下:
1、matrix([[ 0.3150869 , -0.02041996, -0.15361071],
2、[-0.75507988, 0.80393683, -0.31790917]])
(5)python正態分布圖擴展閱讀
Python正態分布概率計算方法:
def st_norm(u):
'''標准正態分布'''
import math
x=abs(u)/math.sqrt(2)
T=(0.0705230784,0.0422820123,0.0092705272,
0.0001520143,0.0002765672,0.0000430638)
E=1-pow((1+sum([a*pow(x,(i+1))
for i,a in enumerate(T)])),-16)
p=0.5-0.5*E if u<0 else 0.5+0.5*E
return(p)
def norm(a,sigma,x):
'''一般正態分布'''
u=(x-a)/sigma
return(st_norm(u))
while 1:
'''輸入一個數時默認為標准正態分布
輸入三個數(空格隔開)時分別為期望、方差、x
輸入 stop 停止'''
S=input('please input the parameters: ')
if S=='stop':break
try:
L=[float(s) for s in S.split()]
except:
print('Input error!')
continue
if len(L)==1:
print('f(x)=%.5f'%st_norm(L[0]))
elif len(L)==3:
print('f(x)=%.5f'%norm(L[0],L[1],L[2]))
else:
print('Input error!')
『陸』 如何用python求解一個帶正態分布和ln函數的方程
import scipy.stats as sta
import math
def option_call(s,x,r,sigma,t):
d1=(math.log(s/x)+(r+sigma**2/2)*t)/(math.sqrt(t)*sigma)
d2=d1-sigma*math.sqrt(t)
c=s*sta.norm.cdf(d1,0,1)-x*sta.norm.cdf(d2,0,1)*math.exp(-r*t)
return c
『柒』 python如何實現求標准正太分布反函數Φ^(
一般的正態分布可以通過標准正態分布配合數學期望向量和協方差矩陣得到。如下代碼,可以得到滿足一維和二維正態分布的樣本。希望有用,如有錯誤,歡迎指正!
『捌』 如何用python求出某已知正態分布的概率密度
Python正態分布概率計算方法,喜歡演算法的夥伴們可以參考學習下。需要用到math模塊。先了解一下這個模塊方法,再來寫代碼會更好上手。
def st_norm(u):
'''標准正態分布'''
import math
x=abs(u)/math.sqrt(2)
T=(0.0705230784,0.0422820123,0.0092705272,
0.0001520143,0.0002765672,0.0000430638)
E=1-pow((1+sum([a*pow(x,(i+1))
for i,a in enumerate(T)])),-16)
p=0.5-0.5*E if u<0 else 0.5+0.5*E
return(p)
def norm(a,sigma,x):
'''一般正態分布'''
u=(x-a)/sigma
return(st_norm(u))
while 1:
'''輸入一個數時默認為標准正態分布
輸入三個數(空格隔開)時分別為期望、方差、x
輸入 stop 停止'''
S=input('please input the parameters:\n')
if S=='stop':break
try:
L=[float(s) for s in S.split()]
except:
print('Input error!')
continue
if len(L)==1:
print('f(x)=%.5f'%st_norm(L[0]))
elif len(L)==3:
print('f(x)=%.5f'%norm(L[0],L[1],L[2]))
else:
print('Input error!')
『玖』 用python求出正態分布1.6對應的百分位數的函數是什麼
正態分布最早是由一位數學家從二項分布在n趨近於無窮大時的近似而推導出來的。 二項分布的概率密度C(m,n)*p^m*(1-p)^(n-m),考慮此函數在n趨近於無窮大,m在n/2附近時的近似。 求近似時,關鍵的一步是用斯特靈公式:N!約等於N的N次方乘以根號下2πN再除以e的N次方,當N非常大時。在具體推導中,對於n,n-m,m都可以適用此近似。 另一個關鍵步驟是,推導中用d^2=np(1-p)來代換,也就是說,二項分布的分散,對於二項分布的近似,仍然是一個有意義的有限的值。