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.

 採用された回答

Matt Fig
Matt Fig 2012 年 9 月 6 日

0 投票

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

2 件のコメント

Matt Fig
Matt Fig 2012 年 9 月 6 日
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)*_"
Matt Fig
Matt Fig 2012 年 9 月 6 日
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 ExchangeSymbolic Math Toolbox についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by