Working with polynoms

2 次查看(过去 30 天)
Boris
Boris 2012-4-12
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.

采纳的回答

bym
bym 2012-4-14
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)
  3 个评论
bym
bym 2012-4-15
See my edit...
Boris
Boris 2012-4-18
Excellent solution! this is exactly, what I need.
Thanks a million! :)

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 MATLAB 的更多信息

产品

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by