*--------------------------------------------------------- * Date created: February 8, 2001 * * Robust Stability of linear systems * Floudas & Visweswaran Quadratic Optimization, * Princeton University * * Dr. Neculai Andrei * Research Institute for Informatics, * 8-10, Averescu Avenue, Bucharest 1, Romania * E-mail: nandrei@u3.ici.ro * web: www.ici.ro/camo *--------------------------------------------------------- * subroutine ini(n,m,mb,me,sb,x,icgc,ipgc,icge,ipge, 1 nszc,nsze,nb) * double precision x(n) integer sb(mb) integer icgc(nszc),ipgc(n+1) integer icge(nsze),ipge(n+1) * write(1,10) 10 format(5x,'Example of a Nonlinear Programming Problem.') write(1,11) 11 format(5x,'Robust Stability of Linear systems') write(1,12) 12 format(5x,'February 8, 2001') * n=8 m=6 me=5 mb=2*n nszc=12 nsze=18 * * Initial Point: * x(1)=8.d0 x(2)=4.d0 x(3)=6.d0 x(4)=2.d0 x(5)=1.d0 x(6)=9.d0 x(7)=1.d0 x(8)=4.d0 * * Index vector for simple bounds: * j=1 do i=1,n sb(j)=i sb(j+1)=-i j=j+2 end do * * Rows indices of the nonzeros of the Jacobian of the Equalities. * icge(1)=1 icge(2)=2 icge(3)=1 icge(4)=2 icge(5)=5 icge(6)=1 icge(7)=2 icge(8)=3 icge(9)=1 icge(10)=2 icge(11)=3 icge(12)=1 icge(13)=4 icge(14)=1 icge(15)=2 icge(16)=4 icge(17)=3 icge(18)=5 * * Starting adress for the columns * ipge(1)=1 ipge(2)=3 ipge(3)=6 ipge(4)=9 ipge(5)=12 ipge(6)=0 ipge(7)=14 ipge(8)=17 ipge(9)=19 * * Rows indices of the nonzeros of the Jacobian of the INEqualities. * icgc(1)=1 icgc(2)=2 icgc(3)=3 icgc(4)=4 icgc(5)=5 icgc(6)=6 icgc(7)=1 icgc(8)=2 icgc(9)=3 icgc(10)=4 icgc(11)=5 icgc(12)=6 * * Starting adress for the columns * ipgc(1)=1 ipgc(2)=3 ipgc(3)=5 ipgc(4)=0 ipgc(5)=0 ipgc(6)=7 ipgc(7)=0 ipgc(8)=0 ipgc(9)=13 * return end * *-------------------------------------------------------------- * Date created: February 8, 2001 * * Robust stability of linear systems * Floudas & Visweswaran, Quadratic Optimization, * Princeton University *-------------------------------------------------------------- * subroutine prob(n,m,mb,me,sb,x,objf,gobj,c,gc,cb,e,ge, 1 nszc,nsze,nb) * * Calculate problem functions at iterate x. * double precision x(n),objf,gobj(n),c(m),gc(nszc), * cb(mb),e(me),ge(nsze) * * Objective function, and its gradient. * objf= x(6) * * Gradient of the Objective Function * do i=1,n gobj(i)=0.d0 end do gobj(6)=1.d0 * * Bounds on variables. * j=1 do i=1,n cb(j)=x(i) cb(j+1)=10.d0-x(i) j=j+2 end do * * * -- Equality Constraints * e(1)= x(5)*x(7) - (x(4)+10.d0*x(2)+10.d0*x(3))*x(7) * +2.d0*x(1) e(2)= (x(2)+x(3)+10.d0)*x(7) - 10.d0*x(4) - x(1) e(3)= x(4) - x(3)*x(8) e(4)= x(5)-x(7) e(5)= x(2)-x(8) * * -- InEquality Constraints * c(1) = 800.d0 + 800.d0*x(6) - x(1) c(2) = x(1) - 800.d0 + 800.d0*x(6) c(3) = 4.d0 + 2.d0*x(6) - x(2) c(4)= x(2) - 4.d0 + 2.d0*x(6) c(5)= 6.d0 + 3.d0*x(6) - x(3) c(6)= x(3) - 6.d0 + 3.d0*x(6) * * * -- Jacobian of the Equality Constraints * * Col 1 ge(1)=2.d0 ge(2)=-1.d0 * Col 2 ge(3)=-10.d0*x(7) ge(4)=x(7) ge(5)=1.d0 * Col 3 ge(6)=-10.d0*x(7) ge(7)=x(7) ge(8)=-x(8) * Col 4 ge(9)=-x(7) ge(10)=-10.d0 ge(11)=1.d0 * Col 5 ge(12)=x(7) ge(13)=1.d0 * Col 6 * Col 7 ge(14)=x(5) -(x(4)+10.d0*x(2)+10.d0*x(3)) ge(15)=x(2)+x(3)+10.d0 ge(16)=-1.d0 * Col 8 ge(17)=-x(3) ge(18)=-1.d0 * * -- Jacobian of the Inequality constraints. * * Col 1 gc(1)=-1.d0 gc(2)=1.d0 * COl 2 gc(3)=-1.d0 gc(4)=1.d0 * Col 3 gc(5)=-1.d0 gc(6)=1.d0 * Col 4 * Col 5 * Col 6 gc(7)=800.d0 gc(8)=800.d0 gc(9)=2.d0 gc(10)=2.d0 gc(11)=3.d0 gc(12)=3.d0 * return end *-------------------------------------------------FV2.for