24小时热门版块排行榜    

查看: 1075  |  回复: 0

盛向前

新虫 (小有名气)

[求助] 响应面法遇到的问题

请问大神,响应面法的一个小算例出现下面的错误是因为哪方面?本人菜鸟,一直没有查出来,谢谢。
错误使用  *
内部矩阵维度必须一致。

clear;clc;
muX=[20;14];sigmaX=[4;1.4];
aev=sqrt(6)*sigmaX(2)/pi;
uev=-psi(1)*aev-muX(2);
x=muX;normX=eps;
n=length(muX);f=3;
d=diag(f*sigmaX);
gM=x(1)-x(2);
while abs(norm(x)-normX)/normX>1e-6
    normX=norm(x);
    a1=x';    a2=a1.*a1;
    a3=repmat(a1,n,1);
    a3=a3-d;   a4=a3.*a3;
    a5=a3+2*d;  a6=a5.*a5;
    a=[ones(2*n+1,1),[a1,a2;a3,a4;a5,a6]];
    gv=a(:,2)-a(:,3);
    lambda=a\gv;
    x=muX;normX1=eps;
    while abs(norm(x)-normX1)/normX1>1e-6
        normX1=norm(x);
        g=lambda'*[1;x;x.*x];
        gX=lambda(2:n+1)+2*lambda(n+2:2*n+1).*x;
        cdfX=1-evcdf(-x(2),uev,aev);
        pdfX=evpdf(-x(2),uev,aev);
        nc=norminv(cdfX);
        sigmaX1(2)=normpdf(nc)./pdfX;
        muX1(2)=x(2)-nc*sigmaX1(2);
        gs=gX.*sigmaX1;alphaX=-gs/norm(gs);
        bbeta=(g+gX'*(muX1-x))/norm(gs);
        x=muX1+bbeta*sigmaX1.*alphaX;
    end
    g=x(1)-x(2);
    x=muX+gM/(gM-g)*(x-muX);
end @大圣
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 盛向前 的主题更新
信息提示
请填处理意见