该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
2楼,在只有一组实验数据,并无其他任何可以辅助进行方程猜测的情况下,线性方程无疑是首选,哪怕进行排除,也要先排除线性关系。,,,这里,我并没有根据数据进行坐标描点,否则,应该能有个大致的猜测方向。
下面按照线性方程的假设,给出验证用的c程序:
#define M 200
# include
int main()
{
int yue[M]={0};
int ri[M]={0};
int ren[M]={0};
int tian[M]={0};
int i,j,k;
float x,y,A=0.0,B=0.0,C=0.0,D=0.0,delta;
int n;
printf("本程序仅限于07年内使用\n writed by KM for c-bar\n\n");
/*以下输入数据*/
for(i=0;i
printf("请输入月份(0:over):");
scanf("%d",&yue[i]);
if(yue[i]==0) break;
printf("请输入日期:");
scanf("%d",&ri[i]);
printf("请输入人数:");
scanf("%d",&ren[i]);
/*以下根据日期,计算距起始日的天数*/
switch(yue[i])
{
case 1:
tian[i]=ri[i]-27;
break;
case 2:
tian[i]=4+ri[i];
break;
case 3:
tian[i]=4+28+ri[i];
break;
case 4:
tian[i]=4+28+31+ri[i];
break;
case 5:
tian[i]=4+28+31+30+ri[i];
break;
case 6:
tian[i]=4+28+31+30+31+ri[i];
break;
case 7:
tian[i]=4+28+31+30+31+30+ri[i];
default: break;
}
}
/*以下计算ABCDn*/
for(i=0;i
if(yue[i]!=0)
{
A+=tian[i]*tian[i];
B+=tan[i];
C+=tian[i]*ren[i];
D+=ren[i];
n=i;
}
else break;
}
delta=A*n-B*B;
if(fabs(delta)<1e-10)
printf("Error! Divide by zero");
else
{printf("a=%f\n",(C*n-B*D)/delta);
printf("b=%f\n",(A*D-C*D)/delta);
}
return 0;
}