从一道简单算术题谈起。
对应位相加之后得到
再写清楚一点就是
这个过程正好是我们小学学过的“列竖式计算“多位数乘法!
记住,列竖式计算多位数整数乘法的依据就是“乘法分配律”!
提取出上述结果的各个系数为
其实,更一般的如果把上面的10替换成字母
当多项式变成“幂级数”时,这种乘积叫做“Cauchy乘积”。


一个简单的例子,设
利用Cauchy乘积性质,可得
而这个函数不是别人,正是指数函数
这是我编写的用来验证的matlab代码。
clc; clear all; close all
disp('Z变换、多位数整数乘法、序列卷积、乘法分配律')
syms Z
x=[1,2,3];
y=[4,5];
disp('x='); disp(x);
disp('y='); disp(y);
%%%%%%%%%%%%%%
for k=1:1:length(x)
zz_x(k)=x(k)*Z^(length(x)-k);
integer_x(k)=x(k)*10^(length(x)-k);
end
Z_trsf_x=sum(zz_x)
Integer_x=sum(integer_x);
for k=1:1:length(y)
zz_y(k)=y(k)*Z^(length(y)-k);
integer_y(k)=y(k)*10^(length(y)-k);
end
Z_trsf_y=sum(zz_y)
Integer_y=sum(integer_y);
%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%
Convl=conv(x,y);
disp('Convolution=');disp(Convl)
%%%%%%%%%%
%%%%%%%%%%%%%
x_Times_y=Integer_x*Integer_y
disp('先构造Z多项式,再相乘的结果')
Multiply_Z_xy=expand(Z_trsf_x*Z_trsf_y)
%%%%%%%%%
disp('以下是验证环节')
for k=1:1:length(x)+length(y)-1
s(k)=Convl(k)*10^(length(x)+length(y)-k-1);
ss(k)=Convl(k)*Z^(length(x)+length(y)-k-1);
end
disp(s)
Sum=sum(s);
disp('Sum=');disp(Sum)
disp('先卷积,再构造Z多项式的结果');
Z_xy=sum(ss);disp(Z_xy)
disp('卷积的基础是个位数乘法,多位数乘法利用了卷积以及运算律')
除此以外,运算律还是鸡兔同笼问题代数方程解法的重要依据,运算律还可以证明0乘以任何数都得0.
透过以上分析,可以看出“运算律、离散卷积、整数乘积、幂级数乘积”是有联系的。虽然以上结果早已有人发现,并不算什么新鲜事儿。但是我们从中可以受到一点启发,那就是:一些看起来不同的事物(在某种意义下)实际上是一回事。就如某位教授所说过的:真正的高手是“混淆混淆再混淆”,而不是“区别区别再区别”。
参考文献:
- 陈纪修, 於崇华, 金路. 数学分析-第2版[M]. 高等教育出版社, 2004.