纵横向拉开档次法的matlab实现.doc
《纵横向拉开档次法的matlab实现.doc》由会员分享,可在线阅读,更多相关《纵横向拉开档次法的matlab实现.doc(6页珍藏版)》请在冰豆网上搜索。
![纵横向拉开档次法的matlab实现.doc](https://file1.bdocx.com/fileroot1/2022-10/3/e84d13d3-8a10-4b8d-b063-baf15600dacc/e84d13d3-8a10-4b8d-b063-baf15600dacc1.gif)
clearall
globalxystdszxystdxy%定义全局变量
loaddata.mat%原始数据
xystd=bzycl(x,y);%数据无量纲处理
[xystdrow,xystdcol]=size(xystd);
%----------区域知识创造能力评价----------
fortt=1:
xystdcol
xystdsz{tt}(:
:
)=xystd{tt}(:
1:
10);%提取区域知识创造能力指标无量纲值
end
[xystdszrow,xystdszcol]=size(xystdsz);
[xyrow,xycol]=size(xystdsz{1});
w0=zeros(1,xycol);
fori=1:
xycol
w0(1,i)=1/xycol;%优化初始值
end
Aeq=[];beq=[];
lb=zeros(1,xycol);ub=ones(1,xycol);
options=optimset('largescale','off');
[w,faval]=fmincon(@YHQU,w0,[],[],Aeq,beq,lb,ub,@fun,options);%优化求权重
wqz1=w./sum(w);%权重归一化
fortt=1:
xystdszcol
z{tt}(:
1)=xystd{tt}(:
1:
10)*wqz1';%求评价值
pxacz(:
tt)=px(z{tt}(:
1));%对评价值排序
end
clearw0wlbubfaval;
clearglobalxystdsz;
%--------区域知识流动能力评价------------
fortt=1:
xystdszcol
xystdsz{tt}(:
:
)=xystd{tt}(:
11:
16);%提取区域知识流动能力指标无量纲值
end
globalxystdsz;
[xystdszrow,xystdszcol]=size(xystdsz);
[xyrow,xycol]=size(xystdsz{1});
w0=zeros(1,xycol);
fori=1:
xycol
w0(1,i)=1/xycol;%优化w初始值
end
Aeq=[];beq=[];
lb=zeros(1,xycol);ub=ones(1,xycol);
options=optimset('largescale','off');
[w,faval]=fmincon(@YHQU,w0,[],[],Aeq,beq,lb,ub,@fun,options);
wqz2=w./sum(w);%权重归一化
fortt=1:
xystdszcol
z{tt}(:
2)=xystd{tt}(:
11:
16)*wqz2';%求评价值
pxald(:
tt)=px(z{tt}(:
2));%对评价值排序
end
clearw0wlbubfaval;
clearglobalxystdsz;
%-----------企业技术创新能力评价------------
fortt=1:
xystdszcol
xystdsz{tt}(:
:
)=xystd{tt}(:
17:
28);%提取企业技术创新能力指标无量纲值
end
globalxystdsz;
[xystdszrow,xystdszcol]=size(xystdsz);
[xyrow,xycol]=size(xystdsz{1});
w0=zeros(1,xycol);
fori=1:
xycol
w0(1,i)=1/xycol;%优化w初始值
end
Aeq=[];beq=[];
lb=zeros(1,xycol);ub=ones(1,xycol);
options=optimset('largescale','off');
[w,faval]=fmincon(@YHQU,w0,[],[],Aeq,beq,lb,ub,@fun,options);
wqz3=w./sum(w);%权重归一化
fortt=1:
xystdszcol
z{tt}(:
3)=xystd{tt}(:
17:
28)*wqz3';%求评价值
pxaqy(:
tt)=px(z{tt}(:
3));%对评价值排序
end
clearw0wlbubfaval;
clearglobalxystdsz;
%-----------创新环境能力评价--------------
fortt=1:
xystdszcol
xystdsz{tt}(:
:
)=xystd{tt}(:
29:
35);%提取创新环境能力指标无量纲值
end
globalxystdsz;
[xystdszrow,xystdszcol]=size(xystdsz);
[xyrow,xycol]=size(xystdsz{1});
w0=zeros(1,xycol);
fori=1:
xycol
w0(1,i)=1/xycol;%优化w初始值
end
Aeq=[];beq=[];
lb=zeros(1,xycol);ub=ones(1,xycol);
options=optimset('largescale','off');
[w,faval]=fmincon(@YHQU,w0,[],[],Aeq,beq,lb,ub,@fun,options);
wqz4=w./sum(w);%权重归一化
fortt=1:
xystdszcol
z{tt}(:
4)=xystd{tt}(:
29:
35)*wqz4';%求评价值
pxahj(:
tt)=px(z{tt}(:
4));%对评价值排序
end
clearw0wlbubfaval;
clearglobalxystdsz;
%-------------创新经济绩效能力评价--------------
fortt=1:
xystdszcol
xystdsz{tt}(:
:
)=xystd{tt}(:
36:
42);%提取创新绩效能力指标无量纲值
end
globalxystdsz;
[xystdszrow,xystdszcol]=size(xystdsz);
[xyrow,xycol]=size(xystdsz{1});
w0=zeros(1,xycol);
fori=1:
xycol
w0(1,i)=1/xycol;%优化w初始值
end
Aeq=[];beq=[];
lb=zeros(1,xycol);ub=ones(1,xycol);
options=optimset('largescale','off');
[w,faval]=fmincon(@YHQU,w0,[],[],Aeq,beq,lb,ub,@fun,options);
wqz5=w./sum(w);%权重归一化
fortt=1:
xystdszcol
z{tt}(:
5)=xystd{tt}(:
36:
42)*wqz5';%求评价值
pxajx(:
tt)=px(z{tt}(:
5));%对评价值排序
end
%--------求整体综合能力评价排序-----------------
clearw0wlbubfaval;
clearglobalxystdsz;
xystdsz=z;
globalxystdsz;
[xystdszrow,xystdszcol]=size(xystdsz);
[xyrow,xycol]=size(xystdsz{1});
w0=zeros(1,xycol);
Aeq=[];beq=[];
lb=zeros(1,xycol);ub=ones(1,xycol);
options=optimset('largescale','off');
[w,faval]=fmincon(@YHQU,w0,[],[],Aeq,beq,lb,ub,@fun,options);
wqz6=w./sum(w);%权重归一化
forkk=1:
zcol
z(:
kk)=z{kk}*wqz6';%求评价值
pxazz=px(zz);%对评价值排序
end
%----------zzfxcapcity表示各项能力得分-结果-----------
fori=1:
7
forj=1:
5
zzfxcapcity{j}(:
i)=z{i}(:
j);
end
end
zzfxcapcity{6}(:
:
)=zz;
%----------pxafxcapcity表示各项能力排序结果------------
pxafxcapcity{1}=pxacz;
pxafxcapcity{2}=pxald;
pxafxcapcity{3}=pxaqy;
pxafxcapcity{4}=pxahj;
pxafxcapcity{5}=pxajx;
pxafxcapcity{6}=pxazz;
%-------优化程序YHQU.m
functionxysum=YHQU(w,xystdsz)
globalxystdsz
[xystdrow,xystdcol]=size(xystdsz);
[xystdrow1,xystdcol1]=size(xystdsz{1});
fori=1:
xystdcol
forj=1:
xystdrow1
xyvalue(j,i)=xystdsz{i}(j,:
)*w';
end
end
xymean=mean(mean(xyvalue));
fori=1:
xystdrow1%xystdrow1=30
forj=1:
xystdcol%xystdcol=7
xyvar(i,j)=(xyvalue(i,j)-xymean).^2;
end
end
xysum=-sum(sum(xyvar));
%-------排序px..m
functionpxa=px(gyhjg)%px排序.pxa是排序结果,gyhjg是要进行排序的评价值列向量
jga=gyhjg;
[m,n]=size(jga);
forcol=1:
n
fori=1:
m-1
forj=i+1:
m
ifjga(i,col)temp=jga(i,col);
jga(i,col)=jga(j,col);
jga(j,col)=temp;
end
end
end
end
forcol=1:
n
fori=1:
m
forj=1:
m
ifgyhjg(i,col)==