📄 二次拟合 策.cpp
字号:
#include<iostream.h>
#include<math.h>
#include<stdio.h>
void main()
{
int x[100],y[100];
float a,b,c,n;
cout<<"输入数据组数:";
cin>>n;
for(int i=0;i<n;i++)
{ cout<<"x["<<i<<"]=";
cin>>x[i];
cout<<"y["<<i<<"]=";
cin>>y[i];
}
float xi=0;
for(int k1=0;k1<n;k1++)
xi=xi+x[k1];
float yi=0;
for(int k2=0;k2<n;k2++)
yi=yi+y[k2];
float xx=0;
for(int k3=0;k3<n;k3++)
xx=xx+x[k3]*x[k3];
float xxx=0;
for(int k4=0;k4<n;k4++)
xxx=xxx+x[k4]*x[k4]*x[k4];
float xxxx=0;
for(int k5=0;k5<n;k5++)
xxxx=xxxx+x[k5]*x[k5]*x[k5];
float xy=0;
for(int k6=0;k6<n;k6++)
xy=xy+x[k6]*y[k6];
float xxy=0;
for(int k7=0;k7<n;k7++)
xxy=xxy+x[k7]*x[k7]*y[k7];
a=(yi*xx*xxxx+xi*xxx*xxy+xx*xy*xxx-xx*xx*xxy-yi*xxx*xxx-xi*xy*xxxx)/(n*xx*xxxx+xi*xxx*xx+xx*xi*xxx-xx*xx*xx-xxx*xxx*n-xxxx*xi*xi);
b=(n*xy*xxxx+yi*xxx*xx+xx*xi*xxy-xx*xy*xx-n*xxx*xxy-xi*yi*xxxx)/(n*xx*xxxx+xi*xxx*xx+xx*xi*xxx-xx*xx*xx-xxx*xxx*n-xxxx*xi*xi);
c=(n*xx*xxy+xi*xy*xx+yi*xi*xxx-yi*xx*xx-n*xxx*xy-xi*xi*xxy)/(n*xx*xxxx+xi*xxx*xx+xx*xi*xxx-xx*xx*xx-xxx*xxx*n-xxxx*xi*xi);
cout<<"y="<<a<<" + "<<" ( "<<b<<" ) "<<" x "<<" + "<<" ( "<<c<<" ) "<<" xx "<<endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -