查找线性系统中的子系统

问题描述 投票:0回答:1

给定一个线性系统

M x = 0
,其中
M
是一个 m, n 矩阵,
x
是一个具有 n 个条目的向量,有多种方法可以找到
x
的非平凡解,例如奇异值分解(SVD) )。就我而言,
M
可能由多个独立的子系统组成,例如

M = [[M1, 0 ], [0,M2]]

在这种情况下,

x
有多个解,因为我们可以找到第一个系统的解,并将第二个系统的解设置为平凡的解,反之亦然。因此,我想找到一种方法,给定矩阵
M
,分离独立系统,即找到所有“子矩阵”
M_j

是否有一种常见的方法可以通过编程来执行此操作,例如使用QR分解?

numpy math linear-algebra
1个回答
0
投票

假设 M = {M1, M2, Mn},其中每个 Mi 代表 M 的第 i 列,并且是 m 个实数元素的向量。假设 x = {x1, x2, ..., xm} 是 m 个实数元素的向量。假设 y = {y1, y2, ..., yn} 是由 n 个实数元素组成的已知向量。那么如果所有 Mi 都是线性独立的,对于给定的非零向量 y,方程

Mx = y

有唯一解x。如果并非所有 Mi 都是线性独立的,则要么无解,要么有无穷多个解。如果 n > m,则 Mi 不一定都是线性独立的。

可以选择任何xi并重新排列以获得

M'x' = y - xi*Mi

哪里

M' = {M1, ..., M(i-1), M(i+1), ..., Mn}

x' = {x1, ..., x(i-1), x(i+1), ..., xn}

然后尝试求解 x'。重复此操作,直到左侧矩阵与给定向量 x 元素的选定值的唯一解线性相关。然后,您的子矩阵将是剩余线性独立矩阵的列的任何分区。

© www.soinside.com 2019 - 2024. All rights reserved.