You have 20 nonlinear equations in 20 unknowns. Do you seriously expect a symbolic solution? And of course, there will very possibly be many equally valid solutions, at least if any exist at all.
Even a numerical solution, as vpasolve would try to produce is going to take a significant amount of time. So why would you try to formulate this as s symbolic problem at all? If this has a hope of any solution in a reasonable amount of time, it would be using a numerical solver like fsolve. Could you try this?
opts = optimset('fsolve');
opts.MaxIterations = 10000;
xy = fsolve(@myfun,(2+rand(1,20)),opts)
myfun(xy)
I'll try it a second time, with a different random start point.
xy = fsolve(@myfun,(2+rand(1,20)),opts)
myfun(xy)
So no solution was found. That does not mean a solution does not exist. But it does tell me what I expect, that there will be many multiple local stable points for the solver, and that if you will hope to find a solution, that would require a great deal of luck to have chosen good starting values.
But worse, see that despite trying different starting values, AND arriving at clearly differnt points for xy, in both cases, the values for myfun were close to identical. Does that tell me anything? YES> That suggests there may be no exact solution at all.
Would vpasolve do any better? Surely not, as you are asking this question in the first place. vpasolve requires a starting point. And the solution will be dependent on the start point, just like fsolve. But worse, vpasolve will not roduce an answer if an exact one does not exist. At least fsolve returns an answer. And vpasolve will take one hell of a long time to converge for this large of a problem.
All of that means there is likely no exact solution possible, even one that is close to exact.
function Z = myfun(XY)
Z = [XY(11)*(30*XY(2) + 40*XY(3) + 50*XY(4) + 60*XY(5) + 70*XY(6) + 30*XY(7) + 40*XY(8) + 50*XY(9) + 60*XY(10))-550;
XY(12)*(50*XY(1) + 40*XY(3) + 50*XY(4) + 30*XY(5) + 50*XY(6) + 40*XY(7) + 50*XY(8) + 60*XY(9) + 30*XY(10))-600;
XY(13)*(50*XY(1) + 30*XY(2) + 60*XY(4) + 20*XY(5) + 50*XY(6) + 40*XY(7) + 50*XY(8) + 40*XY(9) + 20*XY(10))-500;
XY(14)*(50*XY(1) + 40*XY(2) + 80*XY(3) + 50*XY(5) + 60*XY(6) + 50*XY(7) + 30*XY(8) + 40*XY(9) + 50*XY(10))-600;
XY(15)*(30*XY(1) + 50*XY(2) + 50*XY(3) + 60*XY(4) + 60*XY(6) + 50*XY(7) + 30*XY(8) + 30*XY(9) + 60*XY(10))-700;
XY(16)*(40*XY(1) + 50*XY(2) + 50*XY(3) + 50*XY(4) + 40*XY(5) + 60*XY(7) + 40*XY(8) + 50*XY(9) + 70*XY(10))-700;
XY(17)*(40*XY(1) + 50*XY(2) + 40*XY(3) + 50*XY(4) + 30*XY(5) + 80*XY(6) + 40*XY(8) + 50*XY(9) + 30*XY(10))-600;
XY(18)*(30*XY(1) + 30*XY(2) + 40*XY(3) + 40*XY(4) + 20*XY(5) + 30*XY(6) + 90*XY(7) + 40*XY(9) + 30*XY(10))-500;
XY(19)*(50*XY(1) + 40*XY(2) + 80*XY(3) + 40*XY(4) + 20*XY(5) + 30*XY(6) + 30*XY(7) + 40*XY(8) + 40*XY(10))-550;
XY(20)*(50*XY(1) + 40*XY(2) + 40*XY(3) + 30*XY(4) + 50*XY(5) + 40*XY(6) + 20*XY(7) + 50*XY(8) + 30*XY(9))-600;
XY(1)*(30*XY(12) + 40*XY(13) + 50*XY(14) + 60*XY(15) + 70*XY(16) + 30*XY(17) + 40*XY(18) + 50*XY(19) + 60*XY(20))-600;
XY(2)*(50*XY(11) + 40*XY(13) + 50*XY(14) + 30*XY(15) + 50*XY(16) + 40*XY(17) + 50*XY(18) + 60*XY(19) + 30*XY(20))-700;
XY(3)*(50*XY(11) + 30*XY(12) + 60*XY(14) + 20*XY(15) + 50*XY(16) + 40*XY(17) + 50*XY(18) + 40*XY(19) + 20*XY(20))-600;
XY(4)*(50*XY(11) + 40*XY(12) + 80*XY(13) + 50*XY(15) + 60*XY(16) + 50*XY(17) + 30*XY(18) + 40*XY(19) + 50*XY(20))-700;
XY(5)*(30*XY(11) + 50*XY(12) + 50*XY(13) + 60*XY(14) + 60*XY(16) + 50*XY(17) + 30*XY(18) + 30*XY(19) + 60*XY(20))-500;
XY(6)*(40*XY(11) + 50*XY(12) + 50*XY(13) + 50*XY(14) + 40*XY(15) + 60*XY(17) + 40*XY(18) + 50*XY(19) + 70*XY(20))-700;
XY(7)*(40*XY(11) + 50*XY(12) + 40*XY(13) + 50*XY(14) + 30*XY(15) + 80*XY(16) + 40*XY(18) + 50*XY(19) + 30*XY(20))-550;
XY(8)*(30*XY(11) + 30*XY(12) + 40*XY(13) + 40*XY(14) + 20*XY(15) + 30*XY(16) + 90*XY(17) + 40*XY(19) + 30*XY(20))-500;
XY(9)*(50*XY(11) + 40*XY(12) + 80*XY(13) + 40*XY(14) + 20*XY(15) + 30*XY(16) + 30*XY(17) + 40*XY(18) + 40*XY(20))-600;
XY(10)*(50*XY(11) + 40*XY(12) + 40*XY(13) + 30*XY(14) + 50*XY(15) + 40*XY(16) + 20*XY(17) + 50*XY(18) + 30*XY(19))-600];
end
