Info

# can anyone explain this result ?

1 view (last 30 days)
Closed: MATLAB Answer Bot on 20 Aug 2021
i have a polynomial p = [ 3 -5 2 ]
i have calculated his roots r = roots(p) r= 1.0000 0.6667
then i wanted to obtain the expression of my polynomial i get:
expression=poly(r)
expression= 1.0000 -1.6667 0.6667
which is not my first polynomial, can anyone explain to me?

Cam Salzberger on 23 Oct 2017
According to the poly function's documenation, poly and roots are inverses, but allowing for roundoff error, ordering, and scaling. If you notice in your code, expression == p/3, which is just p scaled by its first element. It's still solves the same equation:
3*x^2 - 5*x + 2 = 0
or
x^2 - (5/3)*x + 2/3 = 0
-Cam
Walter Roberson on 23 Oct 2017
Note that this means that given the roots of an polynomial, you can only recreate the equation to within a non-zero constant multiple.

Andrei Bobrov on 23 Oct 2017
:)
>> expression= [1.0000 -1.6667 0.6667]
expression =
1.0000 -1.6667 0.6667
>> expression*3
ans =
3.0000 -5.0001 2.0001
>>