Hi all, In my problem, I have two non linear constrains ; one of them in is arl1 <= 4 and the other one arl0 >= 500 and this is my problem because when I wrote these constraints using proc iml, the SAS considers them as equality constraints and I get an arl0 value=500, so how can I write this constraint in SAS so that it is considered as a greater than constraint? please note that I set optn[10]=2;optn[11]=0; This is part of my program : start arl(x); bb0=j(2,1,0.); m=100; meuw=0; L=x[2]*SQRT(x[1]/(2-x[1])); t=2*m+1; delta=2*L/t; z=-L+.5*delta; do i=2 to t; k=-L+(i-.5)*delta; z=z//k; end; do i=1 to t; zz=0; do j=1 to t; kone=((z[j,]+delta/2)-(1-x[1])*z[i,])/x[1]; ktwo=((z[j,]-delta/2)-(1-x[1])*z[i,])/x[1]; pij=probnorm(kone)-probnorm(ktwo); zz=zz//pij; end; if i=1 then r=zz; else r=r||zz; end; v=j(t,1,0); v[((t+1)/2),]=1; v=t(v); r=r[2:t+1,]; r=t(r); arl=inv(I(t)-r)*j(t,1,1); arl0=(v*arl); bb0[1]=arl0-500; m=100; shift=2; L=x[2]*SQRT(x[1]/((2-x[1]))); t=2*m+1; delta=2*L/t; z=-L+.5*delta; do i=2 to t; k=-L+(i-.5)*delta; z=z//k; end; do i=1 to t; zz=0; do j=1 to t; kone=((z[j,]+delta/2)-(1-x[1])*z[i,])/x[1]; ktwo=((z[j,]-delta/2)-(1-x[1])*z[i,])/x[1]; pij=probnorm(kone-(shift*sqrt(n)))-probnorm(ktwo-(shift*sqrt(n))); zz=zz//pij; end; if i=1 then r=zz; else r=r||zz; end; v=j(t,1,0); v[((t+1)/2), ]=1; v=t(v); r=r[2:t+1,]; r=t(r); arl=inv((I(t)-r))*j(t,1,1); arl1=(v*arl); bb0[2]=4-arl1; return (bb0); finish arl; con = { 0. 0., 1. .}; x={0.3 2.5}; optn=j(1,11,.);optn[1]=0;optn[2]=2;optn[10]=2;optn[11]=0; CALL nlpnms(rc,xres,"Cost",x,optn,con)nlc="arl"; quit; Thanks, Aya
... View more