MATLAB: Working with polynoms

bracketsencloseMATLABpolynom

Hi, everybody.
I wasn't successfull in finding the answer through the search. If the question was answered already, I'd be gratefull for a link.
The question itself:
if I've got an expression in brackets, I can expand it out of brackets, like so:
>> expand((s+4)*(s+0.5-0.2*i)*(s+0.5+0.2*i))
ans =s^3 + 5*s^2 + (429*s)/100 + 29/25
How can I make an opposite operation?
>> unexpand(s^3 + 5*s^2 + (429*s)/100 + 29/25)
ans =(s+4)*(s+0.5-0.2*i)*(s+0.5+0.2*i)
Or something like that.
I know, I can use the roots() function to calculate the expression myself, but I was wondering, if there is an easier way.
Thank you in advance for your answers.

Best Answer

syms s
>> expand((s+4)*(s+0.5-0.2*i)*(s+0.5+0.2*i))
ans =
s^3 + 5*s^2 + (429*s)/100 + 29/25
>> factor(ans)
ans =
((s + 4)*(100*s^2 + 100*s + 29))/100
[edit]
ans =
s^3 + 5*s^2 + (429*s)/100 + 29/25
feval(symengine,'factor',ans,'C_')
ans =
(s + 4.0)*(s - 0.2*i + 0.5)*(0.2*i + s + 0.5)