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)删除。
(0)
用户投稿
上一篇 2022年6月29日
下一篇 2022年6月29日

相关推荐

  • 那些满是遗憾的文案短句

    1、人潮拥挤,我好多余。 2、远方,除了遥远一无所有。 3、世间万物,本就是相互辜负。 4、单曲循环的歌词里都是遗憾。 5、月色常有,但共赏之人难得。 6、望人生常回味,而我不回头…

    2022年6月14日
  • 选择是不是只有一次

    人到了一定年龄,就要选择另一半继续后面的日子,是传宗接代,也是为了在人生旅途中,有一个最真实最真诚的伴侣。当你高兴的时候,适时提醒你保持冷静,切勿得意忘形;当你遭遇挫折时,在你的心…

    2022年6月21日
  • 宝宝成长日记(二)

    有时候真的觉得老天很会开玩笑,产检的时候我做了各种细致检查,为的就是能生一个健康的宝宝。当我拿着医院的羊水穿刺报告,上面写着300多条染色体异常的时候。我以为万无一失了…………到今…

    2022年8月24日
  • AI文本翻译系统质量提升44%,利用超500亿参数翻译200种语言

    Meta Platforms今天开放了NLLB-200的系统代码,NLLB-200是Meta内部开发的一个人工智能系统,可以翻译200种语言的文本。 Meta还公布了一套工具,旨在…

    2022年7月8日
  • Google疑具备“自我意识”AI对话全文及其翻译

    Is LaMDA Sentient? — an Interview What follows is the “interview” I and a collaborator at …

    2022年6月16日
  • 勇气十能力=战胜困难

    一个人要是能不快不慢的来到这个世界,再从容不迫的离开这个世界,那这个人就是这个世界上活的最通透的人了。 人从出生到死去,我们把这个过程叫做人生。 每个人都是从生到死。 可过程却大不…

    2022年4月20日
  • 三道题助你理解物理变化、化学变化、物理性质、化学性质的区别

    题目一:下列属于物理变化的有 ①④⑥⑨ ,因为在这些变化过程里,都没有 新物质生成 ;属于化学变化的有 ②③⑤⑦⑧⑩ ,因为在这些变化过程里,都 有新物质生成 。 ①江河结冰;②钢…

    2022年8月5日
  • 录音笔排行榜前十名(618录音笔销量及销售额排名)

    截止6月6日12:17,在618京东录音笔品类战榜上,销售量和销售额排名前五的分别为科大讯智能录音笔听见H1、科大讯飞智能录音笔SR101、爱国者aigo录音笔R6811、科大讯飞…

    2022年4月18日
  • 新能源车是中国汽车产业百年一遇的大机遇吗?

    近年来,随着市场竞争加剧,越来越多的企业开始关注、重视创新。创新有很多维度来定义,其中一种维度,可以用第一曲线、第二曲线来对创新进行划分。 第一曲线创新,指的是沿着企业既有的发展路…

    2022年6月27日
  • 情感的语言

    所谓先来后到,没有秘密可言。只是在恋爱的时候,挽回一些感情,在冷战的时候懂得一些感恩和理解。 你卑微的要求只会给你带来自豪感和能力感。想要什么,不如让一个值得爱的人。 很多人在分手…

    2022年6月15日

联系我们

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