一次拟合.cpp
来自「一次方程的拟合程序」· C++ 代码 · 共 66 行
CPP
66 行
#include<iomanip.h>
#include<fstream.h>
#include<iostream.h>
double sum1(double a[],double b[],int n) //n表示数组的大小
{
double sum=0;
for(int i=0;i<n;i++)
sum+=a[i]*b[i];
return sum;
}
double sum2(double a[],int n)
{
double sum=0;
for(int i=0;i<n;i++)
sum+=a[i];
return sum;
}
double sum3(double a[],int n)
{
double sum=0;
for(int i=0;i<n;i++)
sum+=a[i]*a[i];
return sum;
}
void lsql(double m[],double n[],int i,double & a,double & b)
{
double c,d,e,f;
c=sum1(m,n,i); //c为x*y的值
d=sum2(m,i); //d为x的累加和
e=sum2(n,i); //e为y的累加和
f=sum3(m,i); //f为x平方的累加和
a=(i*c-d*e)/(i*f-d*d);
b=(f*e-c*d)/(i*f-d*d);
}
void main()
{
ifstream f1("a.txt");
double e[29];
int n=0;
while(f1>>e[n])
{
n++;
}
ifstream f2("b.txt");
double f[29];
int m=0;
while(f2>>f[m])
{
m++;
}
double a, b;
int i=29;
lsql(e,f,i,a,b);
cout<<a<<' '<<b<<' '<<endl;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?