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

📄 lud.cpp

📁 时间素列分析中AR模型LUD算法的实现
💻 CPP
字号:
#include "iostream.h"
#include "math.h"

double r(int,int,int,int,double []);
void main()
{
const int n=1;
const int N=8;
double C[n+1],l[n+1],b[n+1],fe[n+1],st[n+1];
double R[n+1][n+1],L[n+1][n+1];
int i,j;
double a=0;
double x[N] ;
cout<<"请输入数据:"<<endl;  //输入观测数据
for(i=0;i<N;i++)
{cin>>x[i];}



for(i=0;i<(n+1);i++)
{   a=0;
	a=r(i,n,n,N,x);
    C[i]=a;
}


for(i=0;i<(n+1);i++) 
 for(j=0;j<(n+1);j++)
 {   
	R[i][j]=r(i,j,n,N,x);
}

L[0][0]=sqrt(R[0][0]);
for(i=0;i<n;i++) 
for(j=0;j<i+2;j++)
{  
   
    l[j]=C[j]/L[i][j];
	b[j]=sqrt(r(j,j,n,N,x)-l[j]*l[j]);
    if((i+1)!=j)
	 L[i+1][j]=l[j];
	else
      L[i+1][j]=b[j];
     
   }

for(i=0;i<n;i++) 
for(j=i+1;j<n;j++)
{
	L[i][j]=0;
}
    double s;
	fe[0]=1/L[0][0]; 
	
for(i=1;i<n+1;i++)             //求解方程
{  
	for(j=0;j<i;j++)
{  
	s=0;
	s=s+(fe[j]*L[i][j])/L[i][i];

}
    fe[i]=-s;
}

 
    double sum;
	st[n]=fe[n]/L[n][n];
for(i=n-1;i>=0;i--)             //求解方程
{
	for(j=i+1;j<n+1;j++)
	{   sum=0;
	    sum=sum+L[j][i]*st[j];
	}
    st[i]=fe[i]-sum/L[i][i];
}
   for(j=0;j<n+1;j++)
	   cout<<st[j]/st[0]<<endl;  //输出结果
   
}
double r(int h,int k,int m,int p,double y[])    //求r(i,j)
{   
int t;
 double s2[20][20];
 double s1;
	   
  for(int J=0;J<(m+1);J++)
   for(int K=0;K<(m+1);K++)
  {    s1=0;
	   for(t=m+1;t<p+1;t++)
	   {  
		   s1=s1+y[t-J]*y[t-K]+y[t-m+J]*y[t-m+K];
	   }
      s2[J][K]=s1;	 
   }

 return s2[h][k];

}

⌨️ 快捷键说明

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