资源简介
vs2010工程C++实现 利用最小二乘法实现多元一次方程线性拟合。
利用递归方法求逆矩阵,所以高阶矩阵(9阶以上)会比较慢。
代码片段和文件信息
// regression.cpp : 定义控制台应用程序的入口点。
//
#include “stdafx.h“
#include “regression.h“
#include
#include
#include
#include
int _tmain(int argc _TCHAR* argv[])
{
FILE *fp;
char fbuffer[200];
int rowcolumn;
double data[31][31];
row = 0;
column = 0;
errno_t err;
err = fopen_s(&fp“test.txt““r“);
if(err != 0){
return 1;
}
while(!feof(fp)){
int dnum;
if(fgets(fbuffersizeof(fbuffer)fp) != NULL){
char *p_buf*p_datasep;
p_buf = fbuffer;
dnum = 0;
while(1){
if((p_datasep = strchr(p_buf‘‘)) != NULL){
*p_datasep = ‘\0‘;
data[row][dnum] = atof(p_buf);
p_buf = p_datasep+1;
dnum++;
}
else{
if(strlen(p_buf) > 0){
//*p_datasep = ‘\0‘;
data[row][dnum] = atof(p_buf);
p_buf = p_datasep+1;
dnum++;
}
break;
}
if(dnum > 30){
std::cout<<“数据越界,最大矩阵30*30“< return 1;
}
}
row++;
if(row > 30){
std::cout<<“数据越界,最大矩阵30*30“< return 1;
}
}
if(column == 0){
column = dnum;
}
else{
if(column != dnum){
std::cout<<“矩阵列数不一致“< return 2;
}
}
}
fclose(fp);
if((row == 0)||(column==0)){
std::cout<<“矩阵为空“< return 3;
}
//计算耗时(小于1小时内有效)
SYSTEMTIME time;
long t_timet_time2;
int hour;
GetSystemTime( &time );
hour = time.wHour;
t_time = time.wMinute*60000;
t_time += time.wSecond*1000;
t_time += time.wMilliseconds;
regression regress(rowcolumn);
for(int i=0;i
for(int j=0;j regress(ij) = data[i][j];
}
}
regress.lineregression();
GetSystemTime( &time );
t_time2 = time.wMinute*60000;
t_time2 += time.wSecond*1000;
t_time2 += time.wMilliseconds;
if(hour != time.wHour){
t_time2 += 3600000;
}
for(int i=0;i printf(“%f\t“regress.calculate_rst(i));
}
printf(“\n“);
printf(“Spend %ld milliseconds\n“t_time2-t_time);
getchar();
return 0;
}
相关资源
- 空间离散点椭球拟合源代码EllipsoidF
- 最小二乘法的曲线拟合最高到6次MFC实
- C语言最小二乘法多项式拟合
- 多元线性回归
- 空间平面拟合算法
- C++实现回归算法(逻辑回归 线性回归
- 高斯牛顿法 最小二乘法 拟合函数
- 线性回归c++实现
- 最小二乘法曲线拟合C语言可执行代码
- 局部线性回归c++实现
- 空间平面的最小二乘拟合
- 非线性最小二乘法C语言代码
- 由离散数据内插出规则格网数据的程
- opencv椭圆拟合长短轴比
- 用c编写的最小二次方程序
- 激光雷达数据读取、显示、分割、直
- c++ 最小二乘算法拟合球心 使用Vs200
- C++实现最小二乘法一元回归和多项式
- 曲线最小二乘法多项式拟合C++Qt实现界
- 多元线性回归完美C语言模型
- 正交函数作最小二乘拟合(C语言)
- 《基于递推最小二乘的三轴磁强计在
- c++ 椭圆拟合算法
- c++ 三次样条曲线拟合
- 最小二乘法曲线拟合C++
- VC写的B样条曲线拟合程序
- 多个三维空间点拟合平面
- C++曲线拟合源代码
- B样条曲线数据拟合代码,c\\c++
- 基于c+++Opencv的图像边缘提取及拟合
评论
共有 条评论