日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数理基础(概率论)------离散型随机变量均匀分布、正态分布、指数分布图像和连续型随机变量泊松分布、二项分布图像

發布時間:2024/1/1 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数理基础(概率论)------离散型随机变量均匀分布、正态分布、指数分布图像和连续型随机变量泊松分布、二项分布图像 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.均勻分布

1.1標準均勻分布(0-1)

import numpy as np #滿足0-1均勻分布 X~U(a,b) a=0,b=1 s1=np.random.rand(1000) print(s1) #期望 E(X)=(a+b)/2=(0+1)/2=0.5 print(s1.mean()) #方差 D(X)=(b-a)2/12=1/12 print(s1.var())代碼運行結果: 0.49659926508513635 0.08177007077913671

1.2均勻分布(a=1,b=4)

import numpy as np #滿足1-4均勻分布 X~U(a,b) a=1,b=4 s2=np.random.uniform(1,4,1000) print(s2) #期望 E(X)=(a+b)/2=(1+4)/2=0.5 print(s2.mean()) #方差 D(X)=(b-a)2/12=3/4 print(s2.var())#繪制直方圖 #hist(第一個參數:數據, 2:分成多少組) plt.hist(s2,50) #x軸:分成的小區間 y軸:在小區間中分別包含多少個數 plt.show()代碼運行結果: 2.4636368580531967 0.7618935545895295

2.正態分布

2.1標準正態分布(μ=0,σ=1)

import numpy as np #滿足標準正態分布 X~N(μ,σ2) μ=0,σ=1 s3=np.random.randn(1000) print(s3) #期望 E(X)=μ=0 print(s3.mean()) #方差 D(X)=σ2=1 print(s3.var()) #繪制直方圖 #hist(第一個參數:數據, 2:分成多少組) plt.hist(s3,50) #x軸:分成的小區間 y軸:在小區間中分別包含多少個數 plt.show() 代碼運行結果: 0.010533220131881613 1.0355896447670396

2.2正態分布(μ=6,σ=4)

import numpy as np #滿足標準正態分布 X~N(μ,σ2) μ=6,σ=4 s4=np.random.normal(6,4,1000) print(s4) #期望 E(X)=μ=0 print(s4.mean()) #方差 D(X)=σ2=16 print(s4.var()) #繪制直方圖 #hist(第一個參數:數據, 2:分成多少組) plt.hist(s4,50) #x軸:分成的小區間 y軸:在小區間中分別包含多少個數 plt.show() 代碼運行結果: 5.925563519203148 15.380646647328417

3. 自定義均勻分布

import numpy as np import matplotlib.pyplot as plt def uniform(x,a,b):ls=[]for i in x:if a<=i<=b:y=1/(b-a)ls.append(y)else:ls.append(0)return lsdef uniform(x,a,b):y = [1 / (b - a) if a <= i and i <= b else 0 for i in x]return y

繪制一個a,b不同取值的情況

#繪制a和b等于一個值的情況 x=np.linspace(-10,10,100) #使用numpy生成 -10-10 之間100個點 a=3 # a設置為3 b=5 # b設置為5 y=uniform(x,a,b) #調用函數,計算 y對應的值 plt.plot(x,y) #繪制均勻分布的概率密度函數圖像 plt.show()

用for循環實現繪制多個a,b不同取值的圖像

# a,b=(-8,0)、(-3,3)、(2,7) # 用for循環實現繪制多個a,b不同取值的圖像 x=np.linspace(-10,10,100) #使用numpy生成 -10-10 之間100個點 ls=[(-8,0),(-3,3),(2,7)] for k in ls:a,b=k[0],k[1]y=uniform(x,a,b) #調用上面uniform函數,計算y對應的值plt.plot(x,y,label='a={},b={}'.format(a,b))plt.legend() plt.show()

4. 自定義正態分布

import numpy as np import matplotlib.pyplot as plt def normal(x):miu = x.mean() # 期望sigma = x.std() # 標準差a=(x-miu)**2/(2*sigma**2)y=1/(sigma*(2*np.pi)**0.5)*np.exp(-a)return y,miu,sigmaif __name__ == '__main__':x=np.linspace(4,7,1000)y,miu,sigma=normal(x) #調用函數,計算 y對應的值plt.plot(x,y,label=r'$\mu={:.2f},\sigma={:.2f}$'.format(miu,sigma))plt.legend()plt.show()

5. 自定義指數分布

import numpy as np import matplotlib.pyplot as pltdef zhishu(x,r):y = r * np.exp(-r * x)return yif __name__ == '__main__':x=np.linspace(0,10,1000) #使用numpy生成 0-5之間100個點r=6 # λ設置為3y=zhishu(x,r) #調用函數,計算y對應的值plt.plot(x,y) #繪制指數分布的概率密度函數圖像plt.show()

6. 自定義二項分布

def bioxiang(n,p):la=[]for k in range(n+1):y=sp.comb(n,k)*p**k*(1-p)**(n-k)la.append(y)return ladef bioxiang(n,p):y=[sp.comb(n,k)*p**k*(1-p)**(n-k) for k in range(n+1)]return yif __name__ == '__main__':n = 10p = 0.6# x=np.arange(n+1) #使用numpy生成 0,1...10 11個點x=[i for i in range(n+1)]y=bioxiang(n,p) #調用函數,計算 y對應的值plt.scatter(x,y,marker='o') #繪制分布律函數圖像plt.savefig('b.jpeg')plt.show()

7. 自定義泊松分布

import numpy as np import scipy.special as sp import matplotlib.pyplot as pltdef possion(n,rua):ls=[]for k in range(n+1):y=rua**k/(sp.factorial(k))*np.exp(-rua)ls.append(y)return lsdef possion(n,rua):ls=[rua**k/(sp.factorial(k))*np.exp(-rua) for k in range(n+1)]return lsif __name__ == '__main__':n=11rua=5x=np.arange(n+1)#使用numpy生成 0,1...20 21個點y=possion(n,rua)#調用函數,計算 y對應的值plt.scatter(x,y,marker='o')#繪制分布律函數圖像plt.show()

8. 自定義兩點分布

import numpy as np import matplotlib.pyplot as plt import scipy.statsdef binpoint(p):a=0b=1y={a:p,b:1-p}return [y[a],y[b]]p=0.3 x=np.array([0,1]) y=binpoint(p) plt.scatter(x,y) plt.show()

9. 卡方分布

from scipy import stats import numpy as np import matplotlib.pyplot as plt x=np.linspace(0, 10, 100) df=4 y=stats.chi2.pdf(x, df) plt.plot(x, y) plt.xlim(0, 10) plt.ylim(0, 0.4)

from scipy import stats import numpy as np import matplotlib.pyplot as pltx=np.linspace(0, 10, 100) ls=[2,4,7,9] linestyle=[':', '--', '-.', '-'] for df,lines in zip(ls,linestyle):y=stats.chi2.pdf(x, df)plt.plot(x, y,linestyle=lines,label=r'df={}'.format(2,4,7,9)) plt.xlim(0, 10) plt.ylim(0, 0.4) plt.xlabel('Value') plt.ylabel('Frequency') plt.title('Chi-Square Distribution') plt.legend(loc='upper right') plt.show()

10. beta分布

import matplotlib.pyplot as plt import numpy as np import scipy.stats as statsx = np.arange(0.01, 1, 0.01) alpha = 1 beta = 1 y = stats.beta.pdf(x, alpha, beta) plt.plot(x, y, label=r'$\alpha={},\beta={}$'.format(alpha, beta))alpha = 1 beta = 3 y = stats.beta.pdf(x, alpha, beta) plt.plot(x, y, label=r'$\alpha={},\beta={}$'.format(alpha, beta))alpha = 1 beta = 5 y = stats.beta.pdf(x, alpha, beta) plt.plot(x, y, label=r'$\alpha={},\beta={}$'.format(alpha, beta))alpha = 1 beta = 7 y = stats.beta.pdf(x, alpha, beta) plt.plot(x, y, label=r'$\alpha={},\beta={}$'.format(alpha, beta)) plt.legend(loc="upper left") plt.xlabel("Number of success") plt.ylabel("Probablity of success") plt.legend(loc='upper') plt.show()

import matplotlib.pyplot as plt import numpy as np import scipy.stats as statsx = np.arange(0.01, 1, 0.01) alpha = 0.5 beta = 1 y = stats.beta.pdf(x, alpha, beta) plt.plot(x, y, label=r'$\alpha={},\beta={}$'.format(alpha, beta))alpha = 1 beta = 1 y = stats.beta.pdf(x, alpha, beta) plt.plot(x, y, label=r'$\alpha={},\beta={}$'.format(alpha, beta))alpha = 3 beta = 1 y = stats.beta.pdf(x, alpha, beta) plt.plot(x, y, label=r'$\alpha={},\beta={}$'.format(alpha, beta))alpha = 5 beta = 1 y = stats.beta.pdf(x, alpha, beta) plt.plot(x, y, label=r'$\alpha={},\beta={}$'.format(alpha, beta))plt.legend(loc="upper left") plt.xlabel("Number of success") plt.ylabel("Probablity of success") plt.legend(loc='upper') plt.show()

import matplotlib.pyplot as plt import numpy as np import scipy.stats as stats x = np.arange(0.01, 1, 0.01) alpha = [0.5,1,4,7] beta = 1 for alpha in alpha:x = np.arange(0.01, 1, 0.01)y = stats.beta.pdf(x, alpha, beta)plt.plot(x, y, label=r'$\alpha={},\beta={}$'.format(alpha, beta))alpha=1 beta=[0.5,1,1.5,5] for beta in beta:y = stats.beta.pdf(x, alpha, beta)plt.plot(x, y, label=r'$\alpha={},\beta={}$'.format(alpha, beta)) plt.legend(loc="upper left") plt.xlabel("Number of success") plt.ylabel("Probablity of success") # plt.legend(loc='upper') plt.show()

總結

以上是生活随笔為你收集整理的数理基础(概率论)------离散型随机变量均匀分布、正态分布、指数分布图像和连续型随机变量泊松分布、二项分布图像的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。