restart:with(LinearAlgebra): A:=Matrix([[-2,5,1],[-3,2,3],[2,1,3]]); B:=Matrix([[-4,-2,4],[-3,1,4],[3,1,-1]]); Y:=Vector(3,symbol=y): X:=Vector(3,symbol=x): yeq:=seq(add(y[j]*(A[i,j]-A[3,j]),j=1..3),i=1..2); xeq:=seq(add(x[i]*(B[i,s]-B[i,3]),i=1..3),s=1..2); xsols:=solve({xeq[1]=0,xeq[2]=0,add(x[i],i=1..3)=1},[x[1],x[2],x[3]]); assign(xsols); ysols:=solve({yeq[1]=0,yeq[2]=0,add(y[j],j=1..3)=1},[y[1],y[2],y[3]]); assign(ysols); Transpose(X).A.Y; Transpose(X).B.Y; restart:with(LinearAlgebra): A:=Matrix([[-1,0,0],[2,1,0],[0,1,1]]); B:=Matrix([[1,2,2],[1,-1,0],[0,1,2]]); X:=<x[1],x[2],x[3]>; Y:=<y[1],y[2],y[3]>; Cnst:={seq((A.Y)[i]<=p,i=1..3), seq((Transpose(X).B)[i]<=q,i=1..3), add(x[i],i=1..3)=1,add(y[i],i=1..3)=1}; with(Optimization); objective:=expand(Transpose(X).A.Y+Transpose(X).B.Y-p-q); QPSolve(objective,Cnst,assume=nonnegative,maximize); QPSolve(objective,Cnst,assume=nonnegative,maximize, initialpoint=({q=1,p=2})); NLPSolve(objective,Cnst,assume=nonnegative,maximize);