【发布时间】:2013-08-16 21:23:49
【问题描述】:
我正在尝试执行类型的矩阵多项式乘法:
(A_1+A_2*y)*(B_1+B_2*y+B_3*y^2)
其中y 是变量,所有A_i 都是相同大小的常数矩阵,所有B_i 都是相同大小的常数矩阵,A_i*B_i 形式的矩阵乘法是有意义的。矩阵A_i 和B_i 是已知的并由用户指定。
正式地乘法应该导致C_1+C_2*y+C_3*y^2+C_4*y^3,我想知道C_i。在 MATLAB 中,如果 A_i 和 B_i 是标量,则可以使用“conv”。但是,如果它们不是标量,问题就不那么容易了。我想知道是否有一种简单的方法(类似于“conv”)在 MATLAB 中使用矩阵执行此操作:给定 A_i 和 B_i 我想知道 C_i?当然,我喜欢这个一般意义上的(任何次数的单变量矩阵多项式),并且非常希望避免使用符号工具箱。
【问题讨论】:
-
我虽然明白你的问题,但其实不是很清楚。您想对矩阵 A_1、A_2 等做什么?你想让它们成为标量吗?来自矩阵的子引用?你试过什么?
-
@Werner 是的,一个例子会很有启发性。他想要的是等价于标量conv,例如:
a = [1,1]; % <-> 1+1x、b = [1,1]; % <-> 1+1x、c = conv(a,b); % = [1,2,1] <-> (1+1x)*(1+1x) = 1+2x+1x^2。看看我的“Test by”代码的结尾,了解他在说什么:-)