实验3__曲线拟合的最小二乘法2..docVIP

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验3__曲线拟合的最小二乘法2.

实验三 曲线拟合的最小二乘法 实验目的: 1.最小二乘法的基本原理; 2.用多项式作最小二乘曲线拟合原理的基础上,通过编程实现一组实验数据 的最小二乘拟合曲线。 2、实验要求: 认真分析题目的条件和要求,复习相关的理论知识,选择适当的解决方案和算法; 编写上机实验程序,作好上机前的准备工作; 上机调试程序,算各种方案,记录计算的结果(包括必要的中间结果); 分析和解释计算结果; 按照要求书写实验报告; 3、实验内容: 1) 给定数据如下: x : 0.15,0.4,0.6 ,1.01 ,1.5 ,2.2 ,2.4, 2.7, 2.9, 3.5 ,3.8 ,4.4, 4.6 ,5.1 ,6.6, 7.6; y : 4.4964,5.1284,5.6931 ,6.2884 ,7.0989 ,7.5507 ,7.5106, 8.0756, 7.8708,8.2403 ,8.5303 ,8.7394, 8.9981 ,9.1450 ,9.5070,9.9115; 试作出幂函数拟合数据。 2) 已知一组数据: x : 0,0.1,0.2 ,0.3 ,0.4 ,0.5 ,0.6,0.7,0.8,0.9 ,1 y : -0.447,1.978,3.28 ,6.16 ,7.08 ,7.34 ,7.66,9.56,9.48,9.30 ,11.2; 试用最小二乘法求多项式函数,使与此组数据相拟合。 4、题目: 曲线拟合的最小二乘法 5、原理:由已知的离散数据点选择与实验点误差最小的曲线 称为曲线拟合的最小二乘法。 若记 上式可改写为这个方程成为法方程,可写成距阵形式 其中 。 它的平方误差为: ? 6、设计思想: 从几何意义上讲,就是寻求与给定点 (i=0,1,…,m)的距离平方和为最小的曲线。函数 称为拟合 函数或最小二乘解,求拟合函数 的方法称为曲线拟合的最小二乘法。#includestdio.h #includemath.h void main() { double a0[16][2],a1[2][16],A[2][2],Y[2];//a1是a0的转置,A表示 a0*a1,Y表示a1*y[j] int i,j,k; double x[16]={0.15,0.4,0.6,1.01,1.5,2.2,2.4,2.7,2.9,3.5,3.8,4.4, 4.6,5.1,6.6, 7.6}; double y[16]={4.4964,5.1284,5.6931,6.2884,7.0989,7.5507,7.5106, 8.0756,7.8708,8.2403,8.5303,8.7394,8.9981,9.1450,9.5070,9.9115}; double m0,m1,n; //m1是幂函数X的系数,n是X的指数 for(i=0;i=15;i++) { a0[i][0]=1; a0[i][1]=log(x[i]); y[i]=log(y[i]); printf(输入X的值: ); printf(%f ,a0[i][1]); printf(得到的对应的函数值:); printf(%f \n ,y[i]);} printf(\n); for(i=0;i=15;i++) for(j=0;j=1;j++) {a1[j][i]=a0[i][j];}//以上正确 A[0][0]=0;A[0][1]=0;A[1][0]=0;A[1][1]=0;Y[0]=0;Y[1]=0; for(i=0;i=1;i++) { for(j=0;j=1;j++) {for(k=0;k=15;k++) {A[i][j]+=a1[i][k]*a0[k][j];} } } for(i=0;i=1;i++) { for(j=0;j=15;j++) {Y[i]+=a1[i][j]*y[j];} } m0=(Y[0]*A[1][1]-Y[1]*A[0][1])/(A[0][0]*A[1][1]-A[1][0]

文档评论(0)

sfkl + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档