苏简若的爱 发表于 2012-8-4 15:00

求帮助……

%灰色系统做预测的matlab程序
clear;clc
syms a b;
c=';
A=;%数据行,竞赛时直接替换数据就行
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=1995:2004;
t2=1995:2014;
G;a,b
plot(t1,A,'o',t2,G)


??? Error using ==> mtimes
Inner matrix dimensions must agree.

Error in ==> huisexitong at 15
c=inv(E*E')*E*D;
要求矩阵内部维数一样,但是不怎么理解

苏简若的爱 发表于 2012-8-5 11:11

求帮助呀……非常感谢。

darker50 发表于 2012-8-5 12:16

    那个代码用编辑器的上面的“<>”这个符号就能使用让代码不出现表情的了。

苏简若的爱 发表于 2012-8-5 14:28

darker50 发表于 2012-8-5 12:16 static/image/common/back.gif
那个代码用编辑器的上面的“”这个符号就能使用让代码不出现表情的了。

恩恩,谢谢!但是现在不是你说的那个问题,我本身编辑的时候上面没有错,只是最后出现
??? Error using ==> mtimes
Inner matrix dimensions must agree.

Error in ==> huisexitong at 15
c=inv(E*E')*E*D;


我不知道究竟出现在哪里
麻烦给解答一下。

我能 发表于 2012-8-12 15:53

有很多的问题要自己去看 比如你的算除法时  直接用 E\d  你那有写问题   就是线代中的矩阵除法  你一步步试下
我发了个我做  深圳夏令营的题的程序 你看下
页: [1]
查看完整版本: 求帮助……