Here you can download
Matlab wrappers for LAPACK. The name of the package is for now lapwrapmw.
This package enables you to have access to some cool LAPACK
functionnalities. Up to release 0.8.4, you have access to
> [V,D] = syev(A,'dc');Four algorithms available, option 'dc' is 5 times faster than eig(A) for (n=800; A=randn(n);A=A+A';Julien's laptop)
> x = gels(A,b,'y');Four algorithms available.
0) Untar lapwrapmw-0.8.4.tar (this creates lapwrapmw-0.8.2 directory) On Linux: save the file lapwrapmw-0.8.4.tar command line: tar xvf lapwrapmw-0.8.2.tar On Windows: save the file lapwrapmw-0.8.4.tar use Winrar Extract command or use Cygwin tar -xvf command line 1) Launch Matlab 2) Go in the directory lapwrapmw-0.8.4 3) Type make_windows if you are running Microsoft Windows or make_linux if you are running linux/unix. 4) You can then call the functions, or run the demos (demo_gels, demo_syev) or type 'help gels', 'help syev'
SYEV Eigenvalues and eigenvectors of symmetric/Hermitian matrix. [D] = SYEV(A) computes the eigenvalues of a symmetric/Hermitian matrix A. First A is reduced to tridiagonal form so that A=Q1*T*Q1' then the symmetric QR iteration algorithm is used on the tridiagonal matrix T to find D, the eigenvalues of T. D corresponds to the eigenvalues of A. This routine calls LAPACK routine _SYEV/_HEEV. [V,D] = SYEV(A) computes eigenvalues and eigenvectors of a symmetric/Hermitian matrix A. First A is reduced to tridiagonal form so that A = Q1*T*Q1' then the symmetric QR iteration algorithm is used on the tridiagonal matrix T to find D, the eigenvalues of T, and Q2 the eigenvectors of T so that T = Q2*D*Q2'. D corresponds to the eigenvalues of A. The eigenvectors of A are such that V = Q1*Q2. [V,D] = SYEV(A,PARAM) computes eigenvalues and eigenvectors of a symmetric/Hermitian matrix A. Same as [V,D] = SYEV(A) except that PARAM enables to choose the method used in the symmetric tridiagonal eigenproblem. PARAM controls the algorithm used: 'dc' stands for "Divide and Conquer" calls LAPACK routine _SYEVD/_HEEVD 'mrrr' stands for "Multiple Relatively Robust Representations" calls LAPACK routine _SYEVR/_HEEVR 'bx' stands for "bisection and inverse iteration" calls LAPACK routine _SYEVX/_HEEVX 'qr' (default) stands for " symmetric QR iteration" calls LAPACK routine _SYEV/_HEEV When A is symmetric/Hermitian SYEV(A,'qr') is the same as EIG(A). See also: EIG.
GELS Solves an overdetermined or underdetermined linear problem. [X] = GELS(A,B) same as [X] = GELS(A,B,'default') [X] = GELS(A,B,PARAM) if A is m-by-n and m > n then GELS computes the solution of the linear least squares problem min || A * X - B ||_F , if A is m-by-n and m < n then GELS computes the solution of the minimum norm problem min || X ||_F s.t. A*X = B PARAM controls the algorithm used: 'dc' performs SVD factorization of A using the divide and conquer method then solve the undetermined or overdetermined problem. calls LAPACK routine _GELSD 'svd' performs SVD factorization of A using QR iterations then solve the undetermined or overdetermined problem. calls LAPACK routine _GELSS 'y' performs QR factorization of A then solve the undetermined or overdetermined problem. calls LAPACK routine _GELSY 'default' (default) performs QR factorization of A without pivoting, then solve the undetermined or overdetermined problem. The fact that there is no pivoting in the QR factorization means that A(:,1:min(size(A)) needs to be full rank. calls LAPACK routine _GELS When A is m-by-n with m > n then [X] = GELS(A,B) is the same as X=A\B. When A is m-by-n with m < n then [X] = GELS(A,B,PARAM) is _not_ the same as X=A\B. [X] = GELS(A,B,PARAM) solves the problem (*) min_X || X ||_F s.t. AX=B while X=A\B solves AX=B by first performing a QR factorization of A [Q,R,E] = QR(A) then X is obtained via X = E(:,1:m)*(R(:,1:m)\(Q'*b))] The \ method is faster than GELS, X is such that AX=B but X is not (in the general case) the solution of (*). See also: \, MLDIVIDE.