《2022年曲线拟合实验报告.pdf》由会员分享,可在线阅读,更多相关《2022年曲线拟合实验报告.pdf(11页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、数值分析课程设计报告学生姓名学生学号所在班级指导教师成绩评定精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 11 页 - - - - - - - - - - 一、课程设计名称函数逼近与曲线拟合二、课程设计目的及要求实验目的:学会用最小二乘法求拟合数据的多项式,并应用算法于实际问题。学会基本的矩阵运算,注意点乘和叉乘的区别。实验要求:编写程序用最小二乘法求拟合数据的多项式,并求平方误差, 做出离散函数和拟合函数的图形;用 MATLAB 的内部函数 polyfit求解上面最小二乘法曲线拟合多项式的
2、系数及平方误差,并用MATLAB 的内部函数 plot作出其图形,并与( 1)结果进行比较。三、课程设计中的算法描述用最小二乘法多项式曲线拟合, 根据给定的数据点, 并不要求这条曲线精确的经过这些点,而是拟合曲线无限逼近离散点所形成的数据曲线。思 路 分 析 : 从 整 体 上 考 虑 近 似 函 数)(xp同 所 给 数 据 点)(iiyx ,误 差iiiyxpr)(的大小,常用的方法有三种:一是误差iiiyxpr)(绝对值的最大值imir0max,即误差向量的无穷范数; 二是误差绝对值的和miir0,即误差向量的 1范数;三是误差平方和miir02的算术平方根,即类似于误差向量的2 范数。
3、前两种方法简单、自然,但不便于微分运算,后一种方法相当于考虑2 范数的平方,此次采用第三种误差分析方案。算法的具体推导过程:1. 设拟合多项式为:精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 11 页 - - - - - - - - - - 2. 给点到这条曲线的距离之和,即偏差平方和:3. 为了求得到符合条件的a的值,对等式右边求偏导数,因而我们得到了:4. 将等式左边进行一次简化,然后应该可以得到下面的等式5. 把这些等式表示成矩阵的形式,就可以得到下面的矩阵:niininiikniki
4、nikinikinikiniiniinikiniiyyyaaxxxxxxxx11i110121111112111an6. 将这个范德蒙得矩阵化简后得到nkknnkkyyyaaaxxxxxx21102211111精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 11 页 - - - - - - - - - - 7. 因为YAX *, 那么XYA/, 计算得到系数矩阵,同时就得到了拟合曲线。四、课程设计内容实验环境: MATLAB2010实验内容:给定的数据点011) 用最小二乘法求拟合数据的多项式
5、;2) 用 MATLAB 内部函数 polyfit函数进行拟合。实验步骤1) 首先根据表格中给定的数据,用MATLAB 软件画出数据的散点图(图1)。2) 观察散点图的变化趋势, 近似于二次函数。 则用二次多项式进行拟合, 取一组基函数, 并令,其中是待定系数。3) 用 MATLAB 程序作线性最小二乘法的多项式拟合,求待定系数。算法实现代码如下:x=0 ;y=1 ;R=(x.2) x ones(7,1);A=Ry4) 用 MATLAB 程序计算平均误差。算法实现代码如下:y1=1 ;x=0 ;y=x.2+x+1;z=(y-y1).2;sum(z)精品资料 - - - 欢迎下载 - - - -
6、 - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 11 页 - - - - - - - - - - 5) 作出拟合曲线和数据图形(图2)。6) 用 MATLAB 的内部函数 polyfit求解上面最小二乘法曲线拟合多项式的系数及平方误差。算法实现代码如下:x=0 ;y=1 ;A=polyfit(x,y,2);%二次多形式拟合 %z=polyval(A,x);Ad=sum(z-y).2)7)绘制使用 polyfit函数实现的拟合图形。(图3)五、程序流程图图 5-1 用最小二乘法求多项式拟合曲线流程图输入初始数据点根据原始数据绘制散点图分析数
7、据点变化趋势,确定拟合多项式用最小二乘法求系数矩阵,确定多项式用所求的多项式,计算误差绘制拟合曲线精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 11 页 - - - - - - - - - - 图 5-2 用 polyfit函数求多项式拟合曲线流程图六、实验结果图 6-1 表中数据的散点图输入初始数据点调用 polyfit函数,确定多形式的系数调用 plot函数进行绘图调用 polyval函数,进行多项式求精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载
8、名师归纳 - - - - - - - - - -第 6 页,共 11 页 - - - - - - - - - - 图 6-2. 最小二乘法实现的拟合曲线第 1 问系数为A = 则多项式的方程为平方误差和为ans =精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 11 页 - - - - - - - - - - 图 6-3. polyfit函数实现的拟合函数第 2 问系数为A = 则多项式的方程为平方误差和为ans = 七、实验结果分析编写程序用最小二乘法求拟合曲线的多项式的过程中,求出的数据和
9、拟合函数的平方误差很小, 达到了很高的精度要求, 以及通过散点求得的拟合曲线比较光滑。而用 MATLAB 的内部函数求 polyfit求解的曲线拟合多项式和平方误差与程序求得的相同,还有就是虽然求解过程简单了,但用MATLAB 的内部函数做出的图形由明显的尖点,不够光滑。此次实验数据较少,而且数据基本都是可靠数据。但是在应用实际问题中,精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 11 页 - - - - - - - - - - 数据会很庞杂, 此时对于最小为乘法的算法就需要进一步的细化。例
10、如在进行数据采集时, 由于数据采集器 (各种传感器) 或机器自身的原因及其外部各种因素的制约,导致数据偶尔会有大幅度的波动,及产生一些偏差极大的数据,不能真实反映数据的可靠性, 所以会对数据进行筛选或修正。 而此时就可应用曲线拟合的最小二乘法的进行处理。八、实验心得体会在日常的学习和生活中, 我们可能会遇到各种方面的跟数据有关的问题,并不是所有的数据都是有用, 必须对数据进行适当的处理, 然后找出数据之间的关系,然后进行分析得出结果。此次实验结果基本没有大的区别,可是MATLAB 提供给我们一个特别简洁的办法, 应用一个函数即可实现相同的结果。 虽然很方便,但是对于初学者来说, 我觉得打好基础
11、才是关键, 对于一个知识点, 应该掌握其最基本的原理,然后在将它应用于实际。通过这个实验我也理解到了, 数值分析是一个工具学科, 它教给了我们分析和解决数值计算问题得方法, 使我从中得到很多关于算法的思想, 从中受益匪浅。附录:源代码散点图:x=0 ;精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 11 页 - - - - - - - - - - y=1 ;plot(x,y,r*)title(实验数据点的散点图 );legend(数据点( xi,yi));xlable(x);ylable(y)
12、;最小二乘拟合:x=0 ;y=1 ;R=(x.2) x ones(7,1);A=Ryx1=0 ;y1=1 ;x=0 ;y=x.2+x+1;plot(x1,y1,k+,x,y,r)title(实验数据点的散点图及拟合曲线);z=(y-y1).2;sum(z)Polyfit函数拟合:x=0 ;y=1 ;A=polyfit(x,y,2);%二次多形式拟合 %z=polyval(A,x);Ad=sum(z-y).2)plot(x,y,k+)精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 10 页,共 11 页 - - - - - - - - - - title(实验数据点的散点图及拟合曲线);hold onplot(x,z,r)精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 11 页,共 11 页 - - - - - - - - - -