How i can solve this quadratic eigenvalues problem

10 views (last 30 days)
Dear,friends
I am a graduate student in the Department of Physics at Algiers University , and I am working on a research project that involves solving quadratic eigenvalue problems of the form (H*λ^4+J*λ^2+J)w=0, where H, J, and R are matrices, λ is an eigenvalue, and w is a corresponding right eigenvector. I am having some difficulties with the convergence and accuracy of the results. I have tried different values of the parameters and options, but I still get some errors or warnings from the MATLAB functions that I use, such as eig, chol, and qz. I would greatly appreciate it if you could help me with some suggestions or advice on how to obtain reliable solutions for the quadratic eigenvalue problems. Thank you very much for your time and attention. I look forward to hearing from you soon. Sincerely,
Mektout Mohamed
I use different ways but I can't find the solution
  2 Comments
Sam Chak
Sam Chak on 3 Jan 2024
Since you've encountered some errors or warnings, you must have written a piece of code. Perhaps showing the code would allow for an investigation to be carried out. Are the matrices very large?
Mohamed
Mohamed on 3 Jan 2024
Dear ,@Sam Chak
Thank you for your prompt response. I appreciate your diligence in addressing the errors or warnings that have been encountered.The matrices involved in the code are not exceptionally large(100*100).

Sign in to comment.

Answers (1)

Steven Lord
Steven Lord on 3 Jan 2024
Just to check, what do you know and what are you trying to find? I assume you know H, J, and R (which I assume is the "constant" term, the second instance of J is a typo?) and you're trying to find λ and w?
Have you tried using the polyeig function?
Can you show us a small example of the matrices involved and the code you've written and explain specifically what concerns you have about the convergence or accuracy of the results?
  2 Comments
Mohamed
Mohamed on 3 Jan 2024
Edited: Mohamed on 3 Jan 2024
Thank you for your response and interest. The three matrices H, J, and R are defined and calculated through a series of a priori calculations using the program and DQM differential quadratic method. They are matrices of the same degree, their elements are defined. I want to calculate the value of lambda, which represents the natural frequency of a vibrating beam.The results obtained do not agree with the analytical results that were calculated using a Navier type solution.These are some of the functions I used to calculate the lambda value, but they are not useful
[~, lamda, ~, eigenvectors] = qz(H, J,'complex');
% Extract the eigenvalues (squared natural frequencies)
TBMomega = sqrt(diag(lamad));
and also
% Construct the companion matrices for the polynomial eigenvalue problem
[P, ~] = size(H);
E = eye(P);
U = zeros(P);
G = -R;
Y = -J;
% Form the matrices for the polynomial eigenvalue problem
Q = [E U; G Y];
% Solve the polynomial eigenvalue problem using polyeig
eigenvalues = polyeig(Q);
% Display the results
lamda=sqrt(eigenvalues)
Waiting for your help to solve the problem
regards
Steven Lord
Steven Lord on 3 Jan 2024
I want to calculate the value of lambda, which represents the natural frequency of a vibrating beam.The results obtained do not agree with the analytical results that were calculated using a Navier type solution.
Okay, can you clarify what "do not agree" means in this context? How different are the results? Are they off by something close to round-off error or are they quite a bit different? And if they're quite a bit different, are you assuming that they're returned in a particular order (which may not be the case)?
How well- or ill-conditioned are the matrices on which you're operating?
Without seeing the actual data you're using I think it's going to be difficult or impossible to offer any specific guidance.
Taking a closer look at your code:
% Solve the polynomial eigenvalue problem using polyeig
eigenvalues = polyeig(Q);
This isn't really a polynomial eigenvalue problem. From the documentation page:
"polyeig handles the following simplified cases:
  • p = 0, or polyeig(A), is the standard eigenvalue problem, eig(A)."
I'm not sure that's what you're looking for as you described it. I'd expect (based on the formula in your original question) that you would call polyeig with three inputs. And you probably want to call it with three outputs, to look at the condition number of the eigenvalues.

Sign in to comment.

Categories

Find more on Linear Algebra in Help Center and File Exchange

Products


Release

R2017a

Community Treasure Hunt

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

Start Hunting!