1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > matlab灰色关联逻辑分析模型 灰色理论灰色预测模型和灰色关联度分析matlab通用代码...

matlab灰色关联逻辑分析模型 灰色理论灰色预测模型和灰色关联度分析matlab通用代码...

时间:2022-05-17 01:13:20

相关推荐

matlab灰色关联逻辑分析模型 灰色理论灰色预测模型和灰色关联度分析matlab通用代码...

%该程序用于灰色关联分析,其中原始数据的第一行为参考序列,1至15行为正相关序列,16至17为负相关序列

clc,clear

load x.txt %把原始数据存放在纯文本文件x.txt 中

%如果全为正相关序列,则将两个循环替换为下列代码

%for i=1:size(x,1)

%x(i,=x(i,/x(i,1);

%end

for i=1:15

x(i,=x(i,:)/x(i,1); %标准化数据

end

for i=16:17

x(i,:)=x(i,1)./x(i,:); %标准化数据

end

data=x;

n=size(data,1);

ck=data(1,:);%分离参考序列

bj=data(2:n,:);m1=size(bj,1);

for j=1:m1

t(j,:)=bj(j,:)-ck;

end

jc1=min(min(abs(t')));jc2=max(max(abs(t')));

rho=0.5;%灰色关联度为0.5

ksi=(jc1+rho*jc2)./(abs(t)+rho*jc2);

r=sum(ksi')/size(ksi,2);

r %灰色关联度向量

[rs,rind]=sort(r,'descend') %对关联度进行降序排序

%该函数用于灰色预测模型,其中x0为列向量,alpha一般取0.5,将第一个数据视为序号为0,k从0开始的序号矩阵

function y=huiseyuce(x0,alpha,k)

n=length(x0);

x1=cumsum(x0);

for i=2:n

z1(i)=alpha*x1(i)+(1-alpha)*x1(i-1);

end

z1=z1';

B=[-z1(2:n),ones(n-1,1)];

Y=x0(2:n);

ab=B\Y;

y1=(x0(1)-ab(2)/ab(1))*exp(-ab(1)*k)+ab(2)/ab(1);%产生预测累加生成序列

y=[x0(1) diff(y1)]%产生灰色预测数据

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。