Filter löschen
Filter löschen

How to find roots of a polynomial with fractional orders?

17 Ansichten (letzte 30 Tage)
Bilal
Bilal am 28 Dez. 2013
Beantwortet: bahar beladi am 9 Feb. 2017
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?

Akzeptierte Antwort

Roger Stafford
Roger Stafford am 28 Dez. 2013
Bearbeitet: Roger Stafford am 28 Dez. 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 Kommentare
Walter Roberson
Walter Roberson am 28 Dez. 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 am 29 Dez. 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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

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

Kategorien

Mehr zu Polynomials finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by