matlab eigs 报错:错误使用 eigs/checkInputs/LUfactorAminusSigmaB (line 991) 移动的运算符是单数。shift 是特征值。

在利用eigs函数计算矩阵最小的几个特征值时,

eigs函数用法:

eigs(A, k, sigma)

A 是要计算的矩阵,

k是想要取得特征值个数

sigma是要大的还是小的

sigma可取如下值:

‘lm’ : 取最大的k个特征值

sm : 取最小的k个特征值

lr :取实部最大的k个特征值

sr : 取实部最小的k个特征值

li : 取虚部最大的k个特征值

si : 取虚部最小的k个特征值

sigma的取值均是字符串(即加引号),具体可参 matlab 的帮助文档,

在命令行输入 (doc eigs)


选用 ‘sm’ 参数,运行help文档中的例子,没有任何问题,而运行自己的矩阵时,就会报错:


错误使用 eigs/checkInputs/LUfactorAminusSigmaB (line 991)

移动的运算符是单数。shift 是特征值。

请尝试使用其他的一些 shift。


试了一下,是因为自己的矩阵中有全零行,所以把例子中的第一行全部去掉,再次运行,也会报同样的错误。

只好改用 ‘sr'  参数,

但是这样每次计算的特征值都不一样,有时候还会得到 NaN, 不知道是什么原因。


  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值