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

📄 gm(1,1).cpp

📁 灰色理论的算法
💻 CPP
字号:
#include <iostream.h>
#include <math.h>
#include "matrix.h"

int main()
{ int m=1,n=8;
  cout<<"请输入数据的长度"<<endl;
  //cin>>n;
  double value[]={1.11,1.45,1.93,2.08,2.52,2.92,3.20,3.96};
  matrix gm(1,n,value);
  matrix AA(gm);
  /*matrix II(1,n-1);
  for(int i=1;i<=n;n++)
	{II.setElement(1,i,1);
	}
  */
  double sum=0;
  for(int i=1;i<=n;i++)
	{sum=sum+AA.getElement(1,i);
	 AA.setElement(1,i,sum);
	}
  matrix PP(1,n-1);
  for( i=1;i<n;i++)
	{double j=0;
     j=AA.getElement(1,i)+AA.getElement(1,i+1);
	 j=-j/2;
	 PP.setElement(1,i,j);
	 }
  matrix BB(n-1,2);
  for( i=1;i<=n-1;i++)
  { BB.setElement(i,1,PP.getElement(1,i));
    BB.setElement(i,2,1); 
  }
  matrix XX(1,n-1);
  for( i=1;i<=n-1;i++)
	{XX.setElement(1,i,gm.getElement(1,i+1));}
  matrix NN(XX.tran());
  matrix MM(2,1);
  matrix RR(2,2);
  matrix BV(2,n-1);
  BV=BB.tran();
  RR=BV*BB;
  cout<<"1111111111111111111112"<<endl;
  //MM=RR.invert()*BB.tran()*NN;
  MM=RR.invert()*BV*NN;
  cout<<"22222222222222222222222"<<endl;
  double a=MM.getElement(1,1);
  double u=MM.getElement(2,1);
  matrix Xz(1,n);
  double sum1=0;
  double e=2.71828;
  for( i=0;i<n;i++)
	{ sum1=(gm.getElement(1,1)-u/a)*pow(e,-a*i)+u/a;
	  Xz.setElement(1,i+1,sum1);
	}
  matrix ZZ(1,n);
  ZZ.setElement(1,1,Xz.getElement(1,1));
  for( i=n-1;i<=1;i--)
	  ZZ.setElement(1,i+1,Xz.getElement(1,i+1)-Xz.getElement(1,i));
  /////////////////////////
 //开始求误差//
 
 matrix EOR(1,n);
  for( i=1;i<=n;i++)
	EOR.setElement(1,i,gm.getElement(1,i)-ZZ.getElement(1,i));
  sum=0;
  for( i=1;i<=n;i++)
	  sum+=gm.getElement(1,i);
  double xm=1/n*sum;
  sum=0;
  for( i=1;i<=n;i++)
	  sum+=EOR.getElement(1,i);
  double em=1/n*sum;
  sum=0;
  for( i=1;i<=n;i++)
	  sum+=pow((gm.getElement(1,i)-xm),2);
  double sx=1/n*sum;
  sum=0;
  for( i=1;i<=n;i++)
	  sum+=pow((EOR.getElement(1,i)-em),2);
  double se=1/n*sum;
  //////
  /////求验后方差
  
  double c=sqrt(se/sx);

  cout<<c<<endl;
  return 1;
}

⌨️ 快捷键说明

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