symbolic solution for a nonlinear system of algebraic equations.

8 views (last 30 days)
Hello,
I have a system of 7 nonlinear equations that I am trying to solve symbolically using the symbolic toolkit 2015 where I have a trial version. I know the numerical solution but I need the analytical one. K is a parameter and there will be more than one solution according to the values of K. I want to solve the system such that it will give me the value of K and the solution associated with. Here is the code I have tried:
syms K x y z u v w p;
eq1 = -2*x - 4*u*v + 4*y*p == 0;
eq2 = -9*y +3*x*p == 0;
eq3 = -4*z - 4*sqrt(2)*u*w + 4*sqrt(2)*w*p + 4*K == 0;
eq4 = -5*u + x*v + 3*sqrt(2)*z*w == 0;
eq5 = -v + 3*x*u - sqrt(5)*x*w == 0;
eq6 = -w + sqrt(5)*x*v + sqrt(2)*z*u - sqrt(2)*z*p == 0;
eq7 = -5*p - 7*x*y - 3*sqrt(2)*z*w == 0;
[x y z u v w p] = solve(eq1, eq2, eq3, eq4, eq5, eq6, eq7)
But I am getting either an empty solution or the matlab stops working. Do you have any advice?
Thnaks in advance.

Answers (2)

John D'Errico
John D'Errico on 29 Dec 2015
Edited: John D'Errico on 29 Dec 2015
There will surely be NO symbolic solution available. You can think of this as a high order polynomial problem (of polynomial order greater than 4) because if you started to eliminate variables, you could (in theory) end up with some quite high order polynomial in one variable, with coefficients that were a function of K.
This was long ago proved to be insolvable for the general case, even if some simple cases might have a solution.
Since you insist on having a general solution, AS A FUNCTION OF K, then the answer is simply, sorry, no can do. Computers are not all powerful, all knowing. Many problems are simply unsolvable. Ok, at least the machine I got from god-computing broke the other day. He still has it in the shop too, and I heard him say I don't have a prayer of getting it back any time soon.
You MIGHT try posing a set of specific values of K, then using vpasolve on each value of K. Look at how those solutions vary as a function of K. Even if you do get solutions for some of all values of K, expect to see nasty things (bifurcations, etc.) Note that I did try this for one or two values of K, getting no solutions in a reasonable amount of time. So don't expect much.

Walter Roberson
Walter Roberson on 29 Dec 2015
You are asking to solve 7 equations in 8 variables without telling solve() which variables to solve for. If it does come out with a solution then it is not going to be able to write it into 7 variables.
If you solve for all 8 variables then there is an all-zero solution and there is a solution involving order 10 polynomials. If you solve for only 7 variables then.. well it is taking time, I do not know yet what the result will be.
  1 Comment
Walter Roberson
Walter Roberson on 29 Dec 2015
You can do step by step elimination of variables. I recommend solving for x then y then z then u then v then p then w.
One of the potential solutions for v is 0. The solutions are fairly easy for that case. The non-zero v, on the other hand, lead to a final pair of equations that may take a fair bit of time to process.

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!