muX=[20;10];cvX=[0.25;0.2];
rhoX=[1,0.5;0.5,1];sigmaX=cvX.*muX;
aEv=sqrt(6)*sigmaX(1)/pi;uEv=-psi(1)*aEv-muX(1);
sLn=sqrt(log(1+(sigmaX(2)/muX(2))^2));mLn=log(muX(2))-sLn^2/2;
muX1=muX;sigmaX1=sigmaX;
s=rhoX(1,2);t=cvX(2);
r=1.029+0.001*s+0.004*s^2+0.014*t+0.233*t^2-0.197*s*t;
r12=r*rhoX(1,2);rhoX1=[1,r12,r12,1];
x=muX;normX=eps;
while abs(norm(x)-normX)/normX > 1e-6
normX=norm(x);
g=x(2)^2-2*x(1);
gX=[-2;2*x(2)];
cdfX=[1-evcdf(-x(1),uEv,aEv);logncdf(x(2),mLn,sLn)];
pdfX=[evpdf(-x(1),uEv,aEv);lognpdf(x(2),mLn,sLn)];
nc=norminv(cdfX);
sigmaX1=normpdf(nc)./pdfX;
muX1=x-nc.*sigmaX1;
covX=diag(sigmaX1)*rhoX1*diag(sigmaX1);
[a,d]=eig(covX);
muY=a'*muX1;sigmaY=sqrt(diag(d));
y=a'*x;
gY=a'*gX;gs=gY.*sigmaY;
alphaY=-gs/norm(gs);
bbeta=(g+gY'*(muY-y))/norm(gY.*sigmaY)
y=muY+bbeta*sigmaY.*alphaY;
x=a*y;
end
错误使用 *
内部矩阵维度必须一致。
出错 Untitled (line 20)
covX=diag(sigmaX1)*rhoX1*diag(sigmaX1);
把*改成.*还是说错误
有没有大神看看哪的错
rhoX=[1,0.5;0.5,1];sigmaX=cvX.*muX;
aEv=sqrt(6)*sigmaX(1)/pi;uEv=-psi(1)*aEv-muX(1);
sLn=sqrt(log(1+(sigmaX(2)/muX(2))^2));mLn=log(muX(2))-sLn^2/2;
muX1=muX;sigmaX1=sigmaX;
s=rhoX(1,2);t=cvX(2);
r=1.029+0.001*s+0.004*s^2+0.014*t+0.233*t^2-0.197*s*t;
r12=r*rhoX(1,2);rhoX1=[1,r12,r12,1];
x=muX;normX=eps;
while abs(norm(x)-normX)/normX > 1e-6
normX=norm(x);
g=x(2)^2-2*x(1);
gX=[-2;2*x(2)];
cdfX=[1-evcdf(-x(1),uEv,aEv);logncdf(x(2),mLn,sLn)];
pdfX=[evpdf(-x(1),uEv,aEv);lognpdf(x(2),mLn,sLn)];
nc=norminv(cdfX);
sigmaX1=normpdf(nc)./pdfX;
muX1=x-nc.*sigmaX1;
covX=diag(sigmaX1)*rhoX1*diag(sigmaX1);
[a,d]=eig(covX);
muY=a'*muX1;sigmaY=sqrt(diag(d));
y=a'*x;
gY=a'*gX;gs=gY.*sigmaY;
alphaY=-gs/norm(gs);
bbeta=(g+gY'*(muY-y))/norm(gY.*sigmaY)
y=muY+bbeta*sigmaY.*alphaY;
x=a*y;
end
错误使用 *
内部矩阵维度必须一致。
出错 Untitled (line 20)
covX=diag(sigmaX1)*rhoX1*diag(sigmaX1);
把*改成.*还是说错误
有没有大神看看哪的错