⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 myaly1_1.asv

📁 matlab源程序
💻 ASV
字号:
%中间变量的计算值可以在matlab主窗体中的workspace中观察,也可以直接在变量赋值的结尾
%不加分号,还可以另起一行,直接写变量名,不加分号,如下所示
% r
% p

% 绘制散点图
clear;
%弹出对话框%%%
[FileName,pathName]=uigetfile('.xls');

[N,A]=xlsread(strcat(pathName,FileName),'sheet3');

Bj=N(:,3);
Tpy=N(:,5);Tpy0=N(:,6);
deltaTpy=abs(Tpy-Tpy0);
ln_deltaTpy=log(abs(deltaTpy));%有些数据目标值高于实际排烟温度,麻烦
kyqcf=N(:,7);ln_kyqcf=log(kyqcf);
smqcf1=N(:,9);smqk=N(:,27);smqk0=smqk./smqcf1;ln_smq=log(smqk0-smqk);
smqcf2=N(:,10);
dgcf1=N(:,11);dgk=N(:,28);dgk0=dgk./dgcf1;ln_dg=log(dgk0-dgk);
dgcf2=N(:,12);
qpcf1=N(:,13);qpk=N(:,29);qpk0=qpk./qpcf1;ln_qp=log(qpk0-qpk);
qpcf2=N(:,14);
hpcf1=N(:,15);hpk=N(:,30);hpk0=hpk./hpcf1;ln_hp=log(hpk0-hpk);
hpcf2=N(:,16);
ggcf1=N(:,17);ggk=N(:,31);ggk0=ggk./ggcf1;ln_gg=log(ggk0-ggk);
ggcf2=N(:,18);
dzcf1=N(:,19);dzk=N(:,32);dzk0=dzk./dzcf1;ln_dz=log(dzk0-dzk);
dzcf2=N(:,20);
gzcf1=N(:,21);gzk=N(:,33);gzk0=gzk./gzcf1;ln_gz=log(gzk0-gzk);
gzcf2=N(:,22);
ltcf=N(:,23);ln_ltcf=log(ltcf);


% Tpy0=235;
% deltaTpy=Tpy.-Tpy0;
% 排烟损失
Qpy=N(:,25);   
%对应元素左除
%Npy=N(:,8)./Bj;
%Npy0=min(Npy)-0.1;
% deltaNpy=Npy-Npy0;
% lndeltaNpy=log(deltaNpy);   %取 e未底的对数,自然对数

%对应元素左除
 
 subplot(3,3,1);loglog(kyqcf,deltaTpy,'g+');
 subplot(3,3,2);loglog(smqk0-smqk,deltaTpy,'b+');
 subplot(3,3,3);loglog(dgk0-dgk,deltaTpy,'r+');
 subplot(3,3,4);loglog(qpk0-qpk,deltaTpy,'g*');
 subplot(3,3,5);loglog(hpk0-hpk,deltaTpy,'b*');
 subplot(3,3,6);loglog(ggk0-ggk,deltaTpy,'r*');
 subplot(3,3,7);loglog(dzk0-dzk,deltaTpy,'g+');
 subplot(3,3,8);loglog(gzk0-gzk,deltaTpy,'g+');
 subplot(3,3,9);loglog(ltcf,deltaTpy,'g+');
  
 
%  subplot(3,3,4);
%  plot(smqCF,deltaNpy,'g+')

 
 
 %原始数据,排烟温度与各受热面灰污状态非线性关联,用灰色关联分析
%数据生成,数据处理,见文献N941.5/1罗佑新,张龙庭,李敏著,灰色系统理论及其在机械工程中的应用,国防科技大学出版社,2001
y0=deltaTpy;
xsmq=smqk0-smqk;

% subplot(3,3,7),plot(x1);
% subplot(3,3,8),plot(x2);
% subplot(3,3,9),plot(y);
%初值处理,x1,x2希望越大越好,y希望越小越好
maxy=max(y0);miny=min(y0);y1=(y0-miny)/(maxy-miny);
maxkyq=max(kyqcf);minkyq=min(kyqcf);kyq1=(maxkyq-kyqcf)/(maxkyq-minkyq);
maxsmq=max(smqcf1);minsmq=min(smqcf1);smq1=(maxsmq-smqcf1)/(maxsmq-minsmq);
maxdg=max(dgcf1);mindg=min(dgcf1);dg1=(maxdg-dgcf1)/(maxdg-mindg);
maxqp=max(qpcf1);minqp=min(qpcf1);qp1=(maxqp-qpcf1)/(maxqp-minqp);
maxhp=max(hpcf1);minhp=min(hpcf1);hp1=(maxhp-hpcf1)/(maxhp-minhp);
maxgg=max(ggcf1);mingg=min(ggcf1);gg1=(maxgg-ggcf1)/(maxgg-mingg);
maxdz=max(dzcf1);mindz=min(dzcf1);dz1=(maxdz-dzcf1)/(maxdz-mindz);
maxgz=max(gzcf1);mingz=min(gzcf1);gz1=(maxgz-gzcf1)/(maxgz-mingz);
maxlt=max(ltcf);minlt=min(ltcf);lt1=(maxlt-ltcf)/(maxlt-minlt);

%关联度计算
deltaykyq=abs(y1-kyq1);
deltaysmq=abs(y1-smq1);
deltaydg=abs(y1-dg1);
deltayqp=abs(y1-qp1);
deltayhp=abs(y1-hp1);
deltaygg=abs(y1-gg1);
deltaydz=abs(y1-dz1);
deltaygz=abs(y1-gz1);
deltaylt=abs(y1-lt1);

smax=[max(deltaykyq),max(deltaysmq),max(deltaydg),max(deltayqp),max(deltayhp),max(deltaygg),max(deltaydz),max(deltaygz),max(deltaylt)];
smin=[min(deltaykyq),min(deltaysmq),min(deltaydg),min(deltayqp),min(deltayhp),min(deltaygg),min(deltaydz),min(deltaygz),min(deltaylt)];
deltamax=max(smax);
deltamin=min(smin);
%等权关联
kckyq=(deltamin+0.5*deltamax)./(deltaykyq+0.5*deltamax);
kcsmq=(deltamin+0.5*deltamax)./(deltaysmq+0.5*deltamax);
kcdg=(deltamin+0.5*deltamax)./(deltaydg+0.5*deltamax);
kcqp=(deltamin+0.5*deltamax)./(deltayqp+0.5*deltamax);
kchp=(deltamin+0.5*deltamax)./(deltayhp+0.5*deltamax);
kcgg=(deltamin+0.5*deltamax)./(deltaygg+0.5*deltamax);
kcdz=(deltamin+0.5*deltamax)./(deltaydz+0.5*deltamax);
kcgz=(deltamin+0.5*deltamax)./(deltaygz+0.5*deltamax);
kclt=(deltamin+0.5*deltamax)./(deltaylt+0.5*deltamax);

Rkckyq=sum(kckyq)/size(kckyq,1);
Rkcsmq=sum(kcsmq)/size(kcsmq,1);
Rkcdg=sum(kcdg)/size(kcdg,1);
Rkcqp=sum(kcqp)/size(kcqp,1);
Rkchp=sum(kchp)/size(kchp,1);
Rkcgg=sum(kcgg)/size(kcgg,1);
Rkcdz=sum(kcdz)/size(kcdz,1);
Rkcgz=sum(kcgz)/size(kcgz,1);
Rkclt=sum(kclt)/size(kclt,1);

 
%线性增量的对数线性相关,取对数相关分析 
 y=log(Tpy);
% 把这ji个向量组成三列的矩阵 
Rpp=[y,ln_kyqcf,ln_smq,ln_dg,ln_qp,ln_hp,ln_gg,ln_dz,ln_gz,ln_ltcf];
% 以下两种计算相关系数的结果是相同的
[R,p]=corrcoef(Rpp);   %r,p分别是10X10的矩阵,r是相关系数矩阵p是检验显著行水平的矩阵
[i,j] = find(p<0.05);  % Find significant correlations.
[i,j]                % Display their (row,col) indices
%偏相关系数之间缺乏比较基础,计算偏相关系数Pryn,半偏相关系数sryn
Ryy=R;Ryy(1,:)=[];Ryy(:,1)=[];
ayy=det(Ryy);
Ry2=R;Ry2(1,:)=[];Ry2(:,2)=[];ay2=-det(Ry2);
R22=R;R22(2,:)=[];R22(:,2)=[];a22=det(R22);
pry2=ay2/sqrt(a22*ayy);
Ry3=R;Ry3(1,:)=[];Ry3(:,3)=[];ay3=det(Ry3);
R33=R;R33(3,:)=[];R33(:,3)=[];a33=det(R33);
pry3=ay3/sqrt(a33*ayy);
Ry4=R;Ry4(1,:)=[];Ry4(:,4)=[];ay4=-det(Ry4);
R44=R;R44(4,:)=[];R44(:,4)=[];a44=det(R44);
pry4=ay4/sqrt(a44*ayy);
Ry5=R;Ry5(1,:)=[];Ry5(:,5)=[];ay5=det(Ry5);
R55=R;R55(5,:)=[];R55(:,5)=[];a55=det(R55);
pry5=ay5/sqrt(a55*ayy);
Ry6=R;Ry6(1,:)=[];Ry6(:,6)=[];ay6=-det(Ry6);
R66=R;R66(6,:)=[];R66(:,6)=[];a66=det(R66);
pry6=ay6/sqrt(a66*ayy);
Ry7=R;Ry7(1,:)=[];Ry7(:,7)=[];ay7=det(Ry7);
R77=R;R77(7,:)=[];R77(:,7)=[];a77=det(R77);
pry7=ay7/sqrt(a77*ayy);
Ry8=R;Ry8(1,:)=[];Ry8(:,8)=[];ay8=-det(Ry8);
R88=R;R88(8,:)=[];R88(:,8)=[];a88=det(R88);
pry8=ay8/sqrt(a88*ayy);
Ry9=R;Ry9(1,:)=[];Ry9(:,9)=[];ay9=det(Ry9);
R99=R;R99(9,:)=[];R99(:,9)=[];a99=det(R99);
pry9=ay9/sqrt(a99*ayy);
Ry10=R;Ry10(1,:)=[];Ry10(:,10)=[];ay10=det(Ry10);
R10=R;R10(10,:)=[];R10(:,10)=[];a10=det(R10);
pry10=ay10/sqrt(a10*ayy);





%复相关系数,是与多因素整体之间的线性相关程度,而不能确切说明因变量与各自变量之间的相关程度
% ry2_3=(ry2-ry3*r23)/sqrt((1-ry3^2)*(1-r23^2));
% ry2_4=(ry2-ry4*r24)/sqrt((1-ry4^2)*(1-r24^2));
% ry2_34=(ry2_3-ry4_3*r24_3)
% ry2_345=(ry2_34-ry5_34*r25_34)
% ry2_3456=(ry2_345-ry6_345*r26_345)
% ry2_34567
% ry_12=sqrt(1-(1-ry1^2)*(1-ry2_1^2));
% %复相关系数的F检验
% Fchecking=ry_12^2*(1440-2-1)/(1-ry_12^2)/2;
% %偏相关系数
% ry2_1=(ry2-ry1*r12)/sqrt((1-ry1^2)*(1-r12^2))
% ry1_2=(ry1-ry2*r12)/sqrt((1-ry2^2)*(1-r12^2))
% %偏相关系数的t检验
% tcheckingy2=ry2_1*sqrt(1440-2-1)/sqrt(1-ry2_1^2)
% tcheckingy1=ry1_2*sqrt(1440-2-1)/sqrt(1-ry1_2^2)

%主成分分析
datap=[ln_kyqcf,ln_smq,ln_dg,ln_qp,ln_hp,ln_gg,ln_dz,ln_gz,ln_ltcf];
stdr=std(datap);                       %求出各变量的标准偏差,返回包含矩阵datap中每一列标准偏差的一个行向量
[n,m]=size(datap);                           %求出矩阵的行列数
ss=stdr(ones(n,1),:);                        %生成一个矩阵,行数为n,列数为stdr的列数,把stdr变成n行,每行都是一个stdr行
sddata=datap./stdr(ones(n,1),:);              %将原始矩阵集体标准化,ones()返回一个元素全为1的矩阵
[pf,princ,eigenvalue,t2]=princomp(sddata);    %调用主成分分析数据
pf3=pf(:,1:3);                                %提取前3个主成分系数                      
sc=princ(:,1:3);                              %提取前3个主成分得分值
e=eigenvalue(1:3)';                           %提取前3个特征根并转置
M=e(ones(m,1),:).^0.5;                        %利用特征根构造变换矩阵
compmat=pf3.*M;                               %求主成分载荷矩阵的前3列
per=100*eigenvalue/sum(eigenvalue);           %求出各主成分的贡献率
cumsum(per);                                  %各主成分的累计贡献率,返回与per相同维数的向量
pareto(per);                                  %将贡献率绘制成直方图,以递减次序绘制直条来显示向量的值,直条上用元素下标进行标注
t2                                            %每个数据点的HotellingT2统计
plot(eigenvalue,'r+');                        %输出方差贡献散点图
hold on;                                      %保持图形
plot(eigenvalue,'g-');
hold off;                                      %关闭图形
plot(princ(:,1),princ(:,2),'+');              %绘制两维主成分散点图

clc; %清除命令窗口
save myaly1_1date;   %把系统内部数据保存为mat文件,load命令可以将磁盘上的mat文件读入到matlab系统中

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -