How to find roots of a polynomial with fractional orders?

23 次查看(过去 30 天)
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?

采纳的回答

Roger Stafford
Roger Stafford 2013-12-28
编辑:Roger Stafford 2013-12-28
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 个评论
Walter Roberson
Walter Roberson 2013-12-28
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 2013-12-29
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.

请先登录,再进行评论。

更多回答(1 个)

bahar beladi
bahar beladi 2017-2-9
i have problem with this too:(

类别

Help CenterFile Exchange 中查找有关 Polynomials 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by