function z=Untitled1(p,rx,ry,rho,z0,tau,n)
rx=rx/sqrt(n);
ry=ry/sqrt(n);
w=z0*tau*rx/ry;
c1=1/power(ry,2)-power(norminv(p),2);
c2=2*w*(rho*power(norminv(p),2)-1/(rx*ry));
c3=power(w,2)*(1/power(rx,2)-power(norminv(p),2));
if p>0.5
z=(-c2+sqrt(power(c2,2)-4*c1*c3))/2*c2;
else
z=(-c2-sqrt(power(c2,2)-4*c1*c3))/2*c2;
end
end
tau=1;
rx=0.01;
ry=0.01;
rho=-0.8;
n=5;
z0=1;
a=0.005;
p1=1-a/2;
p2=a/2;
UCL=Untitled1(p1,rx,ry,rho,z0,tau,n);
LCL=Untitled1(p2,rx,ry,rho,z0,tau,n);
ARL0=200;
rx=0.2;
ry=0.2;
z0=1;
rho=0.8;
tau=1.1;
n0=15;
ARL1=10000;
options=optimset('MaxIter',15000,'TolFun',1e-10,'TolX',1e-10);
for ns=1:n0-1
for nl=n0+1:31
k(1)=getucl(rx,ry,rho,ns,ARL0);
k(2)=getucl(rx,ry,rho,nl,ARL0);
x=[k(1),k(2),1+(k(1)-1)*0.4,1+(k(2)-1)*0.6];%自己設定的初始值x(1),x(2),x(3),x(4)
%x=[1.007598,1.007597,1.00,1.000708];
[x,fval,exitflag,output]=fmincon(@(x) vssfun1(x,ns,nl,rx,ry,rho,tau,z0),[x(1),x(2),x(3),x(4)],[-1,1,0,0;-1,0,1,0;0,-1,0,1],[0;0;0],[],[],[1,1,0.9,0.9],[5,5,5,5],@(x) vssfun2(x,rx,ry,rho,z0,ns,nl,n0),options);
% [x,fval,exitflag,output]=fminsearch(@(x) psovssrz3(x,ns,nl,rx,ry,rho,tau,z0,n0),[x(1),x(2),x(3),x(4)],options);
% opts = optimoptions(@fsolve,'Algorithm', 'levenberg-marquardt','MaxIter',1500,'MaxFunEvals',1500,'TolX',1e-8,'TolFun',1e-8);
% [w,fval,exitflag]=fsolve(@(x) optw(x,rx,ry,rho,z0,ns,nl,n0,k),[1,1],opts);
% [x,fval,exitflag]=fsolve(@(x) myfun(x,rx,ry,rho,z0,ns,nl,ARL0,n0),[k(1),k(2),1.0001,1.0001],opts);
[ARL,SDRL]=getARL(x,rx,ry,rho,tau,z0,ns,nl);
if (ARL<ARL1)&&(exitflag>0)
ARL1=ARL;
SDRL1=SDRL;
ASS1=getASS(x,rx,ry,rho,tau,z0,ns,nl);
ns1=ns;
nl1=nl;
x1=x;
end
end
end
allparameters=[ns1,nl1,x1,ARL1,ASS1,SDRL1];
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/281023.html
標籤:其他開發語言
上一篇:紅杠識別,用OpenCV合適還是用Tensorflow、Pytorch更合適?如何在微信小程式實作?代碼該怎么寫?
