Как получить предупреждение «RuntimeWarning: обнаружено переполнение в exp» при выполнении функции curve_fit ()? - PullRequest
0 голосов
/ 19 июня 2020

Когда я использую curve_fit() для соответствия моей кривой, я получаю предупреждение во время выполнения. Похоже, в процессе примерки я получил значение переполнения. Но как этого избежать?

Часть кода ...

def pre_func(x, b, c, p, q, v, w):
    return np.piecewise(x, [x < v, x >= v], [lambda x: pre_func_1(x, w),
                        lambda x: pre_func_2(x, b, c, p, q, v, w)])

def main():
    global t_pre
    global p
    global q

    data_file = open('run0035.bin', 'rb')
    signal = Signal()

    n = 35
    data_file.read(2*n*20000)

    u_temp = []
    for _ in range(0, 20000):
        data_temp = data_file.read(2)
        data_dec, = struct.unpack('h', data_temp)
        u_temp.append(-data_dec)
    signal.u = u_temp
    signal.draw()

    u_baseline = signal.get_baseline()
    u_max = signal.get_max()
    t_max = signal.get_max_t()
    b = (u_baseline - u_max) / 2.0
    c = (u_baseline - u_max) / 2.0
    v = t_max
    w = u_max

    fit_par = [b, c, p, q, v, w]
    popt, pcov = curve_fit(pre_func, signal.t, signal.u, fit_par, maxfev=5000)
    print(popt)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...