gpt4 book ai didi

wolfram-mathematica - 如何减少Mathematica中自变量的数量

转载 作者:行者123 更新时间:2023-12-04 17:27:52 24 4
gpt4 key购买 nike

我不保证这是一个数学问题,还是一个数学问题。 :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}}

使用 w11w12w21w22作为免费参数。

而且我通过视觉检查知道 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}}

或涉及其他一些符号常量
{{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}}

我想使用mathematica自动识别独立变量的数字 n(在这种情况下为2),然后将这些独立变量y1,y2,...,yn命名,然后根据y1重新编写矩阵, y2,...,yn代替w11,w12,w21,w22。

最佳答案

从...开始

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}};

形成不确定的相同尺寸的第二个矩阵。
mat2 = Array[y, Dimensions[mat]];

现在考虑通过设置mat-mat2 == 0形成的多项式(实际上是线性的)系统。我们可以消除原始变量,并在新变量之间寻找依赖关系。可以使用消除;我将与GroebnerBasis一起展示。
GroebnerBasis[Flatten[mat - mat2], Variables[mat2], Variables[mat]]

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]]

Out [278] = {1 + 3/2 y [2,1],3/2 + 3/2 y [2,2],y [2,1],y [2,2]}

---结束编辑-

丹尼尔·里奇布劳
Wolfram研究

关于wolfram-mathematica - 如何减少Mathematica中自变量的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5008764/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com