在Apache Commons Math 3中,EigenDecomposition接受非对称矩阵,但它使用RealVector和RealMatrix类返回结果.要获得实际的复杂结果,您必须将适当的实际结果组合成复杂的共轭对.

在特征向量的情况下,您得到:

eigenvector[0] = {-0.8660254038; 0}

eigenvector[1] = {0.5; 1}

这两个向量都与复合共轭特征值对相关联getRealEigenvalue(0)getImagEigenvalue(0)* i和getRealEigenvalue(1)getImagEigenvalue(1)* i,但这些向量不是实际的特征向量.实际的特征向量是复共轭对

特征向量[0]特征向量[1] * i和特征向量[0] – 特征向量[1] * i.

那些向量仍然不匹配numpy返回的结果,但这是因为这两个库没有使用相同的规范化.特征向量不是唯一的;特征向量乘以任何非零标量(包括复数标量)仍然是特征向量. Java结果和numpy结果之间的唯一区别是标量乘数.

为方便起见,我将浮点值转换为它们的确切值.也就是说,-0.8660254038是-sqrt(3)/ 2的浮点近似. Java数学库提供以下特征向量:

[-sqrt(3)/2 + (1/2)*i] and [-sqrt(3)/2 - (1/2)*i]

[ 0 + 1*i] [ 0 - 1*i]

如果你将第一个特征向量乘以 – (sqrt(2)/ 2)* i和第二个乘以(sqrt(2)/ 2)* i,你将得到numpy返回的特征向量.

这是一个带有该计算的ipython会话. v1和v2是上面显示的向量.

In [20]: v1 = np.array([-np.sqrt(3)/2 + 0.5j, 1j])

In [21]: v1

Out[21]: array([-0.8660254+0.5j, 0.0000000+1.j ])

In [22]: v2 = np.array([-np.sqrt(3)/2 - 0.5j, -1j])

In [23]: v2

Out[23]: array([-0.8660254-0.5j, 0.0000000-1.j ])

将v1乘以 – (sqrt(2)/ 2)* i得到numpy.linalg.eig返回的第一个特征向量:

In [24]: v1*(-np.sqrt(2)/2*1j)

Out[24]: array([ 0.35355339+0.61237244j, 0.70710678-0.j ])

将v2乘以(sqrt(2)/ 2)* i得到numpy.linalg.eig返回的第二个特征向量:

In [25]: v2*(np.sqrt(2)/2*1j)

Out[25]: array([ 0.35355339-0.61237244j, 0.70710678+0.j ])

为方便起见,这里是numpy计算的重复. evecs列是特征向量.

In [28]: evals, evecs = np.linalg.eig(a)

In [29]: evecs

Out[29]:

array([[ 0.35355339+0.61237244j, 0.35355339-0.61237244j],

[ 0.70710678+0.j , 0.70710678-0.j ]])

java特征向量计算_用Java和Python计算特征向量的差异相关推荐

  1. java 字符串包_包java字符串

    Java核心技术卷I基础知识3.6.3 不可变字符串 3.6.3 不可变字符串 String类没有提供用于修改字符串的方法.如果希望将greeting的内容修改为"Help!",不 ...

  2. java初学课程_作为java新手应该学习什么课程

    照目前IT行业发展趋势,学java的人越来越多,因为java的应用范围广,薪资待遇在IT行业里也是名列前茅,那么,作为java新手应该学习什么课程呢?动力节点java学院的小编来告诉大家新手应该学哪些 ...

  3. java高级教程_高级Java教程

    java高级教程 课程大纲 学习Java基础很容易. 但是,真正钻研该语言并研究其更高级的概念和细微差别将使您成为一名出色的Java开发人员. 网络上充斥着"软","便宜 ...

  4. java正则表达式 匹配()_学习Java正则表达式(匹配、替换、查找)

    import java.util.ArrayList; import java.util.regex.Matcher; import java.util.regex.Pattern; public c ...

  5. java main函数_一行JAVA代码如何运行起来?

    在程序员的世界中,你总会听到一句"PHP是世界上最好的语言"的调侃.然而在你进入软件程序开发之后,你会发现即使开发语言千千万,最盛行的还是JAVA.从淘宝的技术变迁中我们可以见一些 ...

  6. java面向对象课件_《JAVA面向对象基础》PPT课件.ppt

    <<JAVA面向对象基础>PPT课件.ppt>由会员分享,可在线阅读,更多相关<<JAVA面向对象基础>PPT课件.ppt(68页珍藏版)>请在人人文库 ...

  7. 学JAVA的诗句_学Java有感(终)

    大一的下半学期逐渐步入尾声,我的Java学习也以告一段落.经过一个学期的学习,不能说是融会贯通,但也算小有心得.下面就来谈谈我对这个学期Java学习的感受吧! 在大一的上半学期,我接触到了一个计算机语 ...

  8. java application程序_如何Java编写的application程序像exe一样方便shy;的运行

    Java编写的application程序是否能够最终形成一个类似于exe一样的可执行文件,难道就只能用命令行运行??? ---------------------------------------- ...

  9. java核心教程_核心Java教程

    java核心教程 Welcome to Core Java Tutorial. I have written a lot on Core Java and Java EE frameworks. Th ...

最新文章

  1. 17.07.26 Oracle安装
  2. 信号传递的时机与顺序
  3. 在Linux里设置环境变量的方法(export PATH)--待修改
  4. 1750: 统计单词数(某个单词出现次数)
  5. Spring框架知识复习之二
  6. import lombok 报错_Lombok注解@Getter @Setter详解
  7. redis 设置密码 和 redis.config文件
  8. FairMOT: On the Fairness of Detection and Re-Identification in Multiple Object Tracking 效果展示
  9. 50: 加密与解密 、 AIDE入侵检测系统 、 扫描与抓包 、 总结和答疑
  10. iPhoneiPad DFU及恢复模式刷机、降级教程
  11. 38.JavaScript中异步与回调的基本概念,以及回调地狱现象
  12. MT8377 MT8389 MT6589 MT6577解析
  13. css设置十六进制背景色和透明度
  14. 国产手机扬眉吐气,终于打击了苹果的嚣张气焰
  15. Exception:There is no getter for property named ‘qo‘ in ‘class cn.xxxxxx.rbac.qo.XxxxQo 的两种错误可能及解决方案
  16. JavaScript-常见数组内置方法
  17. 关于matlab中help无法使用的解决办法(点开后是空白)
  18. 【bzoj3165】[Heoi2013]Segment
  19. VR混战已开始,看各大虚拟现实如何争春?
  20. 【每日早报】2020/01/02

热门文章

  1. cd 在windows下 无法切换盘符目录
  2. php特殊函数,PHP常用特殊运算符号和函数的简单示例
  3. mysql nosql引擎_nosql与mysql的区别是什么
  4. 主梁弹性模量计算_收藏 | 钢结构计算公式
  5. c语言编程暴力是什么意思,(C语言代码)用笨办法暴力出来的,但是还是希望给大家一点思路上的启发...
  6. Maven中jar包冲突的解决方式
  7. python globals().get,python – 为什么人们会使用globals()来定义变量
  8. python序列化和反序列化_python反序列化免杀
  9. decorator java_装饰器模式-Decorator(Java实现)
  10. 向左向右向后转python,将图像(png和jpg)转换为多维列表并在python中向后转换