【问题标题】:Find the eigenvalues of a generic matrix with R [closed]用 R 求通用矩阵的特征值
【发布时间】:2014-09-04 12:40:34
【问题描述】:

你们中有人知道使用 R 来计算和显示由 chr 元素组成的通用矩阵的特征值的特征多项式吗? 比如说

m <- matrix(c('a','b','c','d','e','f','g','h','i','l','m','n'),4,4) 

请考虑我必须将此方法应用于非常大的矩阵

提前谢谢你

【问题讨论】:

  • 这可能有助于包含一些关于由 chr 元素组成的通用矩阵的特征值的特征多项式究竟是什么的细节。这里的大多数人都是程序员,不熟悉字符空间中的深奥数学......
  • 认为 (??) OP 可能正在寻找符号计算(这在 R 中是不可能的,除非使用外部符号计算器(如 Yacas)的接口)
  • 感谢您的建议,但我认为简短的定义可能对不熟悉矩阵代数的人没有帮助(或将一般方法解析视为字符空间中的深奥数学......),当然我不能在这里给一个关于这个主题的课程。也许只有专业用户才能回复。
  • 顺便说一句:特征值:设A为方阵。当且仅当存在一个数(实数或复数)b 使得 AC=bC 如果这样的数 b 存在,则将非零向量 C 称为 A 的特征向量A的特征值和向量C被称为与特征值b相关联的特征向量。特征值的特征多项式:由 det(A-b*I)=0 给出,其中 I 是单位矩阵。
  • 我只是看不出你会从完整的 20×20 特征方程中得到什么见解......

标签: r matrix character eigenvalue


【解决方案1】:

您可以使用 Ryacas 包来执行此操作,但您必须先跳过必要的环节才能在您的系统上安装 Yacas。

library("Ryacas")
m <- matrix(letters[1:16],4,byrow=TRUE)
yrow <- function(x) paste0("{",paste(x,collapse=","),"}")
yrow(m[1,]) ##  "{a,b,c,d}"
ymat <- function(x) yrow(apply(x,1,yrow))
cheqstr <-  function(x) {
    paste0("Expand(CharacteristicEquation(",
           ymat(x),",x),x)")
}
yacas(cheqstr(m))
## (a-x)*(f-x)*(k-x)*(p-x)-(a-x)*(f-x)*l*o+(a-x)*h*j*o-d*e*j*o-
## (a-x)*g*j*(p-x)+(a-x)*g*l*n-(a-x)*h*(k-x)*n+d*e*(k-x)*n+c*e*j*(p-x)-
## c*e*l*n+c*h*i*n-d*g*i*n-b*e*(k-x)*(p-x)+b*e*l*o-b*h*i*o+d*(f-x)*i*o+
## b*g*i*(p-x)-b*g*l*m+b*h*(k-x)*m-d*(f-x)*(k-x)*m-c*(f-x)*i*(p-x)+
## c*(f-x)*l*m-c*h*j*m+d*g*j*m;

【讨论】:

    猜你喜欢
    • 2018-10-31
    • 2017-09-27
    • 1970-01-01
    • 2011-09-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-28
    • 1970-01-01
    相关资源
    最近更新 更多