寻找一个大型正半定矩阵* C *,其项会产生奇异矩阵* L *

时间:2019-03-03 22:57:14

标签: python matlab matrix solver determinants

我的目标简而言之:

给出一个8x8矩阵 C 我有一种算法,该算法以物理相关的方式构造另一个8x8矩阵 L = L(C),其中 L 由最多8个 C 条目的特定(可能是非理性的)线性组合给出。我想找到 C 的一个特殊选择,该选择为正半定并且排名较大(7或8),但会产生一个奇异的 L

事实:

  • 对于每个 U (其中 U * ,每个正半定数 C 都可以写为 C = U * U >表示 U 的复共轭转置。
  • 在这种情况下, ker U = ker C ,因此 U C 的等级相同。
  • 如果 U 具有非奇异的7x7原理子矩阵,则 U 的等级至少为7。

天真的解决方案:

  1. U 声明为符号的8x8矩阵,并创建 C = U * U 。这样可以保证 C 是正半定的。
  2. V 定义为 U 的左上7x7原理子矩阵。请注意,如果 V 不是单数,则 C 的等级至少为7。
  3. C 计算 L
  4. 尝试 solve([det(V)〜= 0,det(L)== 0],[vars]),其中vars = U 项。

难度:

一个直接的问题是,并非排名7或8的 U 的每个选择都具有非奇异的 V ,因此矩阵 C I在这种体制下寻找人可能会错过。在这里忽略这个问题,我在这个论坛上的问题更多是问题的复杂性:

通过设置 C = U * U 并将 U 的条目用作变量, C 的每个条目的总和为8项,每个学位2。例如,c21条目由

给出
u11*conj(u12) + u21*conj(u22) + u31*conj(u32) + u41*conj(u42) + u51*conj(u52) + u61*conj(u62) + u71*conj(u72) + u81*conj(u82)

由于 L 的每个条目都是 C 的2到8个条目之间的线性组合,因此我们有 L 的每个条目都是 U (或 U * )条目中2 * 8 = 16到8 * 8 = 64度2项之间的线性组合。因此,在简化之前, det(L)是一个均匀度2 * 8 = 16多项式,在8!* 16 ^8≈10^ 14和8!* 64 ^8≈10^ 19之间。我需要这个多项式为零,同时 det(V)为非零(具有7!= 5040个项的统一次数7多项式)。

请注意,如果要避免使用 C = U * U ,而是将 C 的条目作为变量,则 det(L)<在简化之前,/ em>将是具有8!* 2 ^8≈10^ 7和8!* 8 ^8≈10^ 11项之间的统一次数8多项式。我需要这个多项式为零,同时 det(V)为非零,并放置一些额外条件,以使 C 为正半定号(Sylvester的准则,等)。 / p>

我的问题:

是否有更聪明的方法来做到这一点?当然,行列式不是确定 L 是否为奇数的最有效方法,但理想情况下,我想为 C 提供一个确切的答案,而不是数值近似。

我最熟悉Matlab,但是非常感谢使用任何系统(Python,Macaulay2等)的任何建议。为了提高计算能力,我可以访问几个超级计算机集群。

编辑:

也许是一个崇高的问题。更易消化的子问题:

  • 是否存在一种用于确定矩阵是否为奇数(与计算行列式相反)的计算上更容易的理想符号算法?

  • 是否存在一种更简便的计算方法,要求答案为正半定值(与设置 C = U * U 相对,并使用 U 的条目作为变量)?

  • 是否有较少的限制(但在计算上仍然很容易)的方式要求 C 的排名为7或8?

0 个答案:

没有答案