我对编程还很陌生,所以请耐心等待. 我正在try 模拟不同的概率分布,我想给每个概率分布拟合一个高斯分布,然后找出产生的高斯分布的标准差,然后比较这些STD DEVE.
我不知道如何告诉PYTHON找到离我的曲线最近的高斯曲线,所以如果有任何帮助,我将不胜感激.
到目前为止,这是我的代码,我try 使用curve_fit,但我真的不知道如何使用,所以我go 掉了它,我不确定如何定义最佳拟合的高斯.
import numpy as np
import matplotlib.pyplot as plt
from scipy import linalg, special, optimize, stats
from numpy import math
from scipy.optimize import curve_fit
q = 4000
qA = np.arange(0.000001,q+1,1.0)
qB = q - qA
N = 2000
NA = 1000
NB = N - NA
ASA = (qA + NA -1)*np.log(qA + NA -1)-(qA*np.log(qA)) - (NA -1)*np.log(NA -1) #sterling approximate of SA/kb
ASB = (qB + NB -1)*np.log(qB + NB -1)-(qB*np.log(qB)) - (NB -1)*np.log(NB -1) #sterling approximate of SB/kb
TATA_list=[]
for i in range(1,len(qA)-1):
TATE = (qA[i+1] - qA[i-1]) / (ASA[i+1] - ASA[i-1])
TATA_list.append(TATE)
TBTA_list=[]
for i in range(1,len(qA)-1):
TBTE = (qB[i+1] - qB[i-1]) / (ASB[i+1] - ASB[i-1])
TBTA_list.append(TBTE)
AStot = (q + N -1)*np.log(q + N -1)-(q*np.log(q))-(N-1)*np.log(N-1)
Paprox = np.exp(ASA + ASB - AStot)
SUMPX = sum(Paprox[:-1])
NormPAprox = Paprox/SUMPX
plt.plot(qA/q, NormPAprox)