How to find roots of a polynomial with fractional orders?
12 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
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?
0 Kommentare
Akzeptierte Antwort
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
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
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.
Weitere Antworten (1)
Siehe auch
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!