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.

 采纳的回答

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

2 个评论

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?

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Symbolic Math Toolbox 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by