c语言编写回归方程函数 回归方程怎么输入

c语言 线性回归一元线性回归c语言编写回归方程函数:y=a*x+b
其中(x,y)给定值c语言编写回归方程函数,还有a,b未知 。
一元线性那么你就要假定a或b为某个常数 。
在此只考虑整数范围 。
例c语言编写回归方程函数: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
(抛弃)
9、假定b=9时
a=1
10、假定b=10时
a=0.5
(抛弃)
11、假定b=11时
a=0
从以上实例可以看出给定(x,y)后,a,b取值有6组,显示a和b都被固定在c语言编写回归方程函数了某一值域内 。
所以在写代码时应假设a或b从某一数值到某一数值 。
说了这么些也不知道你看懂没?
用C语言编写 方程求解您好!很高兴为您解答 。
原代码中的scanf和printf中的%要放在d和lf的前面才对,改正后运算无误~
#include stdio.h
#include math.h
void main ()
{
double x1;//x1,x2分别为方程的2个解
double x2;
double melt;
int a;
int b;//初始化ABC的三个变量
int c;
printf("请输入a b c三个数的值:");
scanf("%d %d %d",a, b ,c);//输入ABC的时候需要空格
melt = b*b - 4*a*c;//初始化melt的值
if (melt0)
{x1=(-b + sqrt(melt))/(2*a);
x2=(-b - sqrt(melt))/(2*a);
printf ("2个解,x1 = %lf,x2 = %lf\n",x1,x2);
}
else if (melt==0)
{
x1 = (-b )/(2*a);
x2 = x1;
printf("1个解,x1 = %lf,x2 = lf%\n",x1,x2);
【c语言编写回归方程函数 回归方程怎么输入】 }
else
{
printf("无解\n");
}
}
望采纳~如您还有不解 , 欢迎追问~
是否可以解决您的问题?
求一元线性回归分析的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的值c语言编写回归方程函数 , 输入格式为 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用于计算相关系数c语言编写回归方程函数,相关系数越接近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)

推荐阅读