1 引言
长除法是一种很常用的计算方法,适用于整式除法、小数除法、多项式除法(即因式分解)等较重视计算过程和商数的除法,过程中兼用了乘法和减法。在很多工程问题(如离散系统的Z逆变换)都需要使用到长除法,但是传统长除法计算方法在运算过程中需要十分谨慎的运算过程,因为每一步运算都基于前一步运算的结果,所以很容易导致“一步错步步错”的结果。因此为了解决长除法在运算过程中的这种问题,总结出了公式化的运算规律,大大减少了长除法计算的运算量和错误率,而且更加容易在程序上实现。
2 传统长除法的计算
以计算: x3-12x2-42x-3 为例:
首先把被除式、除式按某个字母作降幂排列,缺项补零,写成以下形式:
(2.1)
然后商和余数可以这样计算:
1.用分子的第一项除以分母的最高次项(即次数最高的项,此处为),得到首商,写在横线之上()。
2.将分母乘以首商,乘积写在分子前两项之下( ), 同类项对齐。
3.从分子的相应项中减去刚得到的乘积(消去相等项,把不相等的项结合起来),得到第一余式,写在下面。然后,将分子的下一项“拿下来”。
4.把第一余式当作新的被除式,重复前三步,得到次商与第二余式(直到余式为零或余式的次数低于除式的次数时为止.被除式=除式×商式+余式 )。
5. 重复第四步,得到三商与第三余式。余式小于除式次数,运算结束。横线之上的多项式即为商,而剩下的 (-123) 就是余数。
注意:在不同的使用情况,有些结果需要对余数继续计算,得到有的项。其中,算数的长除法可以看做以上算法的一个特殊情形,即所有被替换为10的情形。计算过程如(图一)所示:
图一显然,以上的计算方法太过于繁杂,接下来我们来推导长除法快速计算方法。
3 长除法计算公式法的推导
为了得到一般化的规律,我们先对公式的系数进行一般化处理,并把分母的最高次项的系数变成1 ,得到:
(3.1)
接下来进行计算:
图二
整理后的计算结果是:
观察上式可以看出:
1) 商的最高次(降幂排列第一项)的系数:a = det;
2) 商的第二项的系数:b = -det;
3) 商的第三项的系数:c = det;
4) 商的第四项的系数:d = -det;
5) 商的第五项的系数:e = det;
6)商的第六项的系数:……
把式(2.1)的具体参数:
a0 |
a1 |
a2 |
b0 |
1 |
-12 |
-42 |
-3 |
带入矩阵中;
计算得到:a=1, b=-9, c=-27, d=-123, e=-369;显然与上述使用传统计算方法结果一致。
接下来用matlab进行验证,代码和计算结果如下:
因此可得出一般规律(结论):
定理 设某个分式的分子参数为[,,, , , ],分母的参数为[1,,, , ];
分式为: (3.3)
由分式的各项系数组成的矩阵如下【式(3.4)】所示:
(3.4)
结果的最高项次数为:,按降幂排列的各项系数分别为:
此矩阵【式(3.4)】的n阶顺序主子式的行列式*(-1)^(n-1) (其中n=1,2,3,……)。