You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求解矩阵方程M*X*M^-1*A=B中未知3x3可逆矩阵M的方法

求解方法

核心思路是利用相似变换的线性性质,通过选取特殊的输入X、A构造测量,分两步得到M,完全不需要展开9维大型方程组。最终M可确定到相差一个全局非零缩放因子(相似变换本身对M的全局缩放不敏感,符合图形学齐次坐标的变换特性)。

第一步:获取M三个列向量的方向

固定一个非零输入向量A(比如直接取A = [1,1,1]^T即可,若后续测量出现零结果则更换为其他非对称非零向量),分别选取三个特殊的X矩阵做三次测量:

  • 取X₁ = diag(1,0,0)(仅第一行第一列为1,其余位置为0的矩阵),测量得到结果b₁
  • 取X₂ = diag(0,1,0),测量得到结果b₂
  • 取X₃ = diag(0,0,1),测量得到结果b₃
    原方程两边左乘M⁻¹可变形为 X M⁻¹A = M⁻¹B。上述三个X的列空间分别对应三个标准基向量张成的一维空间,Xᵢ乘任意向量的结果都是第i个标准基向量eᵢ的倍数,因此测量得到的bᵢ必然是M的第i个列向量mᵢ的非零标量倍,即bᵢ = kᵢ mᵢ,其中kᵢ为未知非零标量。
    这一步直接得到M三个列的方向,M可以表示为 M = [b₁/k₁, b₂/k₂, b₃/k₃] = Bₘ D,其中Bₘ是以b₁,b₂,b₃为列构造的3x3矩阵,D = diag(1/k₁, 1/k₂, 1/k₃)是待求缩放因子的对角矩阵。

第二步:求解列向量的缩放比值

仍然使用和第一步相同的固定A,再选取两个特殊X做两次测量:

  • 取X₁₂ = [[0,1,0],[0,0,0],[0,0,0]](仅第一行第二列为1,其余为0),测量得到b₁₂
  • 取X₁₃ = [[0,0,1],[0,0,0],[0,0,0]](仅第一行第三列为1,其余为0),测量得到b₁₃
    代入变形后的方程计算:
  • 求逆得到Bₘ⁻¹,计算c₁₂ = Bₘ⁻¹ b₁₂,c₁₂的第一个分量值就是k₂/k₁,其余分量理论上为0,可作为测量噪声的校验项
  • 计算c₁₃ = Bₘ⁻¹ b₁₃,c₁₃的第一个分量值就是k₃/k₁,其余分量理论上为0
    由于M允许全局缩放,直接固定k₁=1,即可算出k₂、k₃的取值,代入第一步的M表达式就得到了最终的矩阵M。

校验与补充

  • 校验:选任意随机X和随机A,代入方程计算M X M⁻¹ A,和实际测量得到的B对比,若误差在测量噪声允许范围内则结果正确。
  • 绝对缩放:如果需要确定M的绝对缩放,额外选一组已知几何长度的向量做校准测量,求解全局缩放因子即可。图形学中多数2D齐次变换、投影变换场景下全局缩放不影响最终变换结果,可直接使用。
  • 行向量适配:如果原系统采用行向量右乘矩阵的运算规则,只需要将所有矩阵转置后套用上述推导即可,逻辑完全一致。

内容的提问来源于stack exchange,提问作者David Spruill

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 14:54:27