100 likes | 244 Views
实验八. 凸轮设计. 插值与拟合. 引例:万能拉拔机凸轮设计. 设计一个圆柱形凸轮,底圆半径为 R=300mm, 上端面要根据从动杆位移变化的需要进行设计制造 根据设计要求,将底圆周18等分,旋转一周。得到下面的图表,第 i 个分点对应柱高 y i , 要求计算出圆周任一点的柱高 。. 数据插值和拟合. 插值:确定一个初等函数 y=P(x)( 一般是多项式或者是分段多项式函数)通过已知各数据点。. 拟合:有函数关系式,其中含有未知参数或原始数据有误差时,并不要求确定的函数经过数据点,而是要求在某个判断标准下的误差最小. 分段线性插值:将各数据点用折线连接起来
E N D
实验八 凸轮设计 插值与拟合
引例:万能拉拔机凸轮设计 设计一个圆柱形凸轮,底圆半径为R=300mm,上端面要根据从动杆位移变化的需要进行设计制造 根据设计要求,将底圆周18等分,旋转一周。得到下面的图表,第i个分点对应柱高yi,要求计算出圆周任一点的柱高。
数据插值和拟合 • 插值:确定一个初等函数y=P(x)(一般是多项式或者是分段多项式函数)通过已知各数据点。 • 拟合:有函数关系式,其中含有未知参数或原始数据有误差时,并不要求确定的函数经过数据点,而是要求在某个判断标准下的误差最小
分段线性插值:将各数据点用折线连接起来 • 多项式插值:求一个多项式通过所有数据点,可以假设出多项式的系数,最后通过求解方程得到每个系数 • 样条插值:分段多项式的光滑连接 • 最小二乘拟合:求参数c,使得用含有c的函数f(x,c)对应的残差达到最小
数据拟合MATLAB命令 • 多项式插值和拟合 p=polyfit(x,y,k): 用k次多项式拟合向量数据(x,y),返回多项式的降幂系数。当k>n-2时,该命令实现多项式插值 • 一元插值 yi=interp1(x,y,xi):根据数据(x,y)给出在xi的分段线性插值结果yi yi=interp1(x,y,xi,’spline’):使用三次样条插值 yi=interp1(x,y,xi,’cubic’):使用分段三次插值
三次样条插值 yi=spline(x,y,xi): 等价于 yi=interp1(x,y,xi,’spline’) Pp=spline(x,y): 返回样条插值的分段多项式 (pp形式)(注:要求x是单调上升的,且只能做内插) [breaks, coefs]=unmkpp(pp) 将pp形式展开,其中 breaks为结点,coefs为各段多项式系数。 yi=ppval(pp,xi), pp形式在xi的函数值
线性最小二乘拟合 线性最小二成拟合可直接用求解超定线性方程组的方法,而有些非线性函数也可化为线性问题求解。 例如上述函数y=aexp(bx)两边取对数得z=lna+bx然后通过除法解超定方程组得到每个系数
实验例题 • 凸轮设计 对于引例的凸轮设计问题,可以通过分段线性插值和样条插值的方法解决
人口预测 按照统计数据建立人口增长的数学模型。 (1)Malthus模型:用指数函数最小二乘拟合 (2)Logistic 模型: 用Logistic函数拟合
非线性最小二乘拟合 C=leastsq(‘fun’,c0) 使用迭代法搜索最有参数c。其中自变量为参数c的函数fun是误差向量y-f(c,x) (x,y为数据); C=curvefit(‘fun2’,c0,x,y)使用更方便,从外部输入数据,这里fun2为函数f(c,x) 。