Using symbolic variables, how do you expand polynomials to show complex roots in an equation

14 views (last 30 days)
This is my code:
clc; clear; close all;
syms s
Num = 10^4*(s+5)*(s+70);
Den = s*(s+45)*(s+55)*(s^2+7*s+110)*(s^2+6*s+95);
F = Num/Den
h=vpa(partfrac(F,s),5);
pretty(h)
and this is my output:
How do I output it so that that the polynomials are also factored such that:
and also, how do i Output all my roots?
thank you so much in advance

Accepted Answer

Robert U
Robert U on 16 Sep 2021
Hi bob,
I guess it's a transfer function and you are looking for poles and zeros.
syms s
Num = 10^4*(s+5)*(s+70);
Den = s*(s+45)*(s+55)*(s^2+7*s+110)*(s^2+6*s+95);
F = Num/Den;
h=vpa(partfrac(F,s,'FactorMode','complex'),5); % get complex parts of fraction
pretty(h)
0.0066 + 1.0618e-43i 0.0017773 0.13532 - 1.0213 - 0.1349i - 1.0213 + 0.1349i 0.95126 + 0.089607i 0.95126 - 0.089607i -------------------- - --------- + ------- + ------------------ + ------------------ + ------------------- + ------------------- s + 45.0 s + 55.0 s s + 3.0 - 9.2736i s + 3.0 + 9.2736i s + 3.5 - 9.8869i s + 3.5 + 9.8869i
rootsNum = solve(h,s); % calculate actual roots for the rational function
rootsDenum = solve(simplify(1/h),s); % calculate roots for the denumerator
rootsNum
rootsNum = 
rootsDenum
rootsDenum = 
Kind regards,
Robert

More Answers (0)

Community Treasure Hunt

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

Start Hunting!