Как указать терминальное состояние с помощью кривой в scipy - PullRequest
0 голосов
/ 06 мая 2020

Я пытаюсь подогнать к своим данным экспоненциальную кривую затухания, которая выглядит так:

   t(x) rate(y)
    0   0.950
    1   0.940
    2   0.931
    3   0.921
    4   0.912
    5   0.902
    6   0.893
    7   0.884
    8   0.875
    9   0.866
    10  0.857
    11  0.849
    12  0.840
    13  0.831
    14  0.823
    15  0.814
    16  0.806
    17  0.798
    18  0.790
    19  0.782
    20  0.774
    21  0.766
    22  0.758
    23  0.750
    24  0.743
    25  0.735
    26  0.728
    27  0.720
    28  0.713
    29  0.705
    30  0.698

Написанный мной код:

from scipy.optimize import curve_fit
def modeling(t,a,b):
    return a * np.exp(-b * t)

init_guess = [0.95,1]
fit = curve_fit(modeling, t,y, p0=init_guess, bounds=([0.99,-np.inf],[1,np.inf]),absolute_sigma=True)
ans,cov = fit
a,b = ans  

После получения значения a, b Я хочу найти значения, используя уравнение для t=1 to t=20, так что при t=1 значение Y должно быть 1, а t=20 значение Y должно быть 0 означает, что продукт полностью распался или стал 0. Я хочу принудительно установить это конечное условие.

Могу ли я включить это конечное условие, используя curve-fit. Если нет, то какой может быть подход?

...