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

📄 correlation(多项式相关系数的计算方法(多项式形式2)).c

📁 //=== === === === === === === === === === === ===== //函数说明 //函数名称:Correlation //函数功能:计算最小二乘法拟合的多项
💻 C
字号:
//=======================================================================
//函数说明
//函数名称:Correlation
//函数功能:计算最小二乘法拟合的多项式的相关系数
//使用方法:int M------拟合多项式的项数(已知条件)
//          double *b---拟合曲线的系数,按升次排列(已知条件)
//			double *x---结点x轴数据(已知条件)
//			double *y---结点y轴数据(已知条件)
//			double *Yg--结点估计值,与*y相对应,个数为m(过程变量)
//			int m------结点个数(已知条件)
//注意事项:多项式阶数最高为10,多项式的形式为 y = b0 + b1*(x-Xavr)...
//=======================================================================
#include <math.h>
double Correlation(int M, double *b, double *x, double *y, double *Yg, int m)
{
	int i,j;
	double power[10],temp,Xavr,Xdif,Yavr,Qr,Qt,R; //最大10阶

	Xavr = 0.0;
	Yavr = 0.0;	         //求y的平均值和x的平均值
	for(j=0;j<m;j++)
	{
		Xavr += x[j];
		Yavr += y[j];
		Yg[j] = 0.0;     //初始化Yg
	}
	Xavr = Xavr/m;
	Yavr = Yavr/m;

	Qr = 0.0;
	Qt = 0.0;
	for(j=0;j<m;j++)
	{
		temp = 1.0;
		Xdif = x[j]-Xavr;

		for(i=0;i<M-1;i++)
		{
			temp *= Xdif;
			power[i] = temp;  
			Yg[j]= Yg[j] + b[i+1]*power[i];
		}
		Yg[j] = Yg[j] + b[0];

		Qr = Qr + (Yg[j] -Yavr)*(Yg[j] -Yavr);  //求Qr
		Qt = Qt + (y[j] - Yavr)*(y[j] - Yavr);  //求Qt
	}

	R = (double)sqrt(Qr/Qt);

	return(R);
}

⌨️ 快捷键说明

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