关于三阶多项式零点(传递函数极点)的求解疑问
关于三阶多项式零点(传递函数极点)的求解疑问
嘿,我看了你的问题,先帮你理清楚目前的核心问题所在:
首先,你对原三阶多项式的化简存在错误,这也是你困惑那个额外的$a_{1}c_{2}s$项的原因。咱们来验证一下:
原三阶多项式是:
$$a_{1}c_{1}c_{2}b_{1}s{3}+b_{1}c_{2}s{2}+a_{1}(c_{1}+c_{2})s+1$$
而你展开后的式子$(b_{1}c_{2}s^{2}+1)(a_{1}c_{2}s+1)+a_{1}c_{2}s$,计算展开结果是:
$$a_1b_1c_22s3 + b_1c_2s^2 + 2a_1c_2s + 1$$
对比原多项式,只有当$c_1 = c_2$时两者才相等,显然这不是普遍成立的情况,所以你的化简步骤出错了,这个额外的$a_{1}c_{2}s$是错误操作带来的,并非原分母的一部分。
接下来,回到你求传递函数极点的需求:传递函数的极点是分母等于0时的$s$值,你的原分母是两个因子的乘积:
$$(a_{2}c_{3}s+1) \times \left(a_{1}c_{1}c_{2}b_{1}s{3}+b_{1}c_{2}s{2}+a_{1}(c_{1}+c_{2})s+1\right)$$
所以极点就是分别让这两个因子等于0的解:
- 一阶因子的根很简单:令$a_{2}c_{3}s+1=0$,得到$s = -\frac{1}{a_{2}c_{3}}$
- 三阶多项式的根,你可以用这些方法求解:
- 尝试因式分解:用有理根定理,可能的有理根是$\pm1, \pm\frac{1}{a_1b_1c_1c_2}, \pm\frac{1}{b_1c_2}, \pm\frac{1}{a_1(c_1+c_2)}$这类形式,代入三阶多项式看看是否满足等于0的条件,如果找到一个根$s_0$,就可以用多项式除法把三阶式分解为$(s-s_0)$乘以一个二次式,再求二次式的根。
- 三次方程求根公式:如果找不到有理根,就用卡尔达诺公式直接计算三次方程的根,不过公式比较繁琐,手动计算容易出错。
- 数值方法:如果是工程应用,直接用工具计算更高效,比如用Python的
numpy.roots()函数,或者Matlab的roots()函数,把三阶多项式的系数列表输入进去就能得到三个根(可能是实根或共轭复根)。
总结一下:你现在需要先修正化简的错误,回到原始的分母乘积形式,再分别求解每个因子的根,这些根就是传递函数的极点,那个额外的$a_{1}c_{2}s$是错误化简的产物,不用去“处理”它,只要回到正确的表达式就行。
备注:内容来源于stack exchange,提问作者Young_Electronic




