C语言实现最小二乘法

在此之前我们再回顾下上一篇文章中的系数求解公式。二次拟合曲线的方程为:

C语言实现最小二乘法

系数行列式为:

C语言实现最小二乘法

另外:

C语言实现最小二乘法

所求系数为:

C语言实现最小二乘法


使用C实现最小二乘法为:

#include
#include 
#include

#define DATA_NUM (6)
#define DOUBLE_PRECISION (1e-15)

double x[DATA_NUM]={0,2,4,6,8,10};
double y[DATA_NUM]={0,6,25,42,70,110};

//y = a*x^2 + b*x + c
bool LeastSquares(double *x, double *y, unsigned int data_num, double *a, double *b, double *c) {
   double sumx=0,sumx2=0,sumx3=0,sumx4=0,sumy=0,sumxy=0,sumx2y=0;
   double D=0;

   if(!data_num) return false;

   for(int i=0;i

上述在求解行列式值的时候使用的是代数余子式方法求解。即用某一个列与代数余子式相乘。


往期推荐

最小二乘法系数求解

最小二乘法曲线拟合推导过程

页面更新:2024-04-11

标签:乘法   行列式   篇文章   代数   所求   方程   系数   公式   曲线   过程   语言

1 2 3 4 5

上滑加载更多 ↓
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top