Any alternates function to replace "eig"
10 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Used "eig(A,B)" function to find eigen values and vectors.. When am converting it to C code and run at real time, it is taking too much time to give results.
Any suggestions to avoid "eig' function ? Or any suggestions to improve its speed ?
Thanks Sunil-Bangalore
4 Kommentare
Stephen23
am 3 Okt. 2018
Bearbeitet: Stephen23
am 3 Okt. 2018
@Sunil Patil: using inv like that is likely to be slow and inaccurate. The MATLAB documentation explicitly states "It is seldom necessary to form the explicit inverse of a matrix. A frequent misuse of inv arises when solving the system of linear equations Ax = b. One way to solve the equation is with x = inv(A)*b. A better way, from the standpoint of both execution time and numerical accuracy, is to use the matrix backslash operator x = A\b. This produces the solution using Gaussian elimination, without explicitly forming the inverse. See mldivide for further information."
Antworten (1)
Christine Tobler
am 3 Okt. 2018
The command
eig(A,eye(15),'qz');
solves the eigenvalue problem A*x = lambda*x, but makes EIG treat it as the generalized problem A*x = lambda*B*x, with B equal to the identity matrix. This should be expected to be slower. Is there a reason not to use
eig(A);
instead?
Alternatively, since A = -inv(C)*G, would it make sense to solve the generalized eigenvalue problem G*x = lambda*C*x instead?
0 Kommentare
Siehe auch
Kategorien
Mehr zu Linear Algebra finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!