matlab 弹出提示,matlab出现提示:usage might be invalid matlab syntax

%灰色预测

function gm(x0,m)

%定义函数 gm(x0,m),x0为原始数据,m为预测个数

n=length(x0);

x1=zeros(1,n);

x1(1)=x0(1);

for i=2:n

x1(i)=x1(i-1)+x0(i); %计算累加序列x1

end

%对原始数列平行移位并赋给 y

y(1:n-1)=x0(2:n);

y=y'; %将 y变成列向量

B=ones(n-1,2);

for i=1:n-1;

%计算数据矩阵B的第一列数据

B(i,1)=-0.5*(x1(i)+x1(i+1));

end

au=inv(B'*B)*B'*y;%计算参数 a,u 矩阵

a=au(1);

u=au(2);

t=u/a;

i=1:m+n;

ago(i+1)=(x0(1)-t).*exp(-a.*i)+t;

ago(1)=x0(1);

for j=n+m:-1:2

yc(j)=ago(j)-ago(j-1);

end

for i=2:n;

error(i)=yc(i)-x0(i); %计算残差值

end

c=std(error)/std(x0);

%计算后验差比

p=0;

for i=2:n

if(abs(error(i)-mean(error))<0.6745*std(x0))

p=p+1;

end

end

p=p/(n-1);

w1=min(abs(error));

w2=max(abs(error));

for i=1:n;

%计算关联度

w(i)=(w1+0.5*w2)./(abs(error(i))+0.5*w2);

end

w=sum(w)/(n-1); %

%% 绘图%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

x=1:n;

xs=2:n+m;

yn=yc(2:n+m);

plot(x,x0,'^r',xs,yn,'*-b');

% axis([2009+m,2014+m,1,10]); %x,y,(z)坐标范围

% plot([2009:n+2008],x0,'+',[2009:n+2008+m],yc,'*'); %

% grid on;

% xlabel('年份');

% ylabel('销量(mm)');

% title('销售量灰色模型预测拟和曲线');

% legend('实测值','预测值',4);

% fprintf('a,u值:')

% fprintf('%g ',au) %输出参数 a,u 的值

% fprintf('\n累加数列:\n')

% fprintf('%g ',ago) %输出累加数列 ago 的值

% fprintf('\n原始序列:\n')

% fprintf('%g ',x0) %输出原始序列值

% fprintf('\n预测:\n')

% fprintf('%g ',yc) %输出预测的值

% fprintf('\n残差:\n')

% fprintf('%g ',error) %输出残差的值

% fprintf('\n后验差比:\n')

% fprintf('%g',c) %输出后验差比的值

% fprintf('\n小误差概率:\n')

% fprintf('%g',p) %输出小误差概率的值

% fprintf('\n关联度:\n')

% fprintf('%g\n',w) %输出关联度 w

取消

评论

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值