资源简介
AR模型的c++程序,AR模型是最常用的线性模型之一。
代码片段和文件信息
//using namespace std;
int AutoRegression(
double *inputseries
int length
int degree
double *coefficients
int method)
{
double mean;
int i t;
double *w=NULL; /* Input series - mean */
double *h=NULL;
double *g=NULL; /* Used by mempar() */
double *per=NULL;
double *pef=NULL; /* Used by mempar() */
double **ar=NULL; /* AR coefficients all degrees */
/* Allocate space for working variables */
if ((w = (double *)malloc(length*sizeof(double))) == NULL) {
fprintf(stderr“Unable to malloc memory - fatal!\n“);
exit(-1);
}
if ((h = (double *)malloc((degree+1)*sizeof(double))) == NULL) {
fprintf(stderr“Unable to malloc memory - fatal!\n“);
exit(-1);
}
if ((g = (double *)malloc((degree+2)*sizeof(double))) == NULL) {
fprintf(stderr“Unable to malloc memory - fatal!\n“);
exit(-1);
}
if ((per = (double *)malloc((length+1)*sizeof(double))) == NULL) {
fprintf(stderr“Unable to malloc memory - fatal!\n“);
exit(-1);
}
if ((pef = (double *)malloc((length+1)*sizeof(double))) == NULL) {
fprintf(stderr“Unable to malloc memory - fatal!\n“);
exit(-1);
}
if ((ar = (double **)malloc((degree+1)*sizeof(double*))) == NULL) {
fprintf(stderr“Unable to malloc memory - fatal!\n“);
exit(-1);
}
for (i=0;i if ((ar[i] = (double *)malloc((degree+1)*sizeof(double))) == NULL) {
fprintf(stderr“Unable to malloc memory - fatal!\n“);
exit(-1);
}
}
/* Determine and subtract the mean from the input series */
mean = 0.0;
for (t=0;t mean += inputseries[t];
mean /= (double)length;
for (t=0;t w[t] = inputseries[t] - mean;
/* Perform the appropriate AR calculation */
if (method == MAXENTROPY) {
if (!ARMaxEntropy(wlengthdegreearperpefhg)) {
fprintf(stderr“Max entropy failed - fatal!\n“);
exit(-1);
}
for (i=1;i<=degree;i++)
coefficients[i-1] = -ar[degree][i];
} else if (method == LEASTSQUARES) {
if (!ARLeastSquare(wlengthdegreecoefficients)) {
fprintf(stderr“Least squares failed - fatal!\n“);
exit(-1);
}
} else {
fprintf(stderr“Unknown method\n“);
exit(-1);
}
if (w != NULL)
free(w);
if (h != NULL)
free(h);
if (g != NULL)
free(g);
if (per != NULL)
free(per);
if (pef != NULL)
free(pef);
if (ar != NULL) {
for (i=0;i if (ar[i] != NULL)
free(ar[i]);
free(ar);
}
return(TRUE);
}
/*
Previously called mempar()
Originally in FORTRAN hence the array offsets of 1 Yuk.
Original code from Kay 1988 appendix 8D.
Perform Burg‘s Maximum Entropy AR parameter estimation
outputting
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7100 2009-04-28 09:32 AR\ar.c
文件 279 2009-04-25 16:36 AR\ar.h
文件 1728 2009-04-25 16:36 AR\artest.c
文件 1579 2009-04-25 16:36 AR\arview.c
文件 1970 2009-04-25 16:38 AR\brug\brug.c
目录 0 2009-04-25 16:38 AR\brug
目录 0 2009-04-28 09:32 AR
----------- --------- ---------- ----- ----
12656 7
相关资源
- Microsoft基本类库 (MFC)(C 库)
- c 图形面积计算 利用继承与多态
- 数据结构用C 写的停车场系统源代码
- C 纸牌游戏——21点
- 基于DSP2812的以太网调试程序
- 带时间温度显示的室内灯光控制系统
- 文件复制程序 汇编语言
- 16X16点阵程序(附仿真图和源程序)
- B-树 C 实现 基本功能
- 单片机控制的步进电机正反转和加速
- VC 围棋源代码
- 自动复制U盘数据程序
- 很好的一个小波变换图像压缩程序
- PC汇编编程钢琴程序
- 计算方法上机程序——拉格朗日插值
- c 制作的RPG小游戏
- 用VC 编写的基于SNMP的路由器拓扑程序
- 软件工程文档模板1可行性研究报告
- 三维地形的仿真显示实现了对地图的
- 基于ARM蓝牙传输源程序
- C 源码 画出wav文件声音数据的波形曲
- (MFC) 时钟日期程序
- 用PIC16F877实现EEPROM读写程序
- 用矩阵类算法程序和最小二乘法
- ASK调制与解调VHDL程序及仿真
- 清华大学郑莉C 语言程序设计课件
- 简单三层架构,经典小程序
- 红外循迹小车VHDL程序
- 磁盘调度算法的模拟实现及对比
- 1553曼彻斯特编码程序
评论
共有 条评论