例6-4 点的线性拟合.docVIP

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

线性回归是利用数理统计中的回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法之一,运用十分广泛。如果在回归分析中,只包括一个自变量和一个因变量,且二者的关系可用一条直线近似表示,这种回归分析称为一元线性回归分析。  一般来说,线性回归都可以通过最小二乘法求出其方程,可以计算出对于y=bx+a的直线,其拟合方程如下:    ?? 其中 ? 式中,Lxy称为xy的协方差之和,Lxx称为x的平方差之和。 //point.h class ? Point //Point类的声明{ public: //外部接口 Point(float ? xx=0, ? float ? yy=0) ? {X=xx;Y=yy;} float ? GetX() ? {return ? X;} float ? GetY() ? {return ? Y;} friend float ?linefit(Point ? l_point[], ?int n_point); //友元函数 //int型变量为点数 private: //私有数据成员float ? X,Y; }; //End ? of ? point.h //6_4.cpp #include iostream #include cmath #include ? point.h using ? namespace ? std; float ? linefit(Point ? l_point[], ? int ? n_point) //友元函数体{ float ? av_x,av_y; //声明变量float ? L_xx,L_yy,L_xy; //变量初始化 av_x=0; //X的平均值av_y=0; //Y的平均值L_xx=0; //Lxx L_yy=0; //Lyy L_xy=0; //Lxy for(int ? i=0;i n_point;i++) //计算X、Y的平均值{ ? ? ? ? av_x+=l_point[i].X/n_point; ? ? ? ? av_y+=l_point[i].Y/n_point; } for(i=0;i n_point;i++) //计算Lxx、Lyy和Lxy { ? ? ? ? L_xx+=(l_point[i].X-av_x)*(l_point[i].X-av_x); ? ? ? ? L_yy+=(l_point[i].Y-av_y)*(l_point[i].Y-av_y); ? ? ? ? L_xy+=(l_point[i].X-av_x)*(l_point[i].Y-av_y); } cout This ? line ? can ? be ? fitted ? by ? y=ax+b. endl; cout a= L_xy/L_xx; //输出回归系数a cout ? b= av_y-L_xy*av_x/L_xx endl; //输出回归系数b return ? float(L_xy/sqrt(L_xx*L_yy)); //返回相关系数r } int ? main() { Point ? l_p[10]={Point(6,10),Point(14,20),Point(26,30), Point(33,40),Point(46,50),Point(54,60),Point(67,70), Point(75,80),Point(84,90),Point(100,100)}; //初始化数据点float ? r=linefit( l_p, 10); //进行线性回归计算cout Line ? coefficient ? r= r endl; //输出相关系数}

文档评论(0)

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

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

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档