- 在线时间
- 326 小时
- 最后登录
- 2019-9-18
- 注册时间
- 2014-8-5
- 听众数
- 36
- 收听数
- 9
- 能力
- 0 分
- 体力
- 4485 点
- 威望
- 0 点
- 阅读权限
- 60
- 积分
- 1854
- 相册
- 1
- 日志
- 0
- 记录
- 0
- 帖子
- 996
- 主题
- 413
- 精华
- 0
- 分享
- 3
- 好友
- 98
升级   85.4% TA的每日心情 | 开心 2019-9-18 21:55 |
|---|
签到天数: 258 天 [LV.8]以坛为家I
 群组: 2015国赛冲刺 群组: 2016美赛公益课程 群组: 国赛讨论 群组: 第三届数模基础实训 群组: Matlab讨论组 |
DGM(2,1)模型,同样是为了解决非单调的摆动发展序列和有饱和的S形序列;
- %DGM(2,1)模型
- %时间:2015-7-4-六
- clc
- clear
- x0=[2.874,3.278,3.39,3.679,3.77,3.8]; %原始数据序列
- n=length(x0);
- a_x0=diff(x0)'; %求1次累减序列,即1阶向前差分
- B=[-x0(2:end)',ones(n-1,1)];
- disp('最小二乘法拟合参数')
- u=B\a_x0 %最小二乘法拟合参数
- disp('求二阶微分方程的符号解')
- x=dsolve('D2x+a*Dx=b','x(0)=c1,Dx(0)=c2'); %求二阶微分方程的符号解
- x=subs(x,{'a','b','c1','c2'},{u(1),u(2),x0(1),x0(1)});
- yuce=subs(x,'t',0:n-1); %求已知数据点1次累加序列的预测值
- x=vpa(x,6)
- disp('求已知数据点的预测值')
- x0_hat=double( [yuce(1),diff( double(yuce) )] ) %求已知数据点的预测值
- disp('求残差 ')
- epsilon=double( x0-x0_hat ) %求残差
- disp(' 求相对误差')
- delta=double( abs(epsilon./x0) ) %求相对误差
复制代码
|
zan
|