⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 二次拟合.cpp

📁 二次函数的拟合算法
💻 CPP
字号:
#include<iomanip.h>
#include<fstream.h>
#include<iostream.h>


double sum1(double a[],double b[],int n)     //n表示数组的大小   x*y的累加和
{
	double sum=0;
	for(int i=0;i<n;i++)
		sum+=a[i]*b[i];
	return sum;
	
}
double sum2(double a[],int n)						//x的累加和
{
	double sum=0;
	for(int i=0;i<n;i++)
		sum+=a[i];
	return sum;
	
}

double sum3(double a[],int n)					//x平方的累加和
{
	double sum=0;
	for(int i=0;i<n;i++)
		sum+=a[i]*a[i];
	return sum;
	
}

double sum4(double a[],double b[],int n)              //求y平方乘以x的累加和
{
	double sum=0;
	for(int i=0;i<n;i++)
		sum+=a[i]*b[i]*b[i];
	return sum;
}

double sum5(double a[],int n)                          //求x的3次方等的累加和
{
	double sum=0;
	for(int i=0;i<n;i++)
		sum+=a[i]*a[i]*a[i];
	return sum;
}

double sum6(double a[],int n)                          //求x的4次方等的累加和
{
	double sum=0;
	for(int i=0;i<n;i++)
		sum+=a[i]*a[i]*a[i]*a[i];
	return sum;
}




void lsql(double m[],double n[],int i,double& a,double& b,double& c)
{
	double a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,b1,b2,b3,b4;
	a0=i;               
	a1=sum2(n,i);					
	a2=sum3(n,i);				
	a3=sum2(m,i);					
	a4=sum2(n,i);
	a5=sum3(n,i);
	a6=sum5(n,i);
	a7=sum1(m,n,i);
	a8=sum3(n,i);
	a9=sum5(n,i);
	a10=sum6(n,i);
	a11=sum4(m,n,i);
	b1=a0*(a10*a5-a6*a9)-a1*(a4*a10-a6*a8)+a2*(a4*a9-a5*a8);
	b2=a3*(a10*a5-a6*a9)-a1*(a7*a10-a6*a11)+a2*(a7*a9-a5*a11);
	b3=a0*(a10*a7-a6*a11)-a3*(a4*a10-a6*a8)+a2*(a4*a11-a7*a8);
	b4=a0*(a11*a5-a7*a9)-a1*(a4*a11-a7*a8)+a3*(a4*a9-a5*a8);
	a=b2/b1;
	b=b3/b1;
	c=b4/b1;
}

void main()
{
	
	ifstream f1("c.txt");
	double e[128];
	int n=0;
	while(f1>>e[n])
	{
		n++;
	}
	ifstream f2("d.txt");
	double f[128];
	int m=0;
	while(f2>>f[m])
	{
		m++;
	}
	double a,b,c;
	int i=29;
	lsql(e,f,i,a,b,c);
cout<<a<<' '<<b<<' '<<c<<' '<<endl;	
	
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -