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

📄 feipca.m

📁 非线性PCA算法matlab程序段
💻 M
字号:
T=0.8;
dim=512;
Ts=10;
SSS=sig(T,dim,Ts)
x1=SSS(6,:);
x2=SSS(2,:);
x3=SSS(3,:);
tm=dim+1;
t=1:tm;
S1=[x1;x2;x3]
subplot(3,3,1);
plot(t,S1(1,:));
subplot(3,3,2);
plot(t,S1(2,:));
subplot(3,3,3);
plot(t,S1(3,:));
Grand=rand(3);
X=Grand*S1
mm=mean(X,2)
am=ones(1,tm);
ave=mm*am;
XX=X-ave;
[U1,S1,V1]=svd(XX); %对观测数据进行奇异值分解
P=U1'*XX;         %主分量分解
C=P*P';
Z=C^(-1/2)*P ;

WW=zeros(3,tm);
W=eye(3,3);
u=0.01;
W1=zeros(3,3);

for i=1:3

W1(:,i)=W(:,i);
W1(:,i)=W1(:,i)/norm(W1(:,i));
p=-((W1(:,i)'*Z).^3/3*(Z'-(W1(:,i)'*Z)'.^3*W1(:,i)'))';
W0=W1(:,i);
W1(:,i)=W0+u*p;
W1(:,i)=W1(:,i)/norm(W1(:,i));

 while  norm(W1(:,i)-W0)>1.0e-5
   p=-((W1(:,i)'*Z).^3/3*(Z'-(W1(:,i)'*Z)'.^3*W1(:,i)'))';
   W0=W1(:,i);
   W1(:,i)=W0+u*p;
   W1(:,i)=W1(:,i)/norm(W1(:,i));
 end
W1

WW(i,:)=W1(:,i)'*Z;
Z=Z-W1(:,i)*(W1(:,i)'*Z).^3/3;
end
WW
 subplot(3,3,4);
 plot(t,WW(1,:));
 subplot(3,3,5);
plot(t,WW(2,:));
subplot(3,3,6);
plot(t,WW(3,:));

⌨️ 快捷键说明

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