如何使用MATLAB建立GM(1,n)模型,用于波动数据预测?
实现用MATLAB建立GM(1,1)模型预测(已知:2007~2013年碰撞事故的次数)直到2020年发生碰撞事故的次数。可以通过下列步骤来进行:1、收集数据,x0=[13,16,11,22,19,20,15];2、设定预测数为7年(2020年)3、用GM(1,1)模型预测,预测前应对数据进行预处理,如数据累加累减,均值化处理,4、利用矩阵方法计算灰方程的参数a,u5、计算模拟数据,残差和相对误差6、根据灰方程,预测2014~2020年的碰撞事故的次数7、用plot函数绘制原始数据与预测数据的比较分析图
GM(1,N)模型是怎么样的?
从图形结果来看,用GM(1,1)灰色模型进行波动数据预测,误差偏大,其预测性是不可靠。建议采用BP神经网络来预测,即通过已知5个数据训练,来预测10个数据 。其方法过程:
1、导入数据
2、产生训练集和测试集
3、数据归一化处理
4、创建/训练BP神经网络及仿真测试
5、性能评价(相对误差,决定系数,极差)
6、绘图
按照上述方法进行编程,可以得到如下结果。
function GM1_1(X0)
%format long ;
[m,n]=size(X0);
X1=cumsum(X0); %累加
X2=[];
for i=1:n-1
X2(i,:)=X1(i)+X1(i+1);
end
B=-0.5.*X2 ;
t=ones(n-1,1);
B=[B,t] ; % 求B矩阵
YN=X0(2:end) ;
P_t=YN./X1(1:(length(X0)-1)) %对原始数据序列X0进行准光滑性检验,
%序列x0的光滑比P(t)=X0(t)/X1(t-1)
A=inv(B.'*B)*B.'*YN.' ;
a=A(1)
u=A(2)
c=u/a ;
b=X0(1)-c ;
X=[num2str(b),'exp','(',num2str(-a),'k',')',num2str(c)];
strcat('X(k+1)=',X)
%syms k;
for t=1:length(X0)
k(1,t)=t-1;
end
k
Y_k_1=b*exp(-a*k)+c;
for j=1:length(k)-1
Y(1,j)=Y_k_1(j+1)-Y_k_1(j);
end
XY=[Y_k_1(1),Y] %预测值
CA=abs(XY-X0) ; %残差数列
Theta=CA %残差检验 绝对误差序列
XD_Theta= CA ./ X0 %残差检验 相对误差序列
AV=mean(CA); % 残差数列平均值
R_k=(min(Theta)+0.5*max(Theta))./(Theta+0.5*max(Theta)) ;% P=0.5
R=sum(R_k)/length(R_k) %关联度
Temp0=(CA-AV).^2 ;
Temp1=sum(Temp0)/length(CA);
S2=sqrt(Temp1) ; %绝对误差序列的标准差
%----------
AV_0=mean(X0); % 原始序列平均值
Temp_0=(X0-AV_0).^2 ;
Temp_1=sum(Temp_0)/length(CA);
S1=sqrt(Temp_1) ; %原始序列的标准差
TempC=S2/S1*100; %方差比
C=strcat(num2str(TempC),'%') %后验差检验 %方差比
%----------
SS=0.675*S1 ;
Delta=abs(CA-AV) ;
TempN=find(Delta<=SS);
N1=length(TempN);
N2=length(CA);
TempP=N1/N2*100;
P=strcat(num2str(TempP),'%') %后验差检验 %计算小误差概率
哈工大在比赛中被禁止使用matlad软件,这对他们有何影响?
有着一定的影响。在前一段时间,有哈工大的同学表示,哈工大已经收到了被MATLAB软件停止服务的邮件,这也导致哈工大在之后的全国数学建模的比赛中无法使用MATLAB去建模,而其他学校的学生仍可以正常使用,这也导致哈工大在这次比赛中受到了很大的影响。一、认识MATLAB软件 可能对于很多人来说,这个软件都是...
我需要用matlab做光伏预测,了解到可以利用神经网络算法编程,但不知从...
你要做光伏预测,其实所有的预测的原理都差不多,可以参考别人的案例。建议你看看matlab的书,学习下基本知识,推荐《matlab神经网络30个案例》,上面有很多预测案例。附件是一个基本的用BP神经网络预测电力负荷的例子。BP(Back Propagation)神经网络是1986年由Rumelhart和McCelland为首的科学家小组提出,是...
matlab跳过十行读取headerlines
matlab 行 读取文件 跳过_matlab中textscan跳行使用Matlab的textscan指令2010-03-0211:33:10最近在玩学长给的一个资料档,里头有文字和数据混何在一起,要用Matlab来读取.要是以前的话,大概就很笨的用手动的方式把文字去掉,再让Matlab来读.不过最近才发现Matlab7的一个新指令textscan可以很方便的协助读取文字档中...
如何在MATLAB中导出矢量图
1、把示波形图处背景处理成白色的。2、不能直接用截屏键截屏拷贝到画图工具,这样做出来的图方法后会失真。3、点击示波器工具栏Edit->copy figure,波形图就拷贝到了粘贴板 ,打开visio2007,将图片复制进去,这时候图片已经是矢量图,但拷贝到word中坐标轴坐标太小了。4、右击visio中的波形图->形状-...
mathematica和matlab哪个好
但是,就我个人暑假以来的使用经验来说,这些传统的说法不见得对。我在尝试解一个偏微分方程组的数值解,因此同时接触了这两个软件,并且也分别请教了一些会用这两个软件的人。现在的调查结果是,matlab的解偏微分功能很渣,号称有解相关问题的工具箱(对,工具箱,这是许多人力挺matlab的理由之一),...
matlab中*与.*有何区别?
首先第一点,你必须铭记在心,就是matlab是在用矩阵的形式储存变量,运算变量,这就是matlab的特点,也是它强大之处 正因为matlab在设计的时候就是为矩阵计算设计的,因而在matlab中 * (乘)就是用矩阵的乘法去求答案,所以要求乘号两边的变量要满足矩阵运算要求,比如c=a*b,a如果是3行2列,那b就...
求解:我是win7安装的Matlab7.0,打开后出现下图何解?求教,谢谢~~_百度...
右击matlab快捷方式或应用程序,打开它的属性,然后在兼容性那选Windows vista或更早的2000之类的都可以。改完即可运行。卸载时也一样,在uninstaller那该兼容性。
matlab一直说我未定义函数或变量x怎么办?
首先你这个函数写的是没问题,我感觉你的基础不足;简单来说,你需要输入一个实参;x=……然后调用你的函数ovfun(x);关于一些基本的教程,你可以关注个一匹大懒虫 里面有一些matlab基础视频教程 一般分为形参和实参;形参 全称为形式参数,一、函数中使用:形参出现在函数定义中,在整个函数体内都可以...
MATLAB函数和MATLAB脚本文件有何区别?
脚本就是将一堆代码放入一个m文件中,调用时相当于直接打了这些代码,脚本中的命令可以直接使用或修改工作区的数据。函数则有一个相对封闭的环境,函数不能使用工作区的数据,除非某些数据被输入了函数或者是全局变量;被输入的数据实际上是被拷贝了一份交给函数,不管函数内如何修改这些值,工作区中存放...
请问matlab中的surf函数和meSh函数有何区别?感觉出来的图相似度好高啊...
surf创建带有填充的网格图,网格线是不变色的,靠填充的颜色表示值的大小变化。meSh创建网格图,不填充颜色,可以通过网格线的颜色表示数值大小的变化。大概的区别就在这里,还有一些它们的高级应用,它们的差别就很明显了,你可以查看帮助文档。通常如果数据点够密集,网格线就不很明显了,这两个函数作出的...
洪封欣民: 从图形结果来看,用GM(1,1)灰色模型进行波动数据预测,误差偏大,其预测性是不可靠.建议采用BP神经网络来预测,即通过已知5个数据训练,来预测10个数据 .其方法过程: 1、导入数据 2、产生训练集和测试集 3、数据归一化处理 4、创建/训练BP神经网络及仿真测试 5、性能评价(相对误差,决定系数,极差) 6、绘图 按照上述方法进行编程,可以得到如下结果.
高阳县19416303166: 跪求用MATLAB建立GM(1,1)模型预测到2020年的代码 - ?
洪封欣民: 实现用MATLAB建立GM(1,1)模型预测(已知:2007~2013年碰撞事故的次数)直到2020年发生碰撞事故的次数.可以通过下列步骤来进行:1、收集数据,x0=[13,16,11,22,19,20,15];2、设定预测数为7年(2020年)3、用GM(1,1)模型预测,预测前应对数据进行预处理,如数据累加累减,均值化处理,4、利用矩阵方法计算灰方程的参数a,u5、计算模拟数据,残差和相对误差6、根据灰方程,预测2014~2020年的碰撞事故的次数7、用plot函数绘制原始数据与预测数据的比较分析图
高阳县19416303166: 如何用matlab做gm模型预测 - ?
洪封欣民: clc,clear x0=[692.5 649.6 669.8 596.0 607.9 617.9635.2 652.2 667.8 682.8 675.1 695.7]; n=length(x0); lamda=x0(1:n-1)./x0(2:n) range=minmax(lamda) x1=cumsum(x0) for i=2:n z(i)=0.5*(x1(i)+x1(i-1)); end B=[-z(2:n)',ones(n-1,1)]; Y=x0(2:n)'; u=B\Y x...
高阳县19416303166: 怎样用matlab实现灰色模型?(GM(1.1)) - ?
洪封欣民: clear; clc; x0=[127627 128453 129227 129988 130756]; n=length(x0); lamda=x0(1:n-1)./x0(2:n) range=minmax(lamda) x1=cumsum(x0) for i=2:n z(i)=0.5*(x1(i)+x1(i-1)); end B=[-z(2:n)',ones(n-1,1)]; Y=x0(2:n)'; u=B\Y x=dsolve('Dx+a*x=b','x(0)=x0'); x=...
高阳县19416303166: matlab中GM函数怎么用?
洪封欣民: matlab中GM函数怎么用 x1=linspace(0.01,1,100); x2=linspace(-1,-0.01,100); y1=1./x1; y2=1./x2; plot(x1,y1,'b',x2,y2,'b') title('y=1/x在区间【-1,1】之间的图像') //上述程序以y=1/x为例,要画其它反比例函数,你可自己稍微修改
高阳县19416303166: matlab 2014b linux 怎么安装 - ?
洪封欣民: 1、下载matlab的Unix版本:安装文件放在某目录下(如在Downloads下,则文件的完整路径为/home/username/Downloads/Mathworks.Matlab.R2012a.UNIX.iso);2、挂载iso文件:先建立/media/cdrom0目录, cd /media sudo mkdir cdrom0 然后...
高阳县19416303166: GM(1,N)动态模型的建立,用灰色系统理论的matlab怎么样编写程序 - ?
洪封欣民: clc,clear x0=[692.5 649.6 669.8 596.0 607.9 617.9635.2 652.2 667.8 682.8 675.1 695.7]; n=length(x0); lamda=x0(1:n-1)./x0(2:n) range=minmax(lamda) x1=cumsum(x0) for i=2:n z(i)=0.5*(x1(i)+x1(i-1)); end B=[-z(2:n)',ones(n-1,1)]; Y=x0(2:n)'; u=B\Y x...
高阳县19416303166: 怎么用matlaB预测未来工资 - ?
洪封欣民: 对于单变量(年份,年平均工资),可以考虑用Logstic模型来预测,预测函数可以用lsqcurvefit();也可以用GM(1,1)灰色模型来预测,预测函数GM11();也可以用BP神经网络来预测,预测函数BP();也可以用多项式模型去逼近,预测函数可以用regress() 对于多变量(年份,年平均工资,其他),可以考虑用GM(1,N)灰色模型来预测,预测函数GM1N();也可以用BP神经网络来预测,预测函数BP();也可以用多项式模型去逼近,预测函数可以用regress()
高阳县19416303166: 灰色系统预测GM(1,1)模型的MATLAB详细源代码?
洪封欣民: %%%%%%%%%%%%%%%%把下面函数保存为gmcal.m文件%%%%%%%%%%% function gmcal=gm1(x) sizexd2 = size(x,2); %求数组长度 k=0; for y1=x k=k+1; if k>1 x1(k)=x1(k-1)+x(k); %累加生成 z1(k-1)=-0.5*(x1(k)+x1(k-1)); %z1维数...
高阳县19416303166: 数学建模灰色系统matlab编程?
洪封欣民: 给你一个例子,希望有所帮助 % 基于matlab灰色预测GM(1,1)实现 function [y,p,e]=gm_1_1(X,k) %Build the calculating dieplate for the typical gray model. %Example [y,p]=gm_1_1([200 250 300 350],2) %Designed by NIXIUHUI,Dalian Fisher ...