一、功能

产生自回归滑动平均模型\(ARMA(p,q)\)的数据。

二、方法简介

自回归滑动平均模型\(ARMA(p,q)\)为

\[x(n)+\sum_{i=1}^{p}a_{i}x(n-i)=\sum_{i=0}^{q}b_{i}w(n-i)
\]

其中\(a_i(i=1,2,...,p)\)是自回归系数,\(b_i(i=1,2,...,q)\)是滑动平均系数,\(w(n)\)是白噪声。

给定白噪声\(w(n)\)的均值和方差,便可以由上式产生\(ARMA(p,q)\)的数据。

三、使用说明

是用C语言实现产生二项分布随机数的方法如下:

/************************************
a ---一维数组,长度为(p+1),ARAM(p,q)模型的自回归系数。
b ---一维数组,长度为(q+1),ARAM(p,q)模型的滑动平均系数。
p ---RAM(p,q)模型的自回归阶数。
q ---RAM(p,q)模型的滑动平均阶数。
mean ---白噪声正态分布均值mu。
sigma ---白噪声正态分布均方差sigma。
seed ---随机数种子
x ---一维数组,长度n,存放ARAM(p,q)模型的数据。
n ---放ARAM(p,q)模型的长度。
************************************/
#include "stdlib.h"
#include "gauss.c" void arma(double *a, double *b, int p, int q, double mean, double sigma, long int *seed, double *x, int n)
{
int i;
int k;
double s;
double *w; w = malloc(n * sizeof(double));
for(k = 0; k < n; k++)
w[k] = gauss(mean, sigma, seed);
x[0] = b[0] * w[0];
for(k = 1; k <= p; k++){
s = 0.0;
for(i = 1; i <= k; i++)
s += a[i] * x[k - 1];
s = b[0] * w[k] - s;
if(q == 0){
x[k] = s;
continue;
}
m = (k > q) ? q : k;
for(i = 1; i <= m; i++)
s += b[i] * w[k - i];
x[k] = s;
} for(k = (p + 1); k < n; k++){
s = 0.0;
for(i = 1; i <= p; i++)
s += a[i] * x[k - i];
s = b[0] * w[k] - s;
if(q == 0){
x[k] = s;
continue;
}
for(i = 1; i <= q; i++)
s +=b[i] * w[k - i];
x[k] = s;
}
free(w);
}

gauss.c文件参见正态分布的随机数

最新文章

  1. FSM 浅谈
  2. Java基础之一组有用的类——使用公历日历(TryCalendar)
  3. mysql substring_index
  4. pyhton3多线程
  5. APMServ5.2.6 升级PHP版本 到高版本 5.3,5.4
  6. &lt;Win32_6&gt;程序员求爱的创意程序^_^
  7. CTL_CODE 宏 详解
  8. ZOJ 2710 Two Pipelines
  9. 解决yii框架,gii脚手架不能使用。
  10. 关于我立牌坊那个SSM项目
  11. 授权远程连接MySQL(Linux)
  12. NYOJ 炫舞家st
  13. jmeter5.0生成html报告 快速入门
  14. Android 面试题 MD
  15. unity3d-游戏实战突出重围,第一天
  16. VOT工具操作指南(踩过的坑)
  17. npm(cnpm)介绍(安装gulp)
  18. 将oracle数据库表使用命令的形式导入到excle文件中 亲测可用!
  19. 关于微信js接口调用时,token效期问题
  20. 30分钟LINQ教程【转】

热门文章

  1. 启动页面、icon图标设置
  2. Flutter 的异步机制Future
  3. 双目结构光三维扫描仪获得的三维点云模型(GIF)
  4. 什么是UEFI
  5. Windows10系统Python2.7通过Swig调用C++过程
  6. 【DSP开发】CCS数据格式 load
  7. 通过IP得到IP所在地省市
  8. jquery中 $.expr使用实例介绍
  9. codevs 1048/洛谷 1880:石子归并
  10. servlet获取checkbox的值出现选中的值为on。问题所在。。。