Collect function doesn't work as intended

3 ビュー (過去 30 日間)
Cesar Adolfo Cruz Vargaya
Cesar Adolfo Cruz Vargaya 2022 年 11 月 1 日
コメント済み: Torsten 2022 年 11 月 1 日
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 件のコメント
Cesar Adolfo Cruz Vargaya
Cesar Adolfo Cruz Vargaya 2022 年 11 月 1 日
is there a way to avoid that? Or there is a way to get rid of small values?
Torsten
Torsten 2022 年 11 月 1 日
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;

サインインしてコメントする。

回答 (0 件)

カテゴリ

Help Center および File ExchangeSymbolic Math Toolbox についてさらに検索

製品


リリース

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by