用Mathematica怎么求伴随矩阵

 我来答
无情天魔精致
2016-11-30 · TA获得超过1万个赞
知道大有可为答主
回答量:3711
采纳率:76%
帮助的人:1023万
展开全部
  

  Minors函数确实提供了计算子矩阵的方法,不过有个问题就是,位置并不是一一对应的,所以需要做两个方面的调整,一是符号问题,计算的时候并没有加入符号,即\

  (-1)^i + j 是没有相乘的。二是位置的对应问题,伴随矩阵要求行对应列,而不是行对应行,列对应列。所以,可以编写一个模块函数:

  AdjointMatrix[M_] := Module[{Ma, B, n, i, j}, Ma = Minors[M];

  B = Ma;

  n = Dimensions[M][[1]];

  For[i = 1, i <= n, i++,

  For[j = 1, j <= n, j++,

  B[[i, j]] =

  Ma[[n + 1 - i,

  n + 1 - j]]*(-1)^(i + j);];(*inner for*)];(*outer for*)

  Transpose[B]];(*module*)

  下面是测试例子,一个奇异矩阵A,一个非奇异矩阵B:

  A = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};


  MatrixForm[A]


  AA = AdjointMatrix[A];


  MatrixForm[AA]


  MatrixForm[A.AA]


  B = {{1, 2, 3, 0, 1}, {2, 1, -2, 3, 1}, {5, 4, 3, 1, 3}, {0, 0, 1, 0,

  2}, {1, 5, -1, 2, 1}};


  MatrixForm[B]


  BB = AdjointMatrix[B];


  MatrixForm[BB]


  MatrixForm[B.BB]


  MatrixForm[Inverse[B]*Det[B]]


推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式