Lesson 11: Data and data fitting
Lesson 11: Data and data fitting 數據與數據擬合
Example Code
- import scipy as sp
- import matplotlib.pyplot as plt
- xPoins=sp.arange(0, 6, 0.01)
- sinDATA = sp.sin(xPoins)
- NoiseSigma1= sp.random.randn(len(sinDATA))*0.1
- sinDATAwithNoise = sinDATA+NoiseSigma1
- plt.plot(xPoins,sinDATA,'r')
- plt.plot(xPoins,sinDATAwithNoise,'b.')
- plt.show()
- z = sp.polyfit(xPoins, sinDATAwithNoise, 1)
- fitFun = sp.poly1d(z)
- plt.plot(xPoins,sinDATA,'r')
- plt.plot(xPoins,fitFun(xPoins),'#000000')
- plt.plot(xPoins,sinDATAwithNoise,'b.', alpha=0.1)
- plt.show()
- #print(z)
- z = sp.polyfit(xPoins, sinDATAwithNoise, 2)
- fitFun2 = sp.poly1d(z)
- plt.plot(xPoins,sinDATA,'r')
- plt.plot(xPoins,fitFun2(xPoins),'#000000')
- plt.plot(xPoins,sinDATAwithNoise,'b.', alpha=0.1)
- plt.show()
- z = sp.polyfit(xPoins, sinDATAwithNoise, 3)
- fitFun3 = sp.poly1d(z)
- plt.plot(xPoins,sinDATA,'r')
- plt.plot(xPoins,fitFun3(xPoins),'#000000')
- plt.plot(xPoins,sinDATAwithNoise,'b.', alpha=0.1)
- plt.show()
Lesson 11: Data and data fitting
Lesson 11: Data and data fitting 數據與數據擬合
Example Code
- import scipy as sp
- import matplotlib.pyplot as plt
- xPoins=sp.arange(0, 6, 0.01)
- sinDATA = sp.sin(xPoins)
- NoiseSigma1= sp.random.randn(len(sinDATA))*0.1
- sinDATAwithNoise = sinDATA+NoiseSigma1
- plt.plot(xPoins,sinDATA,'r')
- plt.plot(xPoins,sinDATAwithNoise,'b.')
- plt.show()
- z = sp.polyfit(xPoins, sinDATAwithNoise, 1)
- fitFun = sp.poly1d(z)
- plt.plot(xPoins,sinDATA,'r')
- plt.plot(xPoins,fitFun(xPoins),'#000000')
- plt.plot(xPoins,sinDATAwithNoise,'b.', alpha=0.1)
- plt.show()
- #print(z)
- z = sp.polyfit(xPoins, sinDATAwithNoise, 2)
- fitFun2 = sp.poly1d(z)
- plt.plot(xPoins,sinDATA,'r')
- plt.plot(xPoins,fitFun2(xPoins),'#000000')
- plt.plot(xPoins,sinDATAwithNoise,'b.', alpha=0.1)
- plt.show()
- z = sp.polyfit(xPoins, sinDATAwithNoise, 3)
- fitFun3 = sp.poly1d(z)
- plt.plot(xPoins,sinDATA,'r')
- plt.plot(xPoins,fitFun3(xPoins),'#000000')
- plt.plot(xPoins,sinDATAwithNoise,'b.', alpha=0.1)
- plt.show()
Lesson 11: Data and data fitting 數據與數據擬合
Example Code
- import scipy as sp
- import matplotlib.pyplot as plt
- from scipy.optimize import curve_fit
- xPoins=sp.arange(0, 6,0.01)
- sinDATA = sp.sin(xPoins)
- SNratio=1
- NoiseSigma1= sp.random.randn(len(sinDATA))*SNratio
- sinDATAwithNoise = sinDATA+NoiseSigma1
- plt.plot(xPoins,sinDATA,'r--')
- plt.plot(xPoins,sinDATAwithNoise,'b.')
- def fitfunc(x, a, b):
- return a * sp.sin(b* x)
- popt, pcov = curve_fit(fitfunc, xPoins, sinDATAwithNoise)
- print(popt)
- print(pcov)
- plt.show()
- plt.plot(xPoins, sinDATA,'r--')
- plt.plot(xPoins, fitfunc(xPoins, *popt))
- plt.show()