二次函数提前停止的Python-scipy曲线拟合
因此,我绘制的曲线的最佳拟合线在第二个点被截断,我一生都不知道为什么二次函数提前停止的Python-scipy曲线拟合,python,numpy,matplotlib,Python,Numpy,Matplotlib,因此,我绘制的曲线的最佳拟合线在第二个点被截断,我一生都不知道为什么 from matplotlib import pyplot as plt import numpy as np from scipy.optimize import curve_fit accuracy = 250 def quadratic_function(E,a,b,c): B = (a*(E**2.0)) + (b*E) + c return B Implantation_E = np.ar
from matplotlib import pyplot as plt
import numpy as np
from scipy.optimize import curve_fit
accuracy = 250
def quadratic_function(E,a,b,c):
B = (a*(E**2.0)) + (b*E) + c
return B
Implantation_E = np.array([5.0,10.0,15.0,20.0,25.0])
plt.figure()
plt.title("A plot showing how the Magnetic Field varies with Implantation Energy")
plt.ylabel("Magnetic Field Strength (T)")
plt.xlabel("Implantation Energy (J)")
plt.plot(Implantation_E,D_array[0],'bo')
parameters, var = curve_fit(quadratic_function,Implantation_E,D_array[0], absolute_sigma = True, p0 = (1.0,1.0,1.0))
newTime = np.linspace(0,10,accuracy)
newAsymmetry = quadratic_function(newTime, *parameters)
plt.plot(newTime, newAsymmetry)
plt.show()
(注D_数组[0]:[0.00523265 0.00860683 0.0109838 0.01241191 0.01284149]
)
您的原始数据在其参数中的范围为5到25。但你的健康指数只有10。将
newTime
定义更改为25,您就可以了
from matplotlib import pyplot as plt
import numpy as np
from scipy.optimize import curve_fit
%matplotlib inline
accuracy = 250
def quadratic_function(E,a,b,c):
B = (a*(E**2.0)) + (b*E) + c
return B
dd= np.array([ 0.00523265, 0.00860683 ,0.0109838, 0.01241191 ,0.01284149])
Implantation_E = np.array([5.0,10.0,15.0,20.0,25.0])
plt.plot(Implantation_E,dd,'b-o',lw=15,ms=10,alpha=0.3)
parameters, var = curve_fit(quadratic_function,Implantation_E,dd,absolute_sigma = True, p0 = (1.0,1.0,1.0))
newTime = np.linspace(0,10,accuracy)
newAsymmetry = quadratic_function(newTime, *parameters)
plt.plot(newTime, newAsymmetry,'r.',ms=1)
plt.show()
您的原始数据在其参数中的范围为5到25。但你的健康指数只有10。将
newTime
定义更改为25,您就可以了
from matplotlib import pyplot as plt
import numpy as np
from scipy.optimize import curve_fit
%matplotlib inline
accuracy = 250
def quadratic_function(E,a,b,c):
B = (a*(E**2.0)) + (b*E) + c
return B
dd= np.array([ 0.00523265, 0.00860683 ,0.0109838, 0.01241191 ,0.01284149])
Implantation_E = np.array([5.0,10.0,15.0,20.0,25.0])
plt.plot(Implantation_E,dd,'b-o',lw=15,ms=10,alpha=0.3)
parameters, var = curve_fit(quadratic_function,Implantation_E,dd,absolute_sigma = True, p0 = (1.0,1.0,1.0))
newTime = np.linspace(0,10,accuracy)
newAsymmetry = quadratic_function(newTime, *parameters)
plt.plot(newTime, newAsymmetry,'r.',ms=1)
plt.show()
非常感谢,你不会碰巧知道为什么我也添加了这个,当我添加错误时,它只会导致它连接点?plt.errorbar(植入E,D_数组[0],xerr=0.0,yerr=D_数组[1])D_数组[1]=1.66096809e-05 1.53262814e-05 1.62771310e-05 1.88651405e-05 1.56005258e-05非常感谢,你不会碰巧知道为什么我也加了这个,当我加错误的时候,它只会使它连接点?plt.errorbar(植入E,D_数组[0],xerr=0.0,yerr=D_数组[1])D_数组[1]=1.66096809e-05 1.53262814e-05 1.62771310e-05 1.88651405e-05 1.56005258e-05