# \`k\` smallest eigenvalues of symmetric positive definite matrix

**URL:** <https://discourse.julialang.org/t/k-smallest-eigenvalues-of-symmetric-positive-definite-matrix/14209>\
**Category:** General Usage\
**Tags:** question\
**Created:** [August 28, 2018, 8:23pm UTC](https://discourse.julialang.org/t/k-smallest-eigenvalues-of-symmetric-positive-definite-matrix/14209 "2018-08-28T20:23:18Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![e3c6](https://avatars.discourse-cdn.com/v4/letter/e/e79b87/32.png) [@e3c6](https://discourse.julialang.org/u/e3c6)\
**Post date:** [August 28, 2018, 8:23pm UTC](https://discourse.julialang.org/t/k-smallest-eigenvalues-of-symmetric-positive-definite-matrix/14209/1 "2018-08-28T20:23:18Z")

</div>

I need to compute the `k` smallest eigenvalues of a symmetric positive definite real matrix, and their corresponding eigenvectors. Can I use a Julia package for this, or is there something under LinearAlgebra that helps?

`LinearAlgebra.eigen` takes `vl,vu` parameters, to return eigenvalues within `[vl,vu]`, but I do not know _a priori_ the magnitude of the eigenvalues, so I wouldn’t know what `vl,vu` to use to get the `k` smallest ones.

---

<div class="post-metadata">

**Author:** ![carstenbauer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/carstenbauer/32/4981_2.png) [@carstenbauer](https://discourse.julialang.org/u/carstenbauer)\
**Post date:** [August 28, 2018, 8:47pm UTC](https://discourse.julialang.org/t/k-smallest-eigenvalues-of-symmetric-positive-definite-matrix/14209/2 "2018-08-28T20:47:51Z")

</div>

Maybe ARPACK.jl could help.

---

<div class="post-metadata">

**Author:** ![e3c6](https://avatars.discourse-cdn.com/v4/letter/e/e79b87/32.png) [@e3c6](https://discourse.julialang.org/u/e3c6)\
**Post date:** [August 28, 2018, 8:56pm UTC](https://discourse.julialang.org/t/k-smallest-eigenvalues-of-symmetric-positive-definite-matrix/14209/3 "2018-08-28T20:56:09Z")

</div>

looks like Arpack.jl doesn’t support Julia v0.6.4. I still have some dependencies that don’t work in v1.0, so I cannot upgrade just yet. Is there something I can use in v0.6.4?

---

<div class="post-metadata">

**Author:** ![fgerick](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fgerick/32/13228_2.png) [@fgerick](https://discourse.julialang.org/u/fgerick)\
**Post date:** [August 28, 2018, 9:12pm UTC](https://discourse.julialang.org/t/k-smallest-eigenvalues-of-symmetric-positive-definite-matrix/14209/4 "2018-08-28T21:12:32Z")

</div>

In 0.6.4 you can just use Arpacks `eigs` function with the `which=:SM` keyword right away:

[https://docs.julialang.org/en/v0.6.4/stdlib/linalg/#Base.LinAlg.eigs-Tuple{Any,Any}](https://docs.julialang.org/en/v0.6.4/stdlib/linalg/#Base.LinAlg.eigs-Tuple%7BAny,Any%7D)

---

<div class="post-metadata">

**Author:** ![e3c6](https://avatars.discourse-cdn.com/v4/letter/e/e79b87/32.png) [@e3c6](https://discourse.julialang.org/u/e3c6)\
**Post date:** [August 28, 2018, 9:18pm UTC](https://discourse.julialang.org/t/k-smallest-eigenvalues-of-symmetric-positive-definite-matrix/14209/5 "2018-08-28T21:18:12Z")

</div>

Thanks!
