【问题标题】:Polynomial expansion: Separating polynomial coefficients and x's多项式展开:分离多项式系数和 x
【发布时间】:2013-11-23 00:49:48
【问题描述】:

我想自动计算存在变量 (x1,x2,...) 以及系数 (c1,c2, ...) 的多项式展开式。我的目标是计算p(1)*(c1*x1+c2*x2+...)^n+ ... + p(n)*(c1*x1+c2*x2+...)^n .

如您所见,结果表达式可以写成F(x1,x2...)*g(c1,c2,...) [其中 F 是行矩阵,g 是列矩阵],即系数和变量之间存在一些乘法解耦。

现在我使用 MATLAB 符号工具箱并通过手动检查生成的符号展开来构造 F 和 g。这不是很可行,因为如果 n 很大,c=(c1,c2,...) 太大,术语太多,手动不再可能。比如(c1*x1+c2*x2+c3)n=2,我想要的是关注。

>> p=[2 5]

p =

     2     5

>> syms c1 c2 c3
>> syms x1 x2
>> expression= p(1)*(c1*x1+c2*x2+c3)^2 + p(2)*(c1*x1+c2*x2+c3);
>> expand(expression)

ans =

2*c1^2*x1^2 + 4*c1*c2*x1*x2 + 4*c1*c3*x1 + 5*c1*x1 + 2*c2^2*x2^2 + 4*c2*c3*x2 + 5*c2*x2 + 2*c3^2 + 5*c3

>> F=[5*x1 5*x2 5 4*x1*x2 4*x1 4*x2 2*x1^2 2*x2^2 2]

F =

[ 5*x1, 5*x2, 5, 4*x1*x2, 4*x1, 4*x2, 2*x1^2, 2*x2^2, 2]

>> g=[c1 c2 c3 c1*c2 c1*c3 c2*c3 c1^2 c2^2 c3^2].'

g =

    c1
    c2
    c3
 c1*c2
 c1*c3
 c2*c3
  c1^2
  c2^2
  c3^2

>> expand(F*g)

ans =

2*c1^2*x1^2 + 4*c1*c2*x1*x2 + 4*c1*c3*x1 + 5*c1*x1 + 2*c2^2*x2^2 + 4*c2*c3*x2 + 5*c2*x2 + 2*c3^2 + 5*c3

我找到了以下question,看起来可能有一种方法可以使用conv 等自动完成。如果有人能想出一个自动化解决方案(或至少对这种自动化有一些想法) x=(x1,x2) and c=(c1,c2,c3) and n=2的情况,上面描述的情况;我想我可以将其推广到更高维的情况。

注意:F 或 g 中术语的顺序无关紧要,因为它们是以某种结构化方式排序的。

【问题讨论】:

    标签: matlab polynomial-math symbolic-math binomial-coefficients


    【解决方案1】:

    不同项的系数不重叠。第一项 p(1)*(c'*x)^1xici 中只有 1 次项,依此类推。所以它变成了一次计算一个项的系数的问题。

    这也有一个“简单”的表达方式:

    p(k)*(c'*x)^k = sum(i1,..,im>=0 with sum(i_)=k) 
        M(k;i1,..,im)*x1^i1*...*xm^im * c1^i1*...*cm^im
    

    其中总和使得所有i 的总和等于k,而Mmultinomial coefficient

    对于m=3n=2i 将按照您的示例顺序:110,101,011,200,020,002。 M(2;110)=2 所以第一项是`p(2)*M(2;110)*x1*x2 = 4*x1*x2'。

    您的 F 和 g 项是:

    F(...) = p(k)*M(k;i1,..,im)*x1^i1*...*xm^im
    g(...) = c1^i1*...*cm^im
    

    【讨论】:

    • 感谢您的精彩回答。例如,对于我来说,g 中的权力是[100,010,001,110,101,011,200,020,002]。有没有很好的方法来生成这种向量。对于任何mn
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-21
    • 2013-05-31
    • 1970-01-01
    • 1970-01-01
    • 2015-12-01
    • 1970-01-01
    相关资源
    最近更新 更多