c语言编写回归函数 c语言一元线性回归方程

c语言如何实现excel中对一组数据的回归方程计算1、对一元一次方程c语言编写回归函数 , 可以用散点图c语言编写回归函数的数据c语言编写回归函数,直接用函数得到c语言编写回归函数: 斜率c语言编写回归函数: =SLOPE(C2:C10,B2:B10) 截距: =INTERCEPT(C2:C10,B2:B10) 2、对多元回归方程,用最小二乘法拟合数组公式求得: 公式为:LINEST(known_y's,known_x's,const,stats),如y值在A2...
c语言 线性回归一元线性回归:y=a*x b
其中(x,y)给定值c语言编写回归函数,还有a,b未知 。
一元线性那么c语言编写回归函数你就要假定a或b为某个常数 。
在此只考虑整数范围 。
例:y=11,x=2
0、假定b=0时
a=5.5
(抛弃)
1、假定b=1时
a=5
2、假定b=2时
a=4.5
(抛弃)
3、假定b=3时
a=4
4、假定b=4时
a=3.5
(抛弃)
5、假定b=5时
a=3
6、假定b=6时
a=2.5
(抛弃)
7、假定b=7时
a=2
8、假定b=8时
a=1.5
【c语言编写回归函数 c语言一元线性回归方程】(抛弃)
9、假定b=9时
a=1
10、假定b=10时
a=0.5
(抛弃)
11、假定b=11时
a=0
从以上实例可以看出给定(x,y)后c语言编写回归函数,a,b取值有6组,显示a和b都被固定在了某一值域内 。
所以在写代码时应假设a或b从某一数值到某一数值 。
说了这么些也不知道你看懂没c语言编写回归函数?
求一元线性回归分析的c语言代码//利用最小二乘法进行线形拟合
#include"stdio.h"
#include"math.h"
#define max_size 100
void main()
{
float data[max_size][2];
//用data数组来存放x,y的值.
float x_sum=0,y_sum=0;
float x_avg,y_avg;
float x,y;
float Lxy=0,Lxx=0,Lyy=0;
float r;
float a,b;
int i;
int count=0;
next:
printf("输入至少2组x,y的值 , 输入格式为 x,y");
printf("输入 -999,-999 表示输入结束!\n");
while(1)
{
scanf("%f,%f",x,y);
//实数最好不直接用"=="或"!="比较大小 。
if(fabs(x 999)==0fabs(y 999)==0) break;
data[count][0]=x;
data[count][1]=y;
count;
}
for(i=0;icount;i)
{
x_sum=data[i][0] x_sum;
y_sum=data[i][1] y_sum;
}
x_avg=x_sum/count;
y_avg=y_sum/count;
for(i=0;icount;i)
{
Lxy=(data[i][0]-x_avg)*(data[i][1]-y_avg) Lxy;
Lxx=(data[i][0]-x_avg)*(data[i][0]-x_avg) Lxx;
Lyy=(data[i][1]-y_avg)*(data[i][1]-y_avg) Lyy;
}
//r用于计算相关系数,相关系数越接近1,表示相关性越好.
r=Lxy/sqrt(Lxx*Lyy);
if(r0.5)
{
printf("数据的线形关系较好 。\n");
a=Lxy/Lxx;
b=y_avg-a*x_avg;
}
else
{
printf("数据的线形关系不好!请重新输入数据!\n");
goto next;
}
printf("线形拟合的结果为:\n");
if(fabs(b)==0)
printf("y=%3.1fx\n",a);
else if(b0)
printf("y=%3.1fx %3.2f\n",a,b);
else if(b0)
printf("y=%3.1fx%3.2f\n",a,b);
printf("相关系数为:%3.1f\n",r);
}
怎样用c语言编写一个计算回归方程的函数#includestdio.h
#includestdlib.h
#includeString.h
void main()
{
char s[256];
printf("请输入想要创建的路径和文件名");
scanf("%s",s);
char b[]="md ";
system(strcat(b,s));
}
vc下通过编译
急求一元线性回归的C语言程序?。。?/h2>#include math.h
#include stdio.h
#include stdlib.h
void analysis(double * x, double * y, int n) {
double d1, d2, d3,a,b;
double sumx,sumy,sumxx,sumyy,sumxy,mx,my,mxx,myy,mxy;
int i;
// 变量的初始化
d1 = d2 = d3 =sumx=sumy=sumxx=sumyy=sumxy=0.0;
// 计算x、y的平均值
for (i = 0; in; i) {
sumx= x[i];
sumy= y[i];
}
mx = sumx / n;
my = sumy / n;
printf("mx=%f my=%f\n",mx,my);
// 计算x、y平和x*y的平均值
for (i = 0; in; i) {
sumxx= x[i]*x[i];
sumyy= y[i]*y[i];
sumxy= x[i]*y[i];
}
mxx = sumxx / n;
myy = sumyy / n;
mxy = sumxy / n;
printf("mxx=%f myy=%f mxy=%f\n",mxx,myy,mxy);
//
a=(n*sumxy-sumx*sumy)/(n*sumxx-sumx*sumx);
b=(sumxx*sumy-sumx*sumxy)/(n*sumxx-sumx*sumx);
printf("a=%f b=%f\n",a,b);
// 计算相关系数的数据组成部分
for (i = 0; in; i) {
d1= (x[i] - mx) * (y[i] - my);
d2= (x[i] - mx) * (x[i] - mx);
d3= (y[i] - my) * (y[i] - my);
}
double r = d1 / sqrt(d2 * d3);
//
printf("相关系数r=%f\n",r);
//
double *yy=(double*)malloc(sizeof(double)*n);
double sumerrorsquare=0,error;
for(i=0;in;i) {
yy[i]=a*x[i] b;
sumerrorsquare =(yy[i]-y[i])*(yy[i]-y[i]);
}
error=sqrt(sumerrorsquare/(n-1));
printf("标准偏差s(y)=%f\n",error);
}
intmain(){
double x[4]={1.0,3.0,3.0,9.0};
double y[4]={11.0,12.0,13.0,14.0};
analysis(x,y,4);
return 0;
}
关于c语言编写回归函数和c语言一元线性回归方程的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读