# Numerical solutions of eigenvalue problems with linear constrains

**URL:** https://discourse.julialang.org/t/numerical-solutions-of-eigenvalue-problems-with-linear-constrains/103325
**Category:** Numerics
**Tags:** question, linearalgebra
**Created:** [August 29, 2023, 11:02am UTC](https://discourse.julialang.org/t/numerical-solutions-of-eigenvalue-problems-with-linear-constrains/103325 "2023-08-29T11:02:48Z")
**Posts on this page:** 7
**Page:** 1

<div class="post-metadata">

### Author: ![swish47](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/swish47/32/43921_2.png) [@swish47](https://discourse.julialang.org/u/swish47)
#### Post date: [August 29, 2023, 11:02am UTC](https://discourse.julialang.org/t/numerical-solutions-of-eigenvalue-problems-with-linear-constrains/103325/1 "2023-08-29T11:02:49Z")

</div>

As an example, one need to search the least or the least second eigenvalue and corresponded eigenvector of matrix A, under constraint Bx=c, where B is coefficient matrix, x is eigenvector under search, and c is a constant vector. How could I find some effective way to solve this type of problem efficiently.

---

<div class="post-metadata">

### Author: ![gdalle](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/gdalle/32/27854_2.png) [@gdalle](https://discourse.julialang.org/u/gdalle)
#### Post date: [August 29, 2023, 11:29am UTC](https://discourse.julialang.org/t/numerical-solutions-of-eigenvalue-problems-with-linear-constrains/103325/2 "2023-08-29T11:29:01Z")

</div>

Sounds like a quadratic program you could solve using JuMP maybe?

---

<div class="post-metadata">

### Author: ![jishnub](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jishnub/32/33620_2.png) [@jishnub](https://discourse.julialang.org/u/jishnub)
#### Post date: [August 29, 2023, 11:46am UTC](https://discourse.julialang.org/t/numerical-solutions-of-eigenvalue-problems-with-linear-constrains/103325/3 "2023-08-29T11:46:23Z")

</div>

Looks like [linear algebra - Linearly constrained eigenvalue problem - MathOverflow](https://mathoverflow.net/questions/184538/linearly-constrained-eigenvalue-problem) has an answer that might help, although you might have come across this already. This becomes much simpler if c=0.

---

<div class="post-metadata">

### Author: ![swish47](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/swish47/32/43921_2.png) [@swish47](https://discourse.julialang.org/u/swish47)
#### Post date: [August 29, 2023, 12:52pm UTC](https://discourse.julialang.org/t/numerical-solutions-of-eigenvalue-problems-with-linear-constrains/103325/4 "2023-08-29T12:52:40Z")

</div>

Thx for your help.  
As [Justin](https://mathoverflow.net/a/225043) mentioned, this type of constrained eigenvalue problem cannot be reduced to generalized EV problem. I am not sure dealing with finding global minimum with constrains or solving linear equations would lead less computational cost.

---

<div class="post-metadata">

### Author: ![mohamed82008](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mohamed82008/32/18171_2.png) [@mohamed82008](https://discourse.julialang.org/u/mohamed82008)
#### Post date: [August 31, 2023, 1:30pm UTC](https://discourse.julialang.org/t/numerical-solutions-of-eigenvalue-problems-with-linear-constrains/103325/5 "2023-08-31T13:30:16Z")

</div>

IterativeSolvers lobpcg supports constraints of the form `C x = 0`. See the `C` matrix in [LOBPCG · IterativeSolvers.jl](https://iterativesolvers.julialinearalgebra.org/dev/eigenproblems/lobpcg/#IterativeSolvers.lobpcg).

---

<div class="post-metadata">

### Author: ![swish47](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/swish47/32/43921_2.png) [@swish47](https://discourse.julialang.org/u/swish47)
#### Post date: [September 1, 2023, 2:12pm UTC](https://discourse.julialang.org/t/numerical-solutions-of-eigenvalue-problems-with-linear-constrains/103325/6 "2023-09-01T14:12:09Z")

</div>

Sure, but this function does not support general linear constraint.

---

<div class="post-metadata">

### Author: ![mohamed82008](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/mohamed82008/32/18171_2.png) [@mohamed82008](https://discourse.julialang.org/u/mohamed82008)
#### Post date: [September 1, 2023, 2:34pm UTC](https://discourse.julialang.org/t/numerical-solutions-of-eigenvalue-problems-with-linear-constrains/103325/7 "2023-09-01T14:34:35Z")

</div>

You can try formulating the problem as a semidefinite program with linear constraints then use JuMP.
