и определения эталонной кривой фитинг Python

Необходимость данных УСТАНОВОЧ-, первые два двумерные диаграммы рассеяния о живописи, о распределении визуального вида,

Так называемая нормальная, гауссовым, нормальная кривая является специальной кривой Гаусса.

scipy.optimize мешок питона curve_fit функция подгонки кривой, конечно, также много типов подгонки кривой. scipy.optimize обеспечивает функцию минимального значение (скаляр или многомерный), аппроксимация кривой и найти корень уравнения полезного алгоритма.

С. П. NumPy Импорт 
Импорт matplotlib.pyplot AS PLT
из scipy.optimize Импорт curve_fit
Импорт Математика
# одиночный модели Гаусса, если кривая имеет множество пиков, фитинг может быть сегментирован
FUNC DEF (X, A, U, SIG): 
вернуться np.exp A * (- (X - U) ** 2 / (2 * SIG ** 2)) / (Math.sqrt SIG * (2 * Math. ПИ))
# гауссова модель смеси, множество гауссовых функций добавляется
FUNC3 DEF (Х, А1, А2, А3, М1, М2, М3, S1, S2, S3): 
Возвращение np.exp А1 * (- ((Х - М1) / S1) ** 2) * A2 + NP. ехр (- ((Х - М2) / S2) ** 2) + A3 * np.exp (- ((Х - М3) / S3) ** 2)

# синусоидальной функция фитинга
Fmax #DEF (X, А, В, С): 
# возвращение np.sin A * + C (X * np.pi / 6 + В.) 
# ФИТА, FITB optimize.curve_fit = (Fmax, Х, Ymax, [1. , 1, 1]) 
# нелинейные наименьших квадратов
#DEF FUNC (X, А, В, С):
# возвращение np.sqrt A * (X) * (В * np.square (X) + C)
полином # 3 раза, может быть расширен до п- го порядка полинома, можно показать математически, любая функция может быть выражена в виде полинома
# np.polyfit = F1 (X, Y 3)
# = np.poly1d Р1 (F1) ,
#yvals = р1 (х) значения # Y подходят
# также может быть использован yvals = np.polyval (f1, х)

фитинга и предельные параметры, которые представляют собой параметр ограничивает нижний предел, р0 начальный диапазон, значение [ 1,1,1]
х = np.arange (1,206,1)
Num = [] <- их значение у
numhunt = [] <- их значение у
у = np.array (NUM)
yhunt = np.array (numhunt)
Popt, pcov = curve_fit (FUNC3, х, у)
popthunt, pcovhunt = curve_fit (FUNC, х, yhunt, р0 = [2,2,2]) 
Ahun popthunt = [0] 
uhunt popthunt = [1]
sighunt = popthunt [2]
a1 = Popt [0] 
u1 = Popt [1]
sig1 = Popt [2]
а2 = Popt [3]
и2 = Popt [4]
Sig2 = Popt [5]
а3 = Popt [6]
и3 = Popt [7]
Sig3 = Popt [8]
yvals = FUNC3 (х, а1, и1, sig1, а2, и2, Sig2, а3, и3, Sig3) # значения Y подходят 
yhuntvals = FUNC (х, ahunt, uhunt, sighunt) # подходит значение у
печать (и 'коэффициенты ahunt:', ahunt) 
печать (и 'коэффициенты uhunt:', uhunt)
печать (и 'коэффициенты sighunt:', sighunt)
#绘图
Plot1 = plt.plot (х, у, 'S', метка = 'насекомых исходные значения')
Plot2 = plt.plot (х, yvals, 'г', метка = 'значения polyfit насекомых')
plot3 = PLT. участок (х, yhunt, 's', метка = 'хищников исходные значения')
plot4 = plt.plot (х, yhuntvals, 'г', метка = 'значения polyfit хищников')
plt.xlabel ( 'ДАТА') 
plt.ylabel ( 'Ночь ловит loglO (N +. 1)')
plt.legend (ЛОК =. 4) в нижнем правом углу Легенда # Specify
plt.title ( 'Насекомое / Predator')
PLT. шоу ()

Цифра одно изображение и множество гауссовского фитинга

 



Фигура полином подгонка изображения

 

Положение легенды можно настроить

нижний левый
верхний центральный
нижний правый
центральный
верхний левый
центре слева
верхний правый
нижний центральный
лучший
центр правый
правый

 

рекомендация

отwww.cnblogs.com/marszhw/p/10962877.html