Matrix Mathematica,求解包含大量方程和变量的非线性方程组

Matrix Mathematica,求解包含大量方程和变量的非线性方程组,matrix,wolfram-mathematica,equation-solving,nonlinear-functions,Matrix,Wolfram Mathematica,Equation Solving,Nonlinear Functions,我需要找到一个满足方程的方阵a A.L.A=-17/18A-2(A.L.L+L.A.L+(L.L.A)+3(A.L+L.A)-4L.L+8L.L-44/9L+8/9*(ID) ,其中L是对角矩阵L={2/3,0,0,0},{0,5/12,0,0},{0,0,11/12,0},{0,0,0,2/3} 我可以在维度2和维度3的情况下找到答案,但是维度4和维度以上存在问题 实际上,矩阵A也必须满足方程A.A=A,但对于合适的矩阵L,只有上面的方程才足够 这是我的密码 A=表[A[i,j],{i,1,4

我需要找到一个满足方程的方阵a

A.L.A=-17/18A-2(A.L.L+L.A.L+(L.L.A)+3(A.L+L.A)-4L.L+8L.L-44/9L+8/9*(ID)

,其中L是对角矩阵L={2/3,0,0,0},{0,5/12,0,0},{0,0,11/12,0},{0,0,0,2/3}

我可以在维度2和维度3的情况下找到答案,但是维度4和维度以上存在问题

实际上,矩阵A也必须满足方程A.A=A,但对于合适的矩阵L,只有上面的方程才足够

这是我的密码

A=表[A[i,j],{i,1,4},{j,1,4}]

B=A.L.A

ID=标识矩阵[4]

M=-17/18A-2(A.L.L+L.A.L+(L.L.A)+3(A.L+L.A)-4L.L.L+8L.L-44/9L+8/9*(ID)

diff=(B-M)//ExpandAll//flatte(这里我得到16个非线性方程组)

A1=A/.Solve[diff==0][[1]]

运行此代码一段时间后,出现了错误,因为没有足够的内存进行计算

在这种情况下,有16个方程和16个变量。有些条目是参数,但在得到结果之前我不知道是哪一个

我不确定是否有办法解决这个问题。我需要的答案是理性的(可能是整数),这在理论上是可能的


这个问题能用矩阵方程或其他方法解决吗?我发现其中的一个问题是方程和变量太多。

对于这种规模的问题,它的计算速度相当快,内存也有限

L = {{2/3, 0, 0, 0}, {0, 5/12, 0, 0}, {0, 0, 11/12, 0}, {0, 0, 0, 2/3}};
A = {{a, b, c, d}, {e, f, g, h}, {i, j, k, l}, {m, n, o, p}};
Reduce[{A.L.A == -17/18 A - 2 (A.L.L + L.A.L + (L.L).A) + 3 (A.L + L.A) - 
   4 L.L.L + 8 L.L - 44/9 L + 8/9*IdentityMatrix[4]},
   {a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p}, Backsubstitution->True
]
然后,您只需对它返回的143个潜在解决方案进行排序。 您可能能够从满足A.A==A的结果中进行选择。您还可以对Reduce返回的结果使用圆环,将其转换为类似于Solve返回的形式,但请仔细检查,以确保它正在执行预期的操作


请仔细检查,确保我没有犯任何错误。

非常感谢,这帮了大忙