我正在编写一种基于局部惯性矩处理3D图像的算法。

我有一个3x3实对称矩阵,需要从中找到特征值。我已经找到了各种各样的用于矩阵对角化的通用算法,但是我不知道是否存在这种矩阵的3个本征值的解析表达式。

精通数学的人会知道吗?


编辑

记录在案,这是我本人在问题上的发现。一旦有了3x3矩阵,就可以将其转换为简单的分析表达式。

但是,我发现了一种特殊情况下3x3 Hermitian矩阵的专用纸,其中比较了各种数值专用方法:

http://arxiv.org/abs/ physics / 0610206

这是本文的C和Fortran代码:

http://www.mpi-hd.mpg.de/personalhomes/globes/3x3/ index.html

#1 楼

Wolfram | Alpha使这种事情变得容易:



评论


$ \ begingroup $
很好。我不知道您可以在免费的在线工具中执行类似的操作。我必须检查一下以了解Mathematica给您带来多少。
$ \ endgroup $
–Jason R
2012年4月2日在18:20

$ \ begingroup $
哎呀!我想这就是为什么人们转向数字分辨率的原因。这几乎是不可读的。最重要的是,我在那里看到虚数。我想我应该补充说a,b,c,d,e和f是真实的。您可以在Mathematica中做到吗?
$ \ endgroup $
–让·伊夫
2012年4月2日19:26



$ \ begingroup $
Mathematica提供了一种全面的方法来定义复数(分支剪切问题等)的“基本运算符”(Sqrt,幂,对数等)。请放心,无论您用符号'a',...,'f'替换实际值如何,特征向量都是真实的(即,它们的虚部将小于10 ^ -12)。
$ \ endgroup $
–马特西亚·奥迪西奥(Matthias Odisio)
2012年4月2日在20:27



$ \ begingroup $
我发现您可以使用“ [Element] Reals”之类的语法来建立这样的假设。但是从现在开始,我需要一个Mathematica许可证,但我还没有;)
$ \ endgroup $
–让·伊夫
2012年4月2日在20:40

$ \ begingroup $
即使输入a,...,f是实数,也必须使用复数来表示数量。一位同事向我指出了en.wikipedia.org/wiki/Casus_irreducibilis,它解释了这个问题。
$ \ endgroup $
–马特西亚·奥迪西奥(Matthias Odisio)
2012年4月3日,下午2:13

#2 楼

对于2x2和3x3 Hermitian矩阵的本征分解,有一个更新的(2017)闭式公式:Charles-Alban Deledalle,Loic Denis,Sonia Tabti和Florence Tupin。 2x2和3x3 Hermitian矩阵的本征分解的闭式表达式。 [研究报告]里昂大学。 2017. hal-01501221f
与原始问题的编辑结果或其他答案中的Wolfram Alpha解决方案相比,所需的计算量要少得多。