注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

信息 灵感 创新

I? =Information,Inspiration,Innovation

 
 
 

日志

 
 
关于我

we are 5. Mathematics, Computation, Programming, Engineering, and Making fun of life.

网易考拉推荐

最小二乘法C++程序  

2011-01-18 19:17:28|  分类: C & C++ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

以前写的一个小程序,算是练习Vector容器的一个例子吧,代码如下:

//by Castor 2010-3-5第四次修改

#include <iostream>

#include <fstream>

#include <vector>

#include<stdlib.h>

using namespace std; 

void LeastSquare(vector<double> va,vector<double> vb,double &a0,double &b0); 

int main(int argc,char** argv)

{

   system("cls");//清屏

    double a=0,b=0;

   if(argc!=2)

   {

         cout<<"Usage:'"<<argv[0]<<".exe DataFile.txt'\n";

         return -1;//输入参数不对

   }

   else

   {

      cout<<"Check the validation of data by yourself.\n";

      vector<double> va;

      ifstream in(argv[1]);

      for(double d;in>>d; )

      {

         va.push_back(d);

      }

      int cnt=va.size();

      vector<double> vb(va.begin()+cnt/2,va.end());

      va.resize(cnt/2);

      LeastSquare(va,vb,a,b);

   }

   cout<<"=============================\n";

   cout<<"a="<<a<<",b="<<b<<endl;

   cout<<"=============================\n";

   system("PAUSE");

   return 0;

} 

void LeastSquare(vector<double> va,vector<double> vb,double &a0,double &b0)

{

   double t1=0,t2=0,t3=0,t4=0;

   for(int i=0;i<va.size();i++)

   {

      t1+=va[i]*va[i];

      t2+=va[i];

      t3+=va[i]*vb[i];

      t4+=vb[i];

   }

   a0=(t3*va.size()-t2*t4)/(t1*va.size()-t2*t2);

   b0=(t1*t4-t2*t3)/(t1*va.size()-t2*t2);

}

 注意提供的数据文件第一行是X变量,第二行是Y变量,为了便于查看,最好是输入一个数据就按一下Tab键,一个例子文件的内容如下:

     0      1      2        3       4         5        6        7
27.0 26.8 26.5   26.3   26.1   25.7   25.3    24.8

  评论这张
 
阅读(2987)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016