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 + cbool 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<data_num;i++) { sumx+=x[i];sumy+=y[i]; sumx2+=pow (x[i],2); sumxy+=x[i]*y[i]; sumx3+=pow(x[i],3); sumx2y+=pow(x[i],2)*y[i]; sumx4+=pow(x[i],4); } D = sumx2*sumx2*sumx2 + sumx*sumx*sumx4 + data_num*sumx3*sumx3 – data_num*sumx2*sumx4 – 2*sumx*sumx2*sumx3; if (fabs(D) < DOUBLE_PRECISION) { return false; } *a = (sumy*(sumx2*sumx2-sumx*sumx3) + sumxy*(data_num*sumx3-sumx*sumx2) + sumx2y*(sumx*sumx-data_num*sumx2))/D; *b = (sumy*(sumx*sumx4-sumx2*sumx3) + sumxy*(sumx2*sumx2-data_num*sumx4) + sumx2y*(data_num*sumx3-sumx*sumx2))/D; *c = (sumy*(sumx3*sumx3-sumx2*sumx4) + sumxy*(sumx*sumx4-sumx2*sumx3) + sumx2y*(sumx2*sumx2-sumx*sumx3))/D; return true;}int main() { double a,b,c; LeastSquares(x, y, DATA_NUM, &a, &b, &c); printf("a=%9.8f,b=%9.8f,c=%9.8f",a,b,c); printf ("y=%9.6fx*x+%9.6fx+%9.6f",a,b,c); return 0;}

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

往期推荐

最小二乘法系数求解

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

郑重声明:本文内容及图片均整理自互联网,不代表本站立场,版权归原作者所有,如有侵权请联系管理员(admin#wlmqw.com)删除。
用户投稿
上一篇 2022年6月29日 06:06
下一篇 2022年6月29日 06:06

相关推荐

  • c语言大佬是什么意思网络用语(c语言系列大佬)

    网络用语在生活中使用也是非常多的,大家对这些新的词语含义也都十分好奇,c语言大佬是什么意思?近日在b站还有抖音等平台的评论区中也经常看到c语言大佬这个词,大家对此十分好奇,下面跟小…

    2022年11月17日
  • 淘宝商家违约怎么让他们赔偿(淘宝商家违约不发货应该赔偿多少)

    淘宝商家违约的情况网上也有不少人咨询,据悉部分淘宝用户在购物的时候遇到商家违约的情况,这时候用户是可以通过平台来申请相关的赔偿的。那么,淘宝商家违约怎么让他们赔偿?具体的操作流程是…

    2022年11月17日
  • 直径乘以3.14等于圆的面积吗(圆的周长公式)

    圆是古人最早认知的几何图形之一,他们使用绳子在丈量土地时,发现只要一个人拿着绳子一端原地不动,一人拉着绳子另一端移动,就会画出一个圆形。因而意识到圆有两个核心要素:圆心和半径。 圆…

    2022年11月17日
  • 魔方最后一层公式(3乘3魔方最后一层公式)

    本文主要讲的是魔方最后一层公式,以及和3乘3魔方最后一层公式相关的知识,如果觉得本文对您有所帮助,不要忘了将本文分享给朋友。 魔方最后一层公式口诀是什么? 魔方最后一层公式口诀是,…

    2022年11月14日
  • 完全立方差公式(完全立方差公式a3b3)

    今天小编给各位分享完全立方差公式的知识,其中也会对完全立方差公式a3b3进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧! 完全立方公式是什么? (a+b)³=…

    2022年11月10日
  • 16个基本导数公式(arctanx的导数是什么)

    反三角函数的定义值及值域这里简单总结了反三角函数的定义、其对应的三角函数、其定义域、值域,其后利用反函数求导法则完成了所有反函数求导公式的推导证明。不难看出上述推导过程其实都并不复…

    2022年11月6日
  • 制作搜索引擎从以下几个方面入手(如何制作搜索引擎)

    痛点 我在大学里开设一门《信息系统开发》课程,授课对象是信息管理专业高年级的本科生。作为最后一门系统类课程,这门课需要大综合,就是把之前学到的知识都用上,做一个实际的系统出来。系统…

    2022年11月6日
  • 久其转债是什么(久其软件的转债是什么意思)

    1、如“有权提出调整”说明仅是“权利”而不是“义务”提交股东大会能否通过还需要一定的票数就算是实施了,具体下调到哪里也有限制此外,有的可转债进入转股期后才能向下修正,也需留心;泰山…

    2022年11月6日
  • 保险业双录是什么意思(保险公司的双录是什么意思)

    2017年11月起,规定向60周岁含以上年龄的投保人销售保险期间超过一年的人身保险产品,需要进行双录,但2021年6月银保监会消保局正就保险销售行为可回溯管理办法征求意见稿向业内征…

    2022年11月5日
  • 小学门口适合1一2元的生意好操作,中小学校门口热门生意

    有学校就意味着有商机,那么在学校附近卖啥小吃最火呢?小编在初高中学校附近摆了2年的地摊小吃,分享几款已实践最火的小吃给你们。 1:钵仔糕 难度系数 利润系数 实践最高记录:5个小时…

    2022年10月31日

联系我们

联系邮箱:admin#wlmqw.com
工作时间:周一至周五,10:30-18:30,节假日休息