C#最小二乘法拟合曲线成直线的实例
作者:yangzm996 发布时间:2021-10-23 16:20:47
标签:C#,最小二乘法,曲线,直线
最小二乘法拟合曲线成直线
效果
拟合前
拟合后
传入X轴和Y轴的数据,得到新的Y轴数据。
将X值数据和拟合后的Y轴数据绑带即可。
/// <summary>
/// 最小二乘法/线性回归,得到新的点
/// </summary>
/// <param name="Points"></param>
/// <param name="err"></param>
/// <returns></returns>
private List<double> LinearRegression(List<double> PointsX, List<double> PointsY)
{
List<double> Result = null;
if (PointsX.Count < 2 || PointsY.Count < 2 || PointsX.Count != PointsY.Count)
{
return Result;
}
double Averagex = 0, Averagey = 0;
for (int i = 0; i < PointsX.Count; i++)
{
Averagex += PointsX[i];
Averagey += PointsY[i];
}
Averagex /= PointsX.Count;
Averagey /= PointsX.Count;
double Numerator = 0, Denominator = 0;
for (int i = 0; i < PointsX.Count; i++)
{
Numerator += (PointsX[i] - Averagex) * (PointsY[i] - Averagey);
Denominator += (PointsX[i] - Averagex) * (PointsX[i] - Averagex);
}
double K = Numerator / Denominator;
double B = Averagey - K * Averagex;
List<double> temp = new List<double>();
foreach (var item in PointsX)
{
temp.Add(K * item + B);
}
Result = temp.ToList();
return Result;
}
来源:https://blog.csdn.net/weixin_39448579/article/details/128582213


猜你喜欢
- Android 中Manifest.xml文件详解每一个Android项目都包含一个清单(Manifest)文件--AndroidManif
- 这篇文章主要介绍了线程池中使用spring aop事务增强,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要
- 一键格式化代碼: Ctrl+Alt+L注意:如果按Ctrl+Shift+F在win10上会出现字体的简繁转换,再重复按键一次就可以转换回来a
- windows应用程序(包括控制台)在运行时如果出现了未处理的异常会出项windows的异常提示框 &nb
- 什么是冒泡排序冒泡排序指重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从小到大)错误就把他们交换过来。走访元素的工作是重复
- 前言在微服务的多样化世界中,HTTP是代理到代理通信中无可争议的领导者。它成熟,无处不在。但在某些情况下,HTTP请求-响应可能很麻烦。如果
- 前言本文告诉大家一个简单的方法从 BBcode 转为 Markdown,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。本文
- Optional在JAVA中被定义为一个容器类,更确切的说只存一个元素的容器。container object which may or m
- 引言思考:HashTable是线程安全的,为什么不推荐使用?HashTable是一个线程安全的类,它使用synchronized来锁住整张H
- 一、项目简述功能: 一套完整的网上花店商场系统,系统支持前台会员的注册 登陆系统留言,花朵的品种选择,详情浏览,加入购物 车,购买花朵等;后
- RocketMQ发送消息我们在使用RocketMQ发送消息时,一般都会使用DefaultMQProducer,类型的代码如下:Default
- UGUI的滑动组件虽然表现上和NGUI的ScrollView一致,但是它更美好的是开放源码的,不了解原理的时候直接查源码就OK。在使用Scr
- 现在,汽车的踪影无处不在,公路上疾驰,大街边临停,小区中停靠,车库里停泊。管理监控如此庞大数量的汽车是个头疼的问题。精明的人们把目光放在车牌
- 本文实例讲述了Android开发实现查询远程服务器的工具类QueryUtils。分享给大家供大家参考,具体如下:/** * 查询远程服务器的
- 有想过hash["A1"] = DateTime.Now;这句是怎么实现的吗?我们来重温下学校时代就学过的哈希算法吧。我
- 本文实例为大家分享了Android实现蒙板效果的相关代码,供大家参考,具体内容如下1、不保留标题栏蒙板的实现效果:原理:1、弹窗时,设置背景
- 本文实例讲述了Android6.0开发中屏幕旋转原理与流程。分享给大家供大家参考,具体如下:从Android 系统开发开始,这里写下Andr
- 前言今天想到了一个问题,如果一个依赖只有子模块用到了,是放入子模块的 pom.xml 呢,还是放入父模块的 pom.xml 呢?理论上当然是
- 定义:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。类型:行为类
- Android SQLite数据库版本升级的管理实现我们知道在SQLiteOpenHelper的构造方法:super(Context con