单片机c语言的最小二乘法怎么实现,求代码

如题所述

#include <stdio.h>
void main ()
{
int num,i;
float x,y,l,m,n,p,a,b;
i=1;
l=0.0;
m=0.0;
n=0.0;
p=0.0;
printf ("请输入你想计算的x,y的个数:");
scanf("%d",&num);
if (num>=1)
{
while (i<=num);
{
printf("请输入x的值");
scanf ("%lf",&x);
printf("请输入y的值");
scanf ("%lf",&y);
l+=x;
m+=y;
n+=x*y;
p+=x*x;
i++;
}
a=(num*n-l*m)/(num*p-l*l);
b=(p*m-n*l)/(num*p-l*l);
printf("最小二乘法所算得的斜率和截距分别为%f和%f\n",a,b);
}
else printf("mun"输入有误!);
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-26
  你应该再深入的理解一下“ 最小二乘法 ”的意义 。
实际应用中 现有目标函数 然后采样本数据 然后做做小二乘拟合得到参数估计值
你连目标函数都没有啊,C语言编程实现那就是另外一个阶段的工作 不同的目标函数编程是不一样的
相似回答