How to find roots of a polynomial with fractional orders?

18 views (last 30 days)
I want to find the roots of the following fractional order polynomial:
P=s^2.1+2*s^1.2+1;
Using the solve() function (solve(s^2.1+2*s^1.2+1)), Matlab finds some roots but how does Matlab compute them? Whats the algorithm?

Accepted Answer

Roger Stafford
Roger Stafford on 28 Dec 2013
Edited: Roger Stafford on 28 Dec 2013
I don't know how 'solve' does it, but here's how I would proceed. Define the variable t = s^(3/10). Then your equation can be rewritten as
t^7+2*t^4+1 = 0
which will have seven roots, (allowing complex numbers.) For each of these, the equation
s^3-t^10 = 0
should have three roots for s, making a total of 21 possible roots, though there could be duplications among them.
  5 Comments
Walter Roberson
Walter Roberson on 28 Dec 2013
solve(s^(sym(21)/sym(10))==1)
will lead to all the roots, but solve(s^(21/10)==1) will only lead to 1.
Roger Stafford
Roger Stafford on 29 Dec 2013
To expound at greater length on my statement yesterday as to the possible ways of evaluating, say, s^(12/10), suppose s is equal to -1. Then s^(1/10) can be any one of the ten values, exp(i*k*pi/10), for k = 1,3,5,...,19, and hence s^(12/10) = (s^(1/10))^12 can be any one of the five values, exp(i*k*pi/5), for k = 0,2,4,6,8.

Sign in to comment.

More Answers (1)

bahar beladi
bahar beladi on 9 Feb 2017
i have problem with this too:(

Categories

Find more on Polynomials in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!