How to find roots of a polynomial with fractional orders?
16 次查看(过去 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?
0 个评论
采纳的回答
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
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
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 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Polynomials 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!