Я пытаюсь подогнать к своим данным экспоненциальную кривую затухания, которая выглядит так:
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
. Если нет, то какой может быть подход?