四参数累积威布尔拟合

时间:2015-02-25 08:27:37

标签: python scipy weibull

我试图找到最适合这种类型的四参数累积Weibull拟合:

f(x)= A *(1-exp( - ((x-xo)/ W)^ s)

在scipy.optimize中使用curve_fit,如下所示:

import numpy as np
import pandas as pd
import matplotlib.pylab as plt
from scipy.optimize import curve_fit

def weib(x, *p):
    XSsat, Lo, W, s = p
    return XSsat*(1-np.exp(-((x-Lo)/W)**s))

x_data = [10.1, 11.7, 14.3, 20.2, 32.1, 37.1, 45.5, 64.2]
y_data = [2.96e-6, 2.58e-5, 1.72e-4, 1.18e-3, 2.27e-2, 3.26e-2, 3.98e-2,   4.67e-2]
p0 = [5e-2, 0, 35, 3]
coeff, pcov = curve_fit(weib, x_data, y_data, p0=p0)

但是,我得到的输出是:

print coeff
[ nan  nan  nan  nan]

问题似乎与没有为x定义函数有关

有什么想法吗?

0 个答案:

没有答案