如何归一化分数中的多项式系数?

时间:2015-06-22 04:01:02

标签: matlab polynomial-math

我有以下代码:

syms z
Gc=1.582*(1-0.3679*z^-1)/(1+.418*z^-1);
Ghp=.3679*(z^-1)*(1+.718*z^-1)/((1-z^-1)*(1-.3679*z^-1));
T=(Gc*Ghp)/(1+Gc*Ghp);
clipboard('copy', latex(simplifyFraction(T)));

以下是T的结果:

enter image description here

如何规范系数?即我希望分母中的z 2 和分子中的z的系数为1。 Matlab中有没有这样的功能呢?

1 个答案:

答案 0 :(得分:1)

你可以用numden提取分子和分母,然后用coeffs得到它们的系数,对多项式进行归一化,然后再进行除法。

[n,d] = numden(T);
cn = coeffs(n);
cd = coeffs(d);
T = (n/cn(end))/(d/cd(end));

latex(T)的输出(注意:现在没有simplifyFraction;它会撤消事情):

output

如果您更喜欢小数形式的系数,请使用vpa(T):此处为latex(vpa(T))

vpa

当然,上面与原始分数相等,因为我实际上乘以cd(end)/cn(end)。根据您的目的,您可以

  • 在计算中单独保留常数系数cn(end)/cd(end),或
  • 使用(cn(end)/cd(end))*((n/cn(end))/(d/cd(end)));将其重新插入。不幸的是,Matlab太急于将两个分数合并为一个,但您仍然可以看到规范化的多项式。

new image