C#最小二乘法擬合曲線成直線的實(shí)例
最小二乘法擬合曲線成直線
效果
- 擬合前

- 擬合后

傳入X軸和Y軸的數(shù)據(jù),得到新的Y軸數(shù)據(jù)。
將X值數(shù)據(jù)和擬合后的Y軸數(shù)據(jù)綁帶即可。
/// <summary>
/// 最小二乘法/線性回歸,得到新的點(diǎn)
/// </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;
}
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
RegexOptions.IgnoreCase正則表達(dá)式替換,忽略大小寫
RegexOptions.IgnoreCase正則表達(dá)式替換,忽略大小寫,需要的朋友可以參考一下2013-03-03
使用xmltextreader對(duì)象讀取xml文檔示例
這篇文章主要介紹了使用xmltextreader對(duì)象讀取xml文檔的示例,需要的朋友可以參考下2014-02-02
C#實(shí)現(xiàn)DataSet內(nèi)數(shù)據(jù)轉(zhuǎn)化為Excel和Word文件的通用類完整實(shí)例
這篇文章主要介紹了C#實(shí)現(xiàn)DataSet內(nèi)數(shù)據(jù)轉(zhuǎn)化為Excel和Word文件的通用類,涉及C#中DataSet控件的使用及Excel和Word文件的相關(guān)操作技巧,需要的朋友可以參考下2016-06-06
VB.NET中TextBox的智能感知應(yīng)用實(shí)例
這篇文章主要介紹了VB.NET中TextBox的智能感知應(yīng)用實(shí)例,非常實(shí)用的功能,需要的朋友可以參考下2014-08-08
C#和vb.net實(shí)現(xiàn)PDF 添加可視化和不可見數(shù)字簽名
本文通過(guò)C#程序代碼展示如何給PDF文檔添加可視化數(shù)字簽名和不可見數(shù)字簽名。文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
Unity shader實(shí)現(xiàn)自由放大縮小效果
這篇文章主要為大家詳細(xì)介紹了Unity shader實(shí)現(xiàn)自由放大縮小效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-02-02

