Qia*_* Li 5 wolfram-mathematica
这不是真的是一个数学问题,或者实际上是一个数学问题.:d
假设我有一个矩阵
{{4/13 + (9 w11)/13 + (6 w12)/13,
6/13 + (9 w21)/13 + (6 w22)/13}, {-(6/13) + (6 w11)/13 + (4 w12)/
13, -(9/13) + (6 w21)/13 + (4 w22)/13}}
Run Code Online (Sandbox Code Playgroud)
有w11,w12,w21,w22作为自由参数.
我通过视觉检查知道3*w11+2*w12可以表示为一个变量,并且3*w21+2*w22可以表示为另一个变量.所以基本上这个矩阵只有两个独立的变量.给定此形式的任何矩阵,是否有任何方法可以自动减少自变量的数量?我想我坚持用精确的数学方法来制定它.
请分享你的想法.非常感谢.
编辑:
我的问题实际上如下.给出这样的矩阵
{{4/13 + (9 w11)/13 + (6 w12)/13,
6/13 + (9 w21)/13 + (6 w22)/13}, {-(6/13) + (6 w11)/13 + (4 w12)/
13, -(9/13) + (6 w21)/13 + (4 w22)/13}}
Run Code Online (Sandbox Code Playgroud)
或涉及其他一些象征性的常数
{{a+4/13 + (9 w11)/13 + (6 w12)/13,
6/13*c + (9 w21)/13 + (6 w22)/13}, {-(6/13)/d + (6 w11)/13 + (4 w12)/
13, -(9/13) + (6 w21)/13 + (4 w22)/13}}
Run Code Online (Sandbox Code Playgroud)
我想使用mathematica自动识别n自变量的数量(在这种情况下是2),然后命名这些独立的变量y1,y2,...,yn,然后用y1,y2重写矩阵,...,而不是w11,w12,w21,w22.
Dan*_*lau 10
从...开始
mat = {{4/13 + (9 w11)/13 + (6 w12)/13,6/13 + (9 w21)/13 + (6 w22)/13},
{-(6/13) + (6 w11)/13 + (4 w12)/13, -(9/13) + (6 w21)/13 + (4 w22)/13}};
Run Code Online (Sandbox Code Playgroud)
形成不确定,相同尺寸的第二个矩阵.
mat2 = Array[y, Dimensions[mat]];
Run Code Online (Sandbox Code Playgroud)
现在考虑通过设置mat-mat2 == 0形成的多项式(实际上是线性的)系统.我们可以消除原始变量并寻找新变量之间的依赖关系.可以使用消除; 我将展示GroebnerBasis.
GroebnerBasis[Flatten[mat - mat2], Variables[mat2], Variables[mat]]
Run Code Online (Sandbox Code Playgroud)
Out [59] = {-3 + 2 y [1,2] - 3 y [2,2], - 2 + 2 y [1,1] - 3 y [2,1]}
因此,我们在原始矩阵元素之间得到一对显式关系.
- -编辑 - -
您可以获取新变量的表达式,这些表达式清楚地表明其中两个的依赖关系.为此,形成Groebner基础并在多项式简化中使用它.
gb = GroebnerBasis[Flatten[mat - mat2], Variables[mat2], Variables[mat]];
vars = Flatten[mat2];
PolynomialReduce[vars, gb, vars][[All, 2]]
Run Code Online (Sandbox Code Playgroud)
Out [278] = {1 + 3/2 y [2,1],3/2 + 3/2 y [2,2],y [2,1],y [2,2]}
---结束编辑---
Daniel Lichtblau Wolfram Research