76 lines
1.3 KiB
Python
76 lines
1.3 KiB
Python
import numpy as np
|
|
from scipy.optimize import curve_fit
|
|
|
|
|
|
# Define the function to fit
|
|
def func(x, a, b, c):
|
|
return a * np.exp(-b * x) + c
|
|
|
|
|
|
# Load the data
|
|
data = np.array(
|
|
[
|
|
[0, 0],
|
|
[20, 0],
|
|
[40, 1],
|
|
[60, 2],
|
|
[80, 3],
|
|
[100, 5],
|
|
[120, 6],
|
|
[140, 7],
|
|
[160, 9],
|
|
[180, 11],
|
|
[200, 13],
|
|
[220, 15],
|
|
[240, 17],
|
|
[260, 19],
|
|
[280, 21],
|
|
[300, 23],
|
|
[320, 26],
|
|
[340, 28],
|
|
[360, 31],
|
|
[380, 34],
|
|
[400, 36],
|
|
[420, 39],
|
|
[440, 42],
|
|
[460, 45],
|
|
[480, 48],
|
|
[500, 52],
|
|
[520, 55],
|
|
[540, 58],
|
|
[560, 62],
|
|
[580, 65],
|
|
[600, 69],
|
|
[620, 72],
|
|
[640, 76],
|
|
[660, 80],
|
|
[680, 84],
|
|
[700, 88],
|
|
[720, 92],
|
|
[740, 96],
|
|
[760, 100],
|
|
[780, 104],
|
|
[800, 108],
|
|
[820, 112],
|
|
[840, 117],
|
|
[860, 121],
|
|
[880, 126],
|
|
[900, 130],
|
|
[920, 135],
|
|
[940, 140],
|
|
[960, 145],
|
|
[980, 150],
|
|
[1000, 154],
|
|
]
|
|
)
|
|
|
|
# Separate the data into x and y arrays
|
|
xdata = data[:, 0]
|
|
ydata = data[:, 1]
|
|
|
|
# Fit the curve to the data
|
|
popt, pcov = curve_fit(func, xdata, ydata)
|
|
|
|
# Print the fitted parameters
|
|
print(popt)
|