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 中查找有关 Solver Outputs and Iterative Display 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by