0

方程式を満たす正方行列 A を見つける必要があります

ALA = -17/18A -2(ALL + LAL + (LL).A) + 3(AL + LA) -4L.LL + 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}}。

A が 2 次元と 3 次元の場合は答えを見つけることができますが、4 次元以上に問題があります。

実際には、行列 A も方程式 AA = A を満たす必要がありますが、適切な行列 L を使用すると、上記の方程式だけで十分です。

これは私のコードです。

A = テーブル[a[i,j],{i,1,4},{j,1,4}]

B = ALA

ID = IdentityMatrix[4]

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

diff = (B - M)//ExpandAll//Flatten (ここで 16 の非線形連立方程式を取得します)

A1 = A/.Solve[差分 == 0][[1]]

このコードをしばらく実行した後、計算するのに十分なメモリがありませんというエラーが発生します。

この場合、16 個の方程式と 16 個の変数があります。エントリのいくつかはパラメータですが、結果が得られるまでどのエントリかわかりません。

とにかくこの問題を解決する方法があるかどうかはわかりません。理論的に可能な合理的な(おそらく整数)答えが必要です。

この問題は、行列方程式または他の方法で解決できますか? これに関する 1 つの問題は、方程式と変数が多すぎることです。

4

1 に答える 1

0

これは、このサイズの問題に対して適度なメモリでかなり迅速に評価します。

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 の潜在的なソリューションを並べ替えるだけです。AA==Aを満たすものから選択できる場合があります。Reduce から返された結果に対して ToRules を使用して、これを Solve から返されたものと同様の形式にすることもできますが、これを注意深くチェックして、期待どおりに動作していることを確認してください。

これを注意深くチェックして、間違いを犯していないことを確認してください。

于 2013-12-01T03:18:29.493 に答える