




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
曲线拟合实现对于曲线拟合,本次主要阐述利用MATLAB和C语言两种方式如何进行拟合。1.利用MATLAB实现(1)多项式拟合多项式拟合是利用多项式最佳地拟合观测数据,使得在观测数据点处的误差平方和最小。在MATLAB中,利用函数ployfit和ployval进行多项式拟合。函数ployfit根据观测数据及用户指定的多项式阶数得到光滑曲线的多项式表示,polyfit的一般调用格式为:P=polyfit(x.y,n)o其中x为自变量,y为因变量,n为多项式阶数。polyval的输入可以是标量或矩阵,调用格式为:pv=polyval(p,a)pv=polyval(p,A)其中,p为多项式表示,a为标量,A为矩阵。当输入参数为M*N矩阵A时,函数返回值pv也是M*N矩阵,且pv(ij)=polyval(p,A(ij))o步骤如下:(1)对ln(l+x)在。1]内采样得到观测数据x、y。»x=0:0.1:1.0;»y=log(l+x);(2)调用函数polyfit对观测数据x、y作三阶多项式拟合。»P=polyfit(x,y,3)得出P对应的多项式为0.1079-0.3974X+0.9825x2+0.004x3.(3)分别作拟合曲线和理论曲线»xi=0:0.01:1.0;»yi=polyval(P,xi); %多项式求值»plot(x,y,,ro,); %观测数据点»holdon;%作拟合曲线»plot(xi,yi,k);%作拟合曲线»plot(xi,log(14-xi),,g,);%理论曲线»xlabel('x');»ylabel('y');»legend。采样数据?拟合曲线?精确曲线上(2)指数函数拟合以指数函数拟合示例:对Jx在[0,1]的采样数据作指数函数拟合步骤如下:1)对1-Vx在[0,1]内采样得到观测数据x、y;»x=0:0.01:0.99;»y=1-sqrt(x);2)调用函数polyfit对x>Iny作一阶多项式拟合;>>P=polyfit(x,log(y),l)3)求得拟合曲线;yi=exp(polyval(P,x));4)分别作观测数据点、拟合曲线和理论曲线;»yi二exp(polyval(P,x));»plot(x,y,k1);»holdon;»plot(x,yi,'「);»xlabel('x');»ylabel('y');»legend。采样数据?拟合曲线);»holdoff;5)分析拟合误差。»e=yi-y;»plot(x,e);»xlabel('x');»ylabel。误差)(3)交互式曲线拟合工具具体实现如下:1)载入censusdata数据;»loadcensus2)作censusdata点图;»plot(cdate,pop/ko*);3)在MATLAB的figure中选择ToolfBasicFitting,即得至UBasicFittinginterface界面。2.C语言实现利用最小二乘法进行曲线拟合,下面对该方法进行简要概述最小二乘法(又称最小平方法)是一种数学优化技术。它通过最小化误差的平方和寻找数据的最佳函数匹配。利用最小二乘法可以简便地求得未知的数据,并使得这些求得的数据与实际数据之间误差的平方和为最小。最小二乘法还可用于曲线拟合,其他一些优化问题也可通过最小化能量或最大化燧用最小二乘法来表达。最小二乘法是解决曲线拟合问题最常用的方法。其基本思路是:令=Q131(工)+Q282(①)+・・,+。皿仍几(1)其中,『A⑸是事先选定的一组线性无关的函数,ak是待定系数,拟合准则是使y(i=l,2…n)与f(x。的距离的平方和最小,称为最小二乘准则.方法简要概述如下:1,采用目标函数对多项式系数求偏导,得到最优值条件,组成一个方程组;2,方程组的解法采用行列式变换(两次变换:普通行列式一一三角行列式一一对角行列式——求解),行列式的求解算法上优化过一次了,目前还没有更好的思路再优化运算方法,限幅和精度准备再修改修改/*本实验根据数组x[],y口列出的一组数据,用最小二乘法求它的拟合曲线。近似解析表达式为y=aO+al*x+a2*xA2+a3*xA3;*/#include<stdio.h>#include<math.h>#definemaxn12#definerank_3intmain(){doublex[maxn]={0,5,10,15,20,25,30,35,40,45,50,55};doubley[maxn]={0,1.27,2.16,2.86,3.44,3.87,4.15,4.37,4.51,4.58,4.02,4.64};doubleatemp[2*(rank_+1)]={0},b[rank_+1]={0},a[rank_+l][rank_+1];intij,k;for(i=0;i<maxn;i++){//atemp[l]+=x[i];atemp[2]+=pow(x[i],2);atemp[3]+=pow(x[i],3);atemp[4]+=pow(x[i],4);atemp[5]+=pow(x[i],5);atemp[6]+=pow(x[i],6);b[0]+=y[i];b[l]+=x[i]b[2]+=pow(x[i],2)*y[i];b[3]+=pow(x[i],3)*y[i];)atemp[0]=maxn;/*for(i=0;i<=2*rank_;i++)printf(natemp[%d]=%f\nn,i,atemp[i]);printf(,'\nn);for(i=0;i<=rank_;i++)printf(nb[%d]=%f\nn,i,b[i]);printf(n\nu);*/for(i=0;i<rank_+1;i++){ 〃构建线性方程组系数矩阵,b[]不变k=i;for(j=0;j<rank_+1;j++)a[i][j]=atemp[k++];)/*for(i=0;i<rank_+1;i++){for(j=0;j<rank.+1;j++)printf(na[%d][%d]=%-17f二ij,a[i][j]);printf(n\nH);)printf(n\nn);*/〃以下为高斯列主元消去法解线性方程组for(k=0;k<rank_+1-1;k++){//n-1列intcolumn=k;doublemainelement=a[k][k];for(i=k;i<rank_+1;i++)〃找主元素if(fabs(a[i][k])>mainelement){mainelement=fabs(a[i][k]);column=i;)for(j=k;j<rank_+1;j++){〃交换两行doubleatemp=a[k][j];a[k][j]=a[column][j];a[column][j]=atemp;)doublebtemp=b[k|;b[k]=b[column];b[column]=btemp;for(i=k+1;i<rank_+1;i++){〃消元过程doubleMik=a[i][k]/a[k][k];for(j=k;j<rank_+1;j++)a[i][j]-=Mik*a[k][j];b[i]-=Mik*b[k];))/*for(i=0;i<rank_+1;i++){〃经列主元高斯消去法得到的上三角阵(最后一列为常系for(j=0;j<rank_+1;j++)printf(',%20f;a[i][j]);printf(M%20f\nn,b[i]);)printf("\n");*/b[rank_+1-1]/=a[rank_+1-l][rank_+1-1];〃回代过程for(i=rank_+1-2;i>=0;i—){doublesum=0;for(j=i+1;j<rank_+1;j++)sum+=a[i][j]*b[j];b[i]=(b[i]・sum)/a[i][i];)〃高斯列主元消去法结束printf(MP(x)=%f%+fx%+fx八2%+fx八3\n\n\b[0],b[l],b[2],b[3]);for(i=0;i<maxn;i++){〃误差比较doubletemp=b[0]+b[1]*x[i]+b[2]*x[i]*x[i]+b[3]*x[i]*x[i]*x[i];printf(n%f%ferror:%An",y[i],temp,temp-y[i]);)return0;)以上就是利用C语言进行的曲线拟合(采用最小二乘法),最小二乘法拟合曲线利用求偏导方式进行筛选最优值的条件,之后运用矩阵的行列变换实现了曲线拟合与误差分析。总的来说,利用C语言最小二乘法进行曲线拟合是较为简便的,虽然不像MATLAB可以直接调用数据和函数,但是可发现C语言进行数
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 由员工经营公司合同协议
- 热水器安装安全协议合同
- 深水井打井合同协议范本
- 牙科技术入股合作协议书
- 潍坊修剪车采购合同范本
- 香港化验所转让合同范本
- 杂志社与代理的合同协议
- 洪山区口译服务合同范本
- 苏州技师学院就业协议书
- 舞蹈培训机构合同协议书
- GA 1517-2018金银珠宝营业场所安全防范要求
- 部编版二年级下册语文期末考试试卷质量分析
- 浦发银行个人信用报告异议申请表
- 《铁路技术管理规程》(普速铁路部分)-14年新版
- 信息系统实施前现状和需求调研计划提纲共享
- 浙江省舟山市各县区乡镇行政村村庄村名居民村民委员会明细
- 《临床实验室管理》课件
- 少儿围棋启蒙PPT2
- 华北理工大学生物药剂学与药物动力学教案
- 太平人寿保险有限公司个人寿险业务人员管理办法XXXX版
- 湖北水文工程单元施工质量评定表印
评论
0/150
提交评论