%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% MAP05 - Metodos Matriciais Computacionais - PPGMAp UFRGS %% Mat01050 - Algebra Matricial Computacional - DMPA UFRGS %% Tecnicamente, esse nao eh um script, pois nao pode ser executado. Entenda como um conjunto de instrucoes que facilmente podem ser carregados com o mouse. Tarefa: implementar interface entre Scilab e rotina dpotrf (fatoracao de Cholesky) da biblioteca Lapack // execute no Scilab link("/usr/lib/liblapack.so","dpotrf"); // function L=lapack_chol(A) // fatorizacao de Cholesky: A deve ser simetrica positiva definida m=size(A,1); n=size(A,2); if (m~=n) then error('matriz deve ser quadrada'); end; uplo='L'; va=A(:); L = call('dpotrf',uplo,1,"c",m,2,"i",va,3,"d",m,4,"i","out",[m,m],3,"d"); L = tril(L); endfunction // n=5; A=2*rand(n,n)-ones(n,n); A = A'+A + 4*eye(n,n); // L = lapack_chol(A) norm(A-L*L') % % JBC 20Nov2012 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%