最小二乘法拟合直线 c++程序
//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
//main.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; //输出相关系数
}
最小二乘法拟合直线 c++程序相关推荐
- matlab直线拟合的程序,MATLAB最小二乘法拟合直线的程序
最小二乘法拟合直线 程序: function linear_fit %最小二乘法拟合直线clear; clc; prompt={'Name of data file'}; title='Linear_ ...
- C++:最小二乘法拟合直线
原理: 代码: #include <opencv2/opencv.hpp> #include <opencv2/highgui/highgui.hpp>using names ...
- Python实现最小二乘法拟合直线(求斜率截距)
利用最小二乘法拟合直线,实现了对一系列点拟合出其最接近的直线,并给出公式,包括斜率和截距.并且绘制出最终拟合线. 完整代码如下: # 核心代码,求斜率w,截距b def fit(data_x, dat ...
- 最小二乘法拟合直线 C++/OpenCV
问题: 我们在拥有一系列散列的点(x1,y1),(x2,y2)... (xm,ym),这些点在一条直线附近,通过点拟合直线. 我在工程中是要拟合一系列线段,其实一条线段就对应着两个要拟合的点,算法上稍 ...
- 最小二乘法拟合直线簇交点及Ransac拟合
最小二乘法拟合直线簇交点及Ransac拟合 最小二乘法的实现 Ransac优化 语言环境:Python 直线簇方程: y=p→+v→∗ty=\overrightarrow p+\overrightar ...
- opencv学习——最小二乘法拟合直线
最小二乘法拟合直线 概念:最小二乘法多项式直线拟合,根据给定的点,求出它的函数y=f(x),当然求得准确的函数是不太可能的,但是我们能求出它的近似曲线y=φ(x) 原理 假设有点 , I = 1,2 ...
- C++opencv实现最小二乘法拟合直线和平面
使用opencv中的Mat实现用矩阵的方式根据最小二乘法拟合直线和平面方程,但是好像不能实现拟合斜率无穷大的直线和平面方程,后续再改进吧. 有关于原理部分,有时间再详细写一下. #include &q ...
- C++:最小二乘法 拟合直线
分享给有需要的人,代码质量勿喷. 一.y = k * x + b bool xjLeastSquares::xjFitLineByLeastSquares( std::vector<double ...
- 最小二乘法拟合直线——MATLAB和Qt-C++实现
本节Jungle用C++实现最小二乘法拟合平面直线. 1.理论知识 平面直线的通用方程可以表示为 A+Bx-y=0 其中,A是直线的截距,B是直线的斜率.对于测量的二维坐标(x,y),x是精确分布的, ...
最新文章
- watch监听对象里面值的变化_Vue总结——computed和watch的用法和区别
- java启动无线网络连接_在无线模式存在的情况下,如何连接无线网络
- 深入揭示Web 2.0核心技术——混搭
- 在SQL Server 20005中修改存储过程
- android内核模块签名,android安装内核module,提示Required key not available
- sqlserver计算时间差DATEDIFF 函数
- leecode5 最长回文子串
- koa2-cookie-session
- linux-优化内核参数 /etc/sysctl.conf
- 浅谈集群、分布式、微服务的异同
- 话里话外:明白比智慧更重要
- PyTorch1.4安装-进入官网安装时最靠谱的
- 270 扩展固态硬盘_希捷硬盘白送3年原厂数据恢复!成功率高达90
- 关于U盘物理读写锁失效解决(只读状态):工具解锁或U盘量产
- 深度学习在OCR中的应用
- 考点图文详解 - 网络管理(第十一章)
- 最全Python绘制饼形图(饼状图)
- SAP 银企直连交易明细查询的分页与FTP读取
- 微信公号开发之图文消息全攻略
- 爱奇艺qsv视频下载后怎么转换为3gp格式
热门文章
- Inception-v4,Inception-ResNet论文笔记
- python和ui设计,PySide2相当于PyQt5的loadUiType(),用于在UI设计中动态混合
- js 难点之call,apply实现
- linux的定cron计划任务命令
- EasyDarwin开源流媒体服务器如何实现按需推送直播的
- jQuery进行DOM操作记录
- 从C语言中的指针看C#中委托
- C# 字符串格式化测试小工具
- flutter NestedScrollView 下拉刷新的解决方案一
- Mr.J-- jQuery学习笔记(三十)--属性操作方法(添加删除)