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

📄 g_update.m

📁 结构方程中拟合函数的迭代算法
💻 M
字号:
function  [G,X_k]=G_Update(S,Lambda_Y,Lambda_X,Beta,Gamma,Phi,Psi,Theta_epsilon,Theta_delta)

A=inv(Beta);
D=A*Gamma;

SYY=[Lambda_Y*A*(Gamma*Phi*Gamma'+Psi)*A'*Lambda_Y'+Theta_epsilon];
SYX=[Lambda_Y*A*Gamma*Phi*Lambda_X'];
SXY=SYX';
SXX=[Lambda_X*Phi*Lambda_X'+Theta_delta];
Sigma=[SYY SYX;SXY SXX];                                %待预测矩阵
Omega=inv(Sigma)*(Sigma-S)*inv(Sigma);

%Omega分块矩阵
OYY=Omega(1:size(SYY,1),1:size(SYY,2));
OYX=Omega(1:size(SYX,1),size(SYY,2)+1:size(Omega,2));
OXY=Omega(size(SYY,1)+1:size(Omega,1),1:size(SXY,2));
OXX=Omega(size(SYY,1)+1:size(Omega,1),size(SXY,2)+1:size(Omega,2));

%%分别对8个参数矩阵进行求导
g_Lambda_X=2*(OXY*Lambda_Y*A*Gamma*Phi+OXX*Lambda_X*Phi);
g_Beta=-2*(A'*Lambda_Y'*OYY*(Lambda_Y*D*Phi*D'+Lambda_Y*A*Psi*A')+A'*Lambda_Y'*OYX*Lambda_X*Phi*D');
g_Gamma=2*(A'*Lambda_Y'*OYY*Lambda_Y*D*Phi+A'*Lambda_Y'*OYX*Lambda_X*Phi);
g_Phi=(D'*Lambda_Y'*OYY*Lambda_Y*D+D'*Lambda_Y'*OYX*Lambda_X+Lambda_X'*OXY*Lambda_Y*D+Lambda_X'*OXX*Lambda_X);
g_Psi=(A'*Lambda_Y'*OYY*Lambda_Y*A);
  g_The_del=diag(OXX);
g_Theta_delta=full(spdiags(g_The_del,0,size(OXX,1),size(OXX,2)));

%%对未知参数的导数放在一个向量上
G(1)=g_Lambda_X(2,2);G(2)=g_Lambda_X(3,2);G(3)=g_Lambda_X(4,3);G(4)=g_Lambda_X(5,3);G(5)=g_Lambda_X(6,3);
G(6)=g_Beta(1,2);
G(7)=g_Gamma(1,1);G(8)=g_Gamma(1,2);G(9)=g_Gamma(1,3);G(10)=g_Gamma(2,1);G(11)=g_Gamma(2,2);G(12)=g_Gamma(2,3);
G(13)=g_Phi(2,1);G(14)=g_Phi(3,1);G(15)=g_Phi(3,2);G(16)=g_Phi(1,2);G(17)=g_Phi(1,3);G(18)=g_Phi(2,3);
G(19)=g_Psi(1,1);G(20)=g_Psi(2,2);
G(21)=g_Theta_delta(2,2);G(22)=g_Theta_delta(3,3);G(23)=g_Theta_delta(4,4);G(24)=g_Theta_delta(5,5);G(25)=g_Theta_delta(6,6);
G=G';
%%对未知参数放在一个向量上
X_k(1)=Lambda_X(2,2);X_k(2)=Lambda_X(3,2);X_k(3)=Lambda_X(4,3);X_k(4)=Lambda_X(5,3);X_k(5)=Lambda_X(6,3);
X_k(6)=Beta(1,2);
X_k(7)=Gamma(1,1);X_k(8)=Gamma(1,2);X_k(9)=Gamma(1,3);X_k(10)=Gamma(2,1);X_k(11)=Gamma(2,2);X_k(12)=Gamma(2,3);
X_k(13)=Phi(2,1);X_k(14)=Phi(3,1);X_k(15)=Phi(3,2);X_k(16)=Phi(1,2);X_k(17)=Phi(1,3);X_k(18)=Phi(2,3);
X_k(19)=Psi(1,1);X_k(20)=Psi(2,2);
X_k(21)=Theta_delta(2,2);X_k(22)=Theta_delta(3,3);X_k(23)=Theta_delta(4,4);X_k(24)=Theta_delta(5,5);X_k(25)=Theta_delta(6,6);
X_k=X_k';

⌨️ 快捷键说明

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