首页 > 其他分享 >习题7.10(3)

习题7.10(3)

时间:2024-11-17 15:10:08浏览次数:1  
标签:plt 7.10 fit mu 拟合 print 习题 sigma

1.代码实现

点击查看代码
import numpy as np
import pylab as plt
from scipy.optimize import curve_fit
# 原始数据点
x0 = np.array([-2, -1.7, -1.4, -1.1, -0.8, -0.5, -0.2, 0.1, 0.4, 0.7, 1, 1.3, 1.6, 1.9, 2.2, 2.5, 2.8, 3.1, 3.4, 3.7, 4, 4.3, 4.6, 4.9])
y0 = np.array([0.1029, 0.1174, 0.1316, 0.1448, 0.1566, 0.1662, 0.1733, 0.1775, 0.1785, 0.1764, 0.1711, 0.1630, 0.1526, 0.1402,
               0.1266, 0.1122, 0.0977, 0.0835, 0.0702, 0.0588, 0.0479, 0.0373, 0.0291, 0.0224])
# 定义正态分布函数形式
def normal_distribution(x, A, mu, sigma):
    return A * np.exp(-((x - mu) ** 2) / (2 * sigma ** 2))
# 使用curve_fit进行最小二乘非线性拟合
popt, pcov = curve_fit(normal_distribution, x0, y0)
# 获取拟合得到的参数
A_fit, mu_fit, sigma_fit = popt
print("拟合得到的参数:")
print(f"A: {A_fit}")
print(f"mu: {mu_fit}")
print(f"sigma: {sigma_fit}")
print("3014")
# 计算拟合值
y_fit = normal_distribution(x0, A_fit, mu_fit, sigma_fit)
# 绘制原始数据和拟合曲线
plt.plot(x0, y0, 'o', label='原始数据')
plt.plot(x0, y_fit, label='拟合曲线')
plt.legend()
plt.show()

2.运行结果

标签:plt,7.10,fit,mu,拟合,print,习题,sigma
From: https://www.cnblogs.com/qishanhsa/p/18550576

相关文章

  • 习题8.5
    1.代码实现点击查看代码importnumpyasnpfromscipy.integrateimportodeintimportmatplotlib.pyplotasplt#定义微分方程组defsystem(state,eta):f,df,d2f,T,dT=stated3f=-3*d2f+2*df**2-Td2T=-2.1*df*dTreturn[df,......
  • 习题8.4
    1.代码实现点击查看代码importnumpyasnpfromscipy.integrateimportodeintimportmatplotlib.pyplotasplt#定义微分方程组defsystem(state,t):x,y=statedxdt=-x**3-ydydt=x-y**3return[dxdt,dydt]#初始条件x0=1y......
  • 数学建模习题7.10
    `importnumpyasnpimportpandasaspdimportmatplotlib.pyplotaspltfromscipy.interpolateimportinterp1d,PchipInterpolator,CubicSplinefromscipy.optimizeimportcurve_fitfromscipy.statsimportnorm读取数据file_path='7.17.xISX'#确保文件......
  • 习题7.10(2)
    1.代码实现点击查看代码importnumpyasnpimportpylabasplt#原始数据点x0=np.array([-2,-1.7,-1.4,-1.1,-0.8,-0.5,-0.2,0.1,0.4,0.7,1,1.3,1.6,1.9,2.2,2.5,2.8,3.1,3.4,3.7,4,4.3,4.6,4.9])y0=np.array([0.1029,0.1174,0.1316,0.144......
  • 数学建模习题8.4
    `importnumpyasnpimportmatplotlib.pyplotaspltfromscipy.integrateimportsolve_ivp定义微分方程系统defsystem(t,state):x,y=statedxdt=-x-ydydt=x-y**3return[dxdt,dydt]定义时间跨度和初始条件t_span=(0,30)y0=[1,0.5]解微分方程so......
  • 数学建模习题7.7
    `importnumpyasnpimportmatplotlib.pyplotaspltfromscipy.optimizeimportcurve_fit,leastsq,least_squares定义函数g(x,a,b)defg(x,a,b):return(10*a)/(10*b+(a-10*b)*np.exp(a*np.sin(x)))初始参数a=1.1b=0.01生成数据x_values......
  • 数学建模习题7.4
    `importnumpyasnpimportmatplotlib.pyplotaspltfromscipy.interpolateimportgriddatadeff(x,y):x2=x2return(x2-2*x)*np.exp(-x2-y2-x*y)x_min,x_max=-3,3y_min,y_max=-4,4num_points=1000x_random=np.random.uniform(x_min,x_ma......
  • 数学建模习题7.3
    `importnumpyasnpimportmatplotlib.pyplotaspltfromscipy.interpolateimportinterp1d,CubicSpline已知的温度和对应的体积T_known=np.array([700,720,740,760,780])V_known=np.array([0.0977,0.1218,0.1406,0.1551,0.1664])需要求解的温度T_query=......
  • 数学建模习题7.1
    `importnumpyasnpimportscipy.interpolateasspiimportscipy.integrateasspi_integrate定义函数g(x)defg(x):return((3x**2+4x+6)*np.sin(x))/(x**2+8*x+6)在区间[0,10]上等间距取1000个点x=np.linspace(0,10,1000)计算这些点处的函数值......
  • 第七章课后习题
    习题7.1点击查看代码importnumpyasnpfromscipy.interpolateimportinterp1dfromscipy.integrateimportquadimportmatplotlib.pyplotaspltg=lambdax:(3*x**2+4*x+6)*np.sin(x)/(x**2+8*x+6)x0=np.linspace(0,10,1000)y0=g(x0......