Collect function doesn't work as intended
Show older comments
syms z w K
% Previous steps executed, expresion directly copied from workspace
GzSFDen = 1.0*z^2 + (0.36788*K - 1.3679)*z + 0.26424*K + 0.36788;
GzSFDen = vpa(GzSFDen)
% Substitution of z with (w+1)/(w-1)
Gw = subs(GzSFDen,z,(w+1)/(w-1))
% Obtained answer, coefficient of w^2 should only be 31606 K
incorrect = collect(Gw,w)
% Expected answer, numerically close, num and den divided by 5
% Manually obtained
correct = (6141*K*w^2 + (12642 - 4924*K)*w - 1217*K + 27358)/(10000*w^2 - 20000*w + 10000);
correct = collect(correct,w)
5 Comments
Cesar Adolfo Cruz Vargaya
on 1 Nov 2022
Almost. But
rest = 50000*(1 - 1.3679 + 0.36788);
equals
rest
Cesar Adolfo Cruz Vargaya
on 1 Nov 2022
Torsten
on 1 Nov 2022
Sure.
Replace
GzSFDen = 1.0*z^2 + (0.36788*K - 1.3679)*z + 0.26424*K + 0.36788;
by
GzSFDen = 1.0*z^2 + (0.36788*K - 1.36788)*z + 0.26424*K + 0.36788;
Answers (0)
Categories
Find more on Symbolic Math Toolbox in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!