0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

c语言实现一元线性回归

嵌入式应用开发 来源:嵌入式应用开发 作者:嵌入式应用开发 2022-06-17 16:16 次阅读

第一:用所给样本求出两个相关变量的(算术)平均值

第二:分别计算分子和分母:(两个公式任选其一)分子

第三:计算b:b=分子/分母

用最小二乘法估计参数b,设服从正态分布,分别求对a、b的偏导数并令它们等于零。

先求x,y的平均值X,Y,再用公式代入求解:

pYYBAGKsOHmAOXvIAAArOnhJzHs998.png

后把x,y的平均数X,Y代入a=Y-bX

求出a并代入总的公式y=bx+a得到线性回归方程

(X为xi的平均数,Y为yi的平均数)


#include  
#include  
void main()
 {
	float x[8] = {300.0 , 400.0 , 400.0 , 550.0 , 720.0 , 850.0 , 900.0 , 950.0};
	float y[8] = {300.0 , 350.0 , 490.0 , 500.0 , 600.0 , 610.0 , 700.0 , 660.0};
    int i;
	int n; 
	float x_ave, y_ave, a, b, b1, mxy, sum_x, sum_y, lxy, xiSubSqr;
	n = sizeof(x) / sizeof(x[0]);
 

	a = b = mxy = sum_x = sum_y = lxy = xiSubSqr = 0.0;
 
	for (i = 0; i < n; i++)
	{
		sum_x += x[i];
		sum_y += y[i];
	}
 
     x_ave = sum_x / n;
	 y_ave = sum_y / n;
 
	for (i = 0; i != n; i++)
	{
		lxy += (x[i] - x_ave) * (y[i] - y_ave);
		xiSubSqr += (x[i] - x_ave) * (x[i] - x_ave);
	}
 
	b = lxy / xiSubSqr;
	a = y_ave - b * x_ave;
 
	printf("y=%0.2fx+%0.2f\n", b, a);
 
	system("pause");
}

运行代码如下:

poYBAGKsOCWAN_4gAAFZyr1ZzWc712.png


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 算法
    +关注

    关注

    23

    文章

    4455

    浏览量

    90750
  • C语言
    +关注

    关注

    180

    文章

    7530

    浏览量

    128514
  • 线性回归
    +关注

    关注

    0

    文章

    41

    浏览量

    4251
收藏 人收藏

    评论

    相关推荐

    C语言实现数字信号处理算法

    C语言实现数字信号处理算法
    发表于 08-16 23:17

    CRC算法和c语言实现

    CRC算法和c语言实现
    发表于 08-20 19:21

    凹槽凸轮轮廓线的解析设计及C语言实现

    凹槽凸轮轮廓线的解析设计及C语言实现
    发表于 06-04 10:44

    C语言实现FFT(快速傅里叶变换)

    C语言实现FFT(快速傅里叶变换)
    发表于 10-25 21:33

    C++语言实现火车排序功能.doc

    C++语言实现火车排序功能.doc
    发表于 08-05 22:01

    如何用C语言实现OOP编程?

    老大看到OOP编程很好,就让我学,怎么用C语言实现OOP编程的,请大侠指点
    发表于 10-30 03:45

    PID控制算法的C语言实现(完整版)

    PID控制算法的C语言实现(完整版)
    发表于 04-02 11:39

    TensorFlow实现多元线性回归(超详细)

    在 TensorFlow 实现简单线性回归的基础上,可通过在权重和占位符的声明中稍作修改来对相同的数据进行多元线性回归。在多元
    发表于 08-11 19:35

    如何用C语言实现面向对象编程

    1 用C语言实现面向对象编程GOF的《设计模式》书的副标题叫做“可复用面向对象软件的基础”,从标题就能看出面向对象是设计模式基本思想。由于C语言
    发表于 07-12 07:24

    基于Proteus和C语言实现

    基于Proteus和C语言实现共四个题目,有没有人愿意尝试下?
    发表于 07-14 06:20

    如何用C语言实现个简单的一元线性回归算法

    今天我们用C语言实现个简单的线性回归算法;在代码前面我们在回顾一下线性
    发表于 07-20 06:34

    如何使用C语言实现模糊PID控制?

    如何使用C语言实现模糊PID控制?
    发表于 09-24 08:54

    C语言实现常用排序算法是什么?

    C语言实现常用排序算法是什么?
    发表于 10-19 06:41

    小白求助,求基于Proteus和C语言实现的程序和仿真

    小白求助,求基于Proteus和C语言实现的程序和仿真
    发表于 10-19 06:20

    嵌入式开发的一元线性回归算法介绍

    一元线性回归顾名思义就是一个自变量(可以是ADC采集到的电压值、DS18B20采集到的温度值、也可以是光敏传感器采集的光照强度值)。
    发表于 04-29 09:49 432次阅读