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

习题7.10(2)

时间:2024-11-17 14:58:48浏览次数:1  
标签:7.10 degree rmsd np y0 习题 x0 best

1.代码实现

点击查看代码
import numpy as np
import pylab as plt

# 原始数据点
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])
# 尝试不同的多项式阶次,这里从1到10阶
degrees = range(1, 11)
best_degree = None
best_coeffs = None
best_rmsd = np.inf
for degree in degrees:
    A = np.vander(x0, degree + 1)
    p = np.linalg.lstsq(A, y0, rcond=None)[0]
    # 计算拟合值
    y_pred = np.polyval(p, x0)
    # 计算剩余标准差(Root Mean Squared Deviation)
    residuals = y0 - y_pred
    rmsd = np.sqrt(np.mean(residuals ** 2))
    if rmsd < best_rmsd:
        best_degree = degree
        best_coeffs = p
        best_rmsd = rmsd
print(f"最佳多项式阶次为: {best_degree}")
print("相应多项式从高次到低次幂的系数为:", np.round(best_coeffs, 4))
print("剩余标准差为:", best_rmsd)
print("3014")
plt.plot(x0, y0, 'o')
xt = np.linspace(min(x0), max(x0), 100)
plt.plot(xt, np.polyval(best_coeffs, xt))
plt.show()

2.运行结果

标签:7.10,degree,rmsd,np,y0,习题,x0,best
From: https://www.cnblogs.com/qishanhsa/p/18550562

相关文章

  • 数学建模习题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......
  • 第八章课后习题
    习题8.4点击查看代码fromscipy.integrateimportodeintimportnumpyasnpimportmatplotlib.pyplotasplt#设置Matplotlib不使用LaTeXplt.rc('font',size=15)plt.rc('text',usetex=False)#定义微分方程系统dz=lambdaz,t:[-z[0]**3-z[1],z[0]-......
  • 数据结构/第二章 线性表/数据结构习题/线性表的习题/考研/期末复习
    一、选择题1.在线性表中,表尾元素(    )。A.有且仅有一个直接前驱        B.有且仅有一个直接后继C.没有直接前驱               D.有多个直接前驱2.在顺序表上按位查找一个元素的时间复杂度是(    )。A.O......
  • 操作系统离散存储练习题
    1. (简答题)分页存储管理系统具有快表,内存访问时间为2ns,检索快表时间为0.5ns,快表命中率为80%,求有效访问时间-分析:首先访问缓存(快表),如果没有找到访问内存(页表)。不管是快表+页表找到还是快表直接找到目标位置,都要访问内存找目标。-解答:80%*0.5+(2+0.5)*(1-80%)+2=2.9ns2. (简答......
  • java常用类的练习题
    输入三个字名字的拼音每个字的拼音之间用空格隔开,形式如下:输入—>Javadingzhen输出—>zhen,Java.D/***@AuthorJava顶针*@Version1.0*/publicclassTest03{publicstaticvoidmain(String[]args){Stringname="wangqingshan";p......