Matlab实现多项式部分分式展开及应用

需积分: 34 0 下载量 4 浏览量 更新于2024-08-17 收藏 770KB PPT 举报
"本文主要介绍了如何在MATLAB中进行多项式的部分分式展开,这是在系统传递函数分析中常用的一种技术。MATLAB提供了`residue`函数来实现这一操作,该函数可以用于展开或合并分式多项式。此外,文章还涵盖了MATLAB中的多项式处理,包括多项式的表示、求根、乘除以及求值等基本操作。" MATLAB中的多项式处理是数值计算中的重要部分。在MATLAB中,多项式通常用行向量来表示,其中系数按降幂排列。例如,一个多项式 \(a_nx^n + a_{n-1}x^{n-1} + \ldots + a_1x + a_0\) 可以表示为行向量 \(P = [a_0, a_1, \ldots, a_n]\)。对于不同次数的多项式相加或相减,可以通过补零使其具有相同的次数,然后直接对系数向量进行相应的运算。 `roots`函数是用于求解多项式根的工具,输入是多项式的系数向量,输出是根的列数组。例如,给定多项式 \(C = [c_0, c_1, \ldots, c_n]\),`roots(C)` 返回对应的根 \(R = [r_1, r_2, \ldots, r_n]\)。反之,`poly`函数可以由已知的根创建多项式,`C = poly(R)`,其中R可以是单个根的向量或特征多项式的根矩阵。 多项式的乘除在MATLAB中通过向量的卷积和解卷运算实现。`conv`函数用于计算两个多项式的乘积,如 `c = conv(a, b)`,返回的 `c` 是乘积多项式的系数向量。而`deconv`函数用于除法,`[q, r] = deconv(c, a)` 返回商 `q` 和余量 `r`,满足多项式关系。 对于多项式的求值,MATLAB提供`polyval`函数,例如 `y = polyval(p, x)`,其中 `p` 是多项式系数向量,`x` 是自变量值,函数会返回多项式在指定点的值,`x` 可以是标量、向量或矩阵,这使得在多个点快速计算多项式值成为可能。 部分分式展开在MATLAB中由`residue`函数完成,其用于处理分式多项式,特别是系统传递函数。`[r, p, k] = residue(b, a)` 返回部分分式展开的残差 `r`、极点 `p` 和常数项 `k`,且满足长度关系 `length(r) = length(p) = length(a) - 1`。如果 `b` 的长度小于 `a`,则 `k` 为空,否则 `length(k) = length(b) - length(a) + 1`。 这些工具和概念对于理解和处理MATLAB中的数值计算,尤其是涉及多项式运算的工程问题,如控制系统分析,至关重要。通过熟练掌握这些函数,可以高效地进行多项式操作,从而解决复杂的问题。