Collect function doesn't work as intended

3 vues (au cours des 30 derniers jours)
Cesar Adolfo Cruz Vargaya
Commenté : Torsten le 1 Nov 2022
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)
GzSFDen = 
% Substitution of z with (w+1)/(w-1)
Gw = subs(GzSFDen,z,(w+1)/(w-1))
Gw = 
% Obtained answer, coefficient of w^2 should only be 31606 K
incorrect = collect(Gw,w)
incorrect = 
% 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)
correct = 
  5 commentaires
Cesar Adolfo Cruz Vargaya
is there a way to avoid that? Or there is a way to get rid of small values?
Torsten
Torsten le 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;

Connectez-vous pour commenter.

Réponses (0)

Catégories

En savoir plus sur Symbolic Math Toolbox dans Help Center et File Exchange

Produits


Version

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by