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

📄 最小二乘拟合.cpp

📁 最小二乘法拟合特性曲线的参数值
💻 CPP
字号:
/* 目的:为了解出不定个数的方程。*/

#include<iostream.h>
#include<iomanip.h>

void main()
{
	double a,b,c;
	double x=24;
	double y[11]={2368.07,2045.71,1033.87,530.667,523.667,1799.03,1707.42,1169.67,2146.77,2263.33,2330.97};
	double z[11]={240080,179166,45761.4,12056.2,11740.2,138562,124809,58572.2,197305,219313,232615};
	double d[11]={992.219,844.88,426.989,220.227,219.416,750.196,715.409,498.278,905.939,961.917,988.33};
	double sm1,sm2=0,sm3=0,sm4=0,sm5=0,sm6=0,sn1=0,sn2=0,sn3=0;
	double D[4]={0};
	int i;
    sm1=x*x*11;
	for(i=0;i<11;i++)
	{
		sm2+=x*y[i];
	    sm3+=x*z[i];
        sm4+=y[i]*y[i];
        sm5+=y[i]*z[i];
		sm6+=z[i]*z[i];
		sn1+=x*d[i];
		sn2+=y[i]*d[i];
		sn3+=z[i]*d[i];
	}
	cout<<setw(15)<<sm1<<setw(15)<<sm2<<setw(15)<<sm3<<"|"<<sn1<<endl;
	cout<<setw(15)<<sm2<<setw(15)<<sm4<<setw(15)<<sm5<<"|"<<sn2<<endl;
	cout<<setw(15)<<sm3<<setw(15)<<sm5<<setw(15)<<sm6<<"|"<<sn3<<endl;
    D[0]=sm1*sm4*sm6+sm2*sm5*sm3+sm3*sm2*sm5-sm3*sm4*sm3-sm2*sm2*sm6-sm1*sm5*sm5;
	D[1]=sn1*sm4*sm6+sm2*sm5*sn3+sm3*sn2*sm5-sm3*sm4*sn3-sm2*sn2*sm6-sn1*sm5*sm5;
	D[2]=sm1*sn2*sm6+sn1*sm5*sm3+sm3*sm2*sn3-sm3*sn2*sm3-sn1*sm2*sm6-sm1*sm5*sn3;
	D[3]=sm1*sm4*sn3+sm2*sn2*sm3+sn1*sm2*sm5-sn1*sm4*sm3-sm2*sm2*sn3-sm1*sn2*sm5;
	c=D[1]/D[0];
	b=D[2]/D[0];
	a=D[3]/D[0];
	cout<<"a="<<a<<endl;
	cout<<"b="<<b<<endl;
	cout<<"c="<<c<<endl;
}

⌨️ 快捷键说明

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