Symbolic solve giving wierd roots

Hi there,
I was trying to solve for a complicated but nevertheless a polynomial equation with the symbolic toolbox. I got a solution but can't make sense of it. I had input as
ff=1/2 - (2*bn*x - z^4*(2*z^2 - 6*z + 5))^2/8;
t = solve(ff,z);
with the output as
RootOf(z1^6 - 3*z1^5 + (5*z1^4)/2 - bn*x + 2^(1/2)*Eo^(1/2), z1)
RootOf(z1^6 - 3*z1^5 + (5*z1^4)/2 - 2^(1/2)*Eo^(1/2) - bn*x, z1)
I had read somewhere about this but can't find it now.

 Accepted Answer

docsearch('rootof')
Look at the documentation of SOLVE, scroll down to rootof.

2 Comments

TUSHAR ANDRIYAS says,
"Hey Matt,
I tried the search and modified the function call to tp = solve(ff ,z,'MaxDegree',12)
since ff (ff=1/2 - (2*bn*x - z^4*(2*z^2 - 6*z + 5))^2/8;) is a 12th order polynomial. But matlab does not want to calculate the roots giving an error
_*Error using solve>processMaxDegree (line 324) Bad value for option 'MaxDegree'.
Error in solve>getEqns (line 259) [k, options] = processMaxDegree(k, options, v, nargin, varargin);
Error in solve (line 150) [eqns,vars,options] = getEqns(varargin{:});
Error in Potential_SOS (line 48) tp = solve(ff ,z,'MaxDegree',12)*_"
Tushar,
From the help:
"MaxDegree Do not use explicit formulas that involve radicals when solving polynomial equations of degree larger than the specified value. This value must be a positive integer *smaller than* 5. Default: 3"
Emphasis is mine. There is no explicit solution for a general polynomial of degree greater than 4. So it is not surprising that you get those results. What do you want to do with them, that is the question. Are you hoping to get a numerical value?

Sign in to comment.

More Answers (0)

Categories

Tags

Community Treasure Hunt

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

Start Hunting!