首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby Matrix::特征值分解错误

Ruby Matrix::特征值分解错误
EN

Stack Overflow用户
提问于 2012-09-21 08:22:30
回答 1查看 259关注 0票数 0

我查看了给定矩阵的特征向量矩阵,但当我尝试求逆时,在eigenvector_matrix_inv()中遇到了错误。

代码语言:javascript
复制
require 'matrix'

m = Matrix[ [0.5703125, 1.8369140625, 0.0, 0.0], 
            [-0.6875, -0.4609375, 0.0, 0.0], 
            [0.0, 0.0, -2.1796875, 8.7119140625], 
            [0.0, 0.0, -0.6875, 2.2890625] ]

meigen = m.eigen.eigenvector_matrix
meiveni = m.eigen.eigenvector_matrix_inv
# .../matrix.rb:930:in `block in inverse_from': Not Regular Matrix (ExceptionForMatrix::ErrNotRegular)

正如使用Mathematica检查的那样,它不应该是单数的

代码语言:javascript
复制
mruby = {{0.5703125, 1.8369140625, 0.0, 0.0}, {-0.6875, -0.4609375, 
0.0, 0.0}, {0.0, 0.0, -2.1796875, 8.7119140625}, {0.0, 
0.0, -0.6875, 2.2890625}};
Inverse[Eigenvectors[mruby]]

给予

代码语言:javascript
复制
{{0.586146 - 0.302685 I, 0.586146 + 0.302685 I, 0. + 0. I, 
0. + 0. I}, {0. - 1.07831 I, 0. + 1.07831 I, 0. + 0. I, 
0. + 0. I}, {0. + 0. I, 0. + 0. I, 0.519354 + 1.16217 I, 
0.519354 - 1.16217 I}, {0. + 0. I, 0. + 0. I, 0. - 4.53135 I, 
0. + 4.53135 I}}

我做错了什么?

我应该特别注意Ruby中的一些特别的东西吗?

EN

回答 1

Stack Overflow用户

发布于 2012-09-21 08:39:33

当你做特征值问题时,你不会求逆矩阵。有很多算法,但反转不是其中之一。

你的矩阵有点奇怪:你有两个正对角线元素和两个负对角线元素。我认为具有复数条目的特征向量表明它不是你通常所拥有的:实特征值与实特征向量。

要么你的矩阵不正确,要么你选择了错误的算法。看看Hessian矩阵是否就是你所拥有的,并寻找合适的算法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12522747

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档