查看: 619|回复: 1|关注: 0

[已解决] 小白按照参考书代码变成灰色预测,但是plot总错误...求助 ...

[复制链接]

新手

7 麦片

财富积分


050


1

主题

1

帖子

0

最佳答案
>> clear
syms a b;
c=[a b]';
A=[-0.2516175,-0.2488158,-0.2465102,-0.2444717,-0.2432105,-0.2428792,-0.2393202,-0.2390690,-0.2338763,-0.2287235,-0.3156866,-0.3109215,-0.3044415,-0.2992371,-0.2958098,-0.2962445,-0.2880585,-0.2805775,-0.2799796,-0.2700299,-0.2704095,-0.2625126,-0.2680226,-0.2662853,-0.2584729,-0.2535875,-0.2602070,-0.2616608,-0.2577412,-0.3165024,-0.3202997,-0.3200656,-0.3149038,-0.3125640,-0.3054003,-0.3093868,-0.3035879,-0.2946835,-0.2874473,-0.2820505,-0.2719888,-0.2691513,-0.2691030,-0.2655516,-0.2501659,-0.2492399,-0.2409122,-0.2333889,-0.2315632,-0.2821544];
B=cumsum(A);    % 原始数据累加
n=length(A);
for i=1:(n-1)
    C(i)=(B(i)+B(i+1))/2;    % 生成累加矩阵
end
% 计算待定参数的值
D=A;D(1)=[];
D=D';
E=[-C;ones(1,n-1)];
c=inv(E*E')*E*D;
c=c';
a=c(1);b=c(2);
% 预测后续数据
F=[];F(1)=A(1);
for i=2:(n+10)
    F(i)=(A(1)-b/a)/exp(a*(i-1))+b/a;
end
G=[];G(1)=A(1);
for i=2:(n+10)
    G(i)=F(i)-F(i-1);    % 得到预测出来的数据
end
t1=1960:2009;
t2=1960:2025;
G
plot(t1,A,'o',t2,G)      % 原始数据与预测数据的比较

G =

  1 至 12 列

   -0.2516   -0.2677   -0.2679   -0.2681   -0.2684   -0.2686   -0.2688   -0.2691   -0.2693   -0.2695   -0.2698   -0.2700

  13 至 24 列

   -0.2703   -0.2705   -0.2707   -0.2710   -0.2712   -0.2715   -0.2717   -0.2719   -0.2722   -0.2724   -0.2727   -0.2729

  25 至 36 列

   -0.2731   -0.2734   -0.2736   -0.2739   -0.2741   -0.2744   -0.2746   -0.2748   -0.2751   -0.2753   -0.2756   -0.2758

  37 至 48 列

   -0.2761   -0.2763   -0.2765   -0.2768   -0.2770   -0.2773   -0.2775   -0.2778   -0.2780   -0.2783   -0.2785   -0.2788

  49 至 60 列

   -0.2790   -0.2792   -0.2795   -0.2797   -0.2800   -0.2802   -0.2805   -0.2807   -0.2810   -0.2812   -0.2815   -0.2817

错误使用 plot
矢量长度必须相同。

论坛优秀回答者

权威

7481 麦片

财富积分



5

主题

8904

帖子

1710

最佳答案
  • 关注者: 386
发表于 2018-2-11 17:12:21 | 显示全部楼层 |此回复为最佳答案
t2多少数据?G是多少数据?不一样长,怎么画?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /3 下一条

快速回复 返回顶部 返回列表