Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2008-11-07, 10:53   #1
lvlianggan
初级会员
 
注册日期: 2008-11-07
年龄: 41
帖子: 1
声望力: 0
lvlianggan 正向着好的方向发展
默认 GM(1,1)

我写了一个GM(1,1)的求解函数,但是GM(1,1)只是计算行向量或是列向量,我现在想用这个函数计算一个矩阵中没一行的值,然后把计算出来的结果放到一个列向量里面,计算GM(1,1)函数测试通过,但是在记录到列向量的时候出错,请大家帮帮忙,谢谢!
代码:

gm.m

function gm(x0)
n=length(x0);
%由数列x0生成数列x1;
s=0;
for i=1:n
s=s+x0(i);
x1(i)=s;
end
%由数列x1生成矩阵B和Y;
for i=1n-1);
Q(i)=-(x1(i)+x1(i+1))/2;
end
M=ones(n-1,1);
B=[Q' M];
for i=1n-1);
C(i)=x0(i+1);
end
Y=C';
beta=inv(B'*B)*B'*Y;
%计算出a和u;
a=beta(1);
u=beta(2);
(x0(1)-u/a)*(1-exp(a))*exp(-a*3)


test.m

C=[0.8 0.9 0.6; 1.0 0.9 0.9;1 2 3];
f=zeros(3,1);

for a = 1: 3;
% eval(['X',num2str(a),'=','C(a,']);
% eval(['x',num2str(a),'=','gm(C(a,)'])

f(:,1)= gm(C(a,);

end
lvlianggan 当前离线   回复时引用此帖
旧 2008-11-07, 22:52   #2
meatball1982
初级会员
 
注册日期: 2008-04-17
年龄: 42
帖子: 7
声望力: 0
meatball1982 正向着好的方向发展
默认 回复: GM(1,1)

function [out]=gm(x0)
n=length(x0);
%由数列x0生成数列x1;
s=0;
for i=1:n
s=s+x0(i);
x1(i)=s;
end
%由数列x1生成矩阵B和Y;
for i=1n-1);
Q(i)=-(x1(i)+x1(i+1))/2;
end
M=ones(n-1,1);
B=[Q' M];
for i=1n-1);
C(i)=x0(i+1);
end
Y=C';
beta=inv(B'*B)*B'*Y;
%计算出a和u;
a=beta(1);
u=beta(2);
out=(x0(1)-u/a)*(1-exp(a))*exp(-a*3)

这是我写的一个GM11的函数程序,定义了一个输出。你的函数没有输出。

function [pre]=fun_GM11(X0,pre_num)
X1=cumsum(X0)
n=length(X0);
G(:,1)=-(X1(2:n)+X1(1:n-1))/2;
G(:,2)=ones(n-1,1);
Y(:,1)=X0(2:n);
pre=Y;
a1=inv(G'*G)*G'*Y;
a=a1(1);
u=a1(2);
X_pre(1)=X0(1);
for k=1:n-1+pre_num
X_pre(k+1)=(1-exp(a))*(X0(1)-u/a)*exp(-a*k);
end
pre=X_pre;
meatball1982 当前离线   回复时引用此帖
旧 2008-11-07, 22:52   #3
meatball1982
初级会员
 
注册日期: 2008-04-17
年龄: 42
帖子: 7
声望力: 0
meatball1982 正向着好的方向发展
默认 回复: GM(1,1)

希望能有帮助。
meatball1982 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码


相似的主题
主题 主题作者 版面 回复 最后发表
Matlab命令 wind_1130 MATLAB论坛 1 2009-02-07 14:11
请教constr函数问题 nibabashiwo MATLAB论坛 0 2009-01-14 14:25
[求助]看看我的matlab程序错在哪里 huanghuan MATLAB论坛 1 2008-11-16 18:34
scope显示问题(失真) zhc1007 MATLAB论坛 0 2008-11-16 15:32
怎样用窗函数截断IIR滤波器脉冲响应 wangzhuzhen MATLAB论坛 0 2008-11-14 14:53


所有时间均为北京时间。现在的时间是 14:15


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.