You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
764 B
33 lines
764 B
import matplotlib.pyplot as plt
|
|
from scipy.optimize import curve_fit
|
|
import numpy as numpy
|
|
|
|
#Fitting funtion
|
|
def func(x, a, b)
|
|
return a*np.exp(b*x)
|
|
#return a*x+b
|
|
|
|
#Experimental x and y data points
|
|
xData = np.array([1,2,3,4,5])
|
|
yData = np.array([1, 9, 50, 300, 1500])
|
|
|
|
#Plot experimental data points
|
|
plt.plot(xData, yData, 'bo', label='experimeatal-data')
|
|
|
|
# Initial guess for the parameters
|
|
#initialGuess = [1, 0, 1, 0]
|
|
|
|
#Perform the curve-fit
|
|
popt, pcov = curve_fit(func, xData, yData, initialGuess)
|
|
print(popt)
|
|
|
|
#x values for the fitted function
|
|
xFit = np.arange(0.0, 5.0, 0.01)
|
|
|
|
#Plot the fitted function
|
|
plt.plot(xFit, func(xFit, *popt), 'r', label= 'fit params: a= %5.3f, b=%5.3f' %tuple(popt))
|
|
|
|
plt.xlabel('x')
|
|
plt.ylabel('y')
|
|
plt.legend()
|
|
plt.show()
|