solve symbolic eigenvalue problem

Hello everyone,
I have a system of linear equations in the following form: AX=BX
where matrix A is constructed from values of the parameter a,
and matrix B consists of eigenvalues.
Each eigenvalue solution should be dependent on a.
I want to find, for each eigenvalue, the smallest value and the corresponding aaa that satisfies it.
I attempted to solve this using the syms and eigs functions but was unsuccessful.
My main difficulty lies in defining symbolic parameters and then using them after solving for the eigenvalues.

Answers (1)

If you want an analytical expression for the eigenvalues dependent on the parameter a, your matrix A must have dimension <= 4.
syms a
A = [a a^2;2 exp(a)];
eig(A)
ans = 

6 Comments

syms a
A = [a a^2;2 exp(a)];
E = eig(A)
E = 
crit_a_1 = solve(diff(E(1), a),a)
Warning: Unable to find explicit solution. For options, see help.
crit_a_1 = Empty sym: 0-by-1
ch = children(E(1),3).^2
ch = 
fplot(ch, [-5 3])
diff(ch,a)
ans = 
limit(ans,a,0)
ans = 
0
limit(E(1), a, 0)
ans = 
0
limit(E(1), a, -inf)
ans = 
Therefore the smallest eigenvalue is -inf as a approaches -inf
liad
liad on 5 Feb 2025
Moved: Torsten on 5 Feb 2025
I'm not necessarily looking for an analytical solution. Matrix A is supposed to be a 100 x 100 matrix. It mean, I'm supposed to get 100 eigenvalues. Basically, for each eigenvalue I'm try to find a minimum and the value "a" of that minimum. Therefore, after I've solved the system I have to access each "equation" of an eigenvalue.
Torsten
Torsten on 5 Feb 2025
Edited: Torsten on 5 Feb 2025
You can't fix a certain eigenvalue and minimize it separately if you don't have an analytical formula for it. This is because you won't be able to tell which of the 100 eigenvalues you get in each step of the computation is the one that you chose to "follow" at the beginning.
Since all of the eigenvalues will change if you change "a", I don't understand the motivation behind your question.
Maybe you try to minimize the maximum eigenvalue - this would at least theoretically be possible.
Analytical solutions to a 100 x 100 eigenvalue problem are not feasible. Even if the matrix happens to be sparse enough that calculating the determinant is relatively feasible, the analytic solutions would involve root(EXPRESSION,INDEX) and those cannot generally be analytically calculated when the determinant is degree 5 or larger. But as well, it is not possible to build a sparse() symbolic array, and calculating out all the cofactors of the determinant of a 100 x 100 expression would take a long long long time.
Thank you for your response.
So I have a problem because I have a sixth order differential equation that looks in matrix form Ax=Bx. When matrix A depends on some parameter. And matrix B can be defined as the matrix of the eigenvalues. I solve the equation using finite elements so I need about 100 equations to get good accuracy. The thought was to solve it like an eigenvalue problem, but my matlab only manages to calculate 20 x 20 at most. Is there any way to solve the system? Maybe not through eigenvalues?
Torsten
Torsten on 15 Feb 2025
Edited: Torsten on 15 Feb 2025
Just out of curiosity:
Why do you get a matrix A depending on a parameter if you discretize a differential equation ?

Sign in to comment.

Asked:

on 3 Feb 2025

Edited:

on 15 Feb 2025

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!