How to find degree of polynomial in Matlab?
5 次查看(过去 30 天)
显示 更早的评论
Dear All, Good day! I am trying to find the degree of polynomial in MATLAB. I know it is possible in MuPAD by using degree(p). But couldn't find a way by using editor. Kindly help me on this. Thanks
采纳的回答
Walter Roberson
2013-12-30
In the case you use, where you are working with ratios of symbolic polynomials, then
degree_num = length(coeffs(num,p)) - 1;
degree_den = length(coeffs(den,p)) - 1;
You can also simplify (at least logically) the taking of the limit:
[n, d] = numden(z(p));
coeffn = coeffs(n,p);
coeffd = coeffs(d,p);
lenn = length(coeffn);
lend = length(coeffd);
if lenn > lend + 1
error('limit would have been infinite')
elseif lenn <= lend
error('limit would have been zero');
else
a = coeffn(end);
end
If you are sure that neither of the two exception cases can occur, then
t = coeff(numden(z(p)));
a = t(end);
3 个评论
Walter Roberson
2013-12-30
You could use sym2poly() . Again length() - 1 for degree, but the first entry of the matrix instead of the last entry for the highest coefficient.
更多回答(2 个)
Roger Stafford
2013-12-30
Suppose you evaluate your polynomial, P(x), at a large number of equally-spaced values of x. Then if diff(P,n) exhibits a non-zero constant value (except of course for small round-off errors,) you can conclude that P has degree n. Moreover, that constant value is indicative of the coefficient of the highest degree term.
I would think however, that an inspection of whatever process is creating your polynomial should more easily tell you its degree.
0 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Number Theory 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!