在 Excel 中乘以多项式系数

在 Excel 中乘以多项式系数

我想要一个通用的 Excel 方法来乘以多项式。但我现在还不想求多项式的值,x 实际上是一个虚数。我知道如何在 Excel 中使用复数,我已经有一个电子表格,可以根据多项式系数求方程的值。但在电气工程中,起点通常是一组因式分解的多项式,需要先将它们相乘,然后我的电子表格才能工作。

例如,以以下内容开头:

m2*x^2 + m1*x^1 + m0*x^0 and
n2*x^2 + n1*x^1 + n0*x^0

将两者相乘可得出:

m2*n2*x^4 + (m2*n1+m1*n2)*x^3 + (m2*n0+m1*n1+m0*n2)*x^2 + (m1*n0+m0*n1)*x^1 + m0*n0*x^0

因此,给定 m2 ... m0,和 n2 ... n0

我想知道 p4 ... p0,其中:

p4 = m2*n2
p3 = m2*n1 + m1*n2
p2 = m2*n0 + m1*n1 + m0*n2 
p1 = m1*n0 + m0*n1
p0 = m0*n0

希望您能看出其中的规律。当然,我希望找到一种适用于较大多项式的通用方法。

我可以用蛮力来解决它,因为我可能遇到的最大的数是四个 2 阶多项式 (x^2),但应该有一种更优雅的方法。

我宁愿不使用 Visual Basic,因为我想在完成后分享它,而且人们对 VBA 电子表格很偏执。

允许使用多行和多列来表示中间结果。我更希望将结果放在一行中,右侧是 p0 (p8 ... p0)。如果该方法自然地给出另一种格式,我相信我可以将其转换为我需要的格式。

编辑:这是一个强力解决方案。虽然不是我想要的通用解决方案,但它目前可以满足我的需求。

在此处输入图片描述

答案1

在评论者的启发下,我得到了一个矩阵乘法解决方案。

以下是其屏幕截图:

矩阵乘法

将每个矩阵左侧的多项式放入其列中。然后使用函数将矩阵与右侧的多项式相乘MMULT()。中间结果列显示多项式常数(最低非零常数为 s^0)。

诀窍是编写公式来填充矩阵。它看起来像这样:

=IF(Row-Col+1 > 0, INDEX(Polynomial_1, Row-Col+1, 1), 0)

它使用矩阵两边的数字来索引多项式常数RowCol

一旦完成矩阵乘法,您就可以根据需要多次使用它的输出作为下一个矩阵的输入多项式。

我用了公式Chop来生成这个公式。(完整披露:我编写了 FormulaChop)。这里是输出截图的链接。这里是我为此答案创建的电子表格的下载链接。

相关内容