📄 zui.cpp
字号:
//最小二乘法回归一次函数,数据个数不超过100
#include<iostream.h>
#include<math.h>
void main()
{
int i=0,n=0;
double x[100],y[100],x_=0,y_=0,xx_=0,sumx=0,sumy=0,sumxx=0;
double sxy=0,sxx=0,syy=0,rxy=0,a0=0,a1=0,ua0=0,ua1=0,s=0;
cout<<"输入数据组数:";
cin>>n;
cout<<"输入数据:x空格y"<<endl;
for(i=0;i<n;i++)
{
cin>>x[i]>>ws>>y[i];
sumx+=x[i];
sumy+=y[i];
sumxx+=x[i]*x[i];
}
x_=sumx/n;
y_=sumy/n;
xx_=sumxx/n;
for(i=0;i<n;i++)
{
sxy+=(x[i]-x_)*(y[i]-y_);
sxx+=(x[i]-x_)*(x[i]-x_);
syy+=(y[i]-y_)*(y[i]-y_);
}
a1=sxy/sxx;
a0=y_-a1*x_;
rxy=sxy/sqrt(sxx*syy);
ua1=a1*sqrt((1/(rxy*rxy)-1)/(n-2));
ua0=sqrt(xx_*xx_)*ua1;
for(i=0;i<n;i++)
cout<<"("<<x[i]<<","<<y[i]<<")"<<endl<<endl;
cout<<"sxy="<<sxy<<endl;
cout<<"sxx="<<sxx<<endl;
cout<<"syy="<<syy<<endl;
cout<<"a1="<<a1<<endl;
cout<<"a0="<<a0<<endl;
cout<<"rxy="<<rxy<<endl;
cout<<"ua1="<<ua1<<endl;
cout<<"ua0="<<ua0<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -