Scilab Home page | Wiki | Bug tracker | Forge | Mailing list archives | ATOMS | File exchange
Please login or create an account
Change language to: English - Français - 日本語 - Русский
Ajuda do Scilab >> Matrizes Esparsas > Sparse Decompositions > lufact

lufact

fatoração LU esparsa

Seqüência de Chamamento

[hand,rk]=lufact(A,prec)

Parâmetros

A

matriz quadrada esparsa

hand

manipulador para fatores LU esparsos

rk

inteiro (posto de A)

prec

vetor de tamanho 2 prec=[eps,reps] fornecendo os limiares absoluto e relativo.

Descrição

[hand,rk]=lufact(A) realiza a fatoração LU da matriz esparsa A. hand (sem exibição) é usado por lusolve (para resolver sistemas lineares) e luget (para retirar os fatores). hand deve ser limpo pelo comando: ludel(hand);

A matriz A não precisa ser de posto cheio, mas deve ser quadrada (desde que A é assumida como sendo esparsa, pode-se adicionar 0, se necessário, para quadrá-la).

eps :

a magnitude absoluta que um elemento deve ter para ser considerado um candidato a pivô, exceto como último recurso. Este número deve ser posto de modo a ser significantemente menor que o menor elemento da diagonal que se espera estar localizado na matriz. O valor padrão é %eps.

reps :

Este número determina qual será o limiar relativo do pivô. Deve estar entre 0 e 1. Se for 1, então o método de pivoteamento torna-se pivotação completa, que é muito lento e tende a completar a matriz. Se o número acertado é próximo de 0, o método de pivoteamento torna-se estritamente de Markowitz, sem limiar. O limiar de pivô é usado para eliminar candidatos a pivô que poderiam causar crescimento excessivo de elementos se fossem usados. Crescimento de elementos é a causa dos erros de arredondamento. Crescimento de elementos ocorre mesmo em matrizes bem condicionadas. Definir o reps como um número grande reduzirá o crescimento de elementos e os erros de arredondamento, mas colocá-lo muito grande aumentará muito o tempo de execução e resultará num grande número de preenchimentos. Se isto ocorrer, a precisão pode ficar prejudicada por causa do grande número de operações requeridas na matriz devido ao grande número de preenchimentos. 0.001 parece um bom valor, e é o valor default. O default é escolhido fornecendo-se um valor maior que 1 ou menor que ou igual a 0. Este valor deve ser aumentado e a matriz resolvida se o crescimento for excessivo. Mudar o limiar do pivô não melhora o desempenho em matrizes onde o crescimento é baixo, como é geralmente o caso de matrizes mal-condicionadas. reps foi escolhido para uso com matrizes quase diagonalmente dominantes como uma matriz de admissão de nó e nó modificado. Para estas matrizes, geralmente o melhor é usar pivotação diagonal. Para matrizes sem uma diagonal forte, geralmente é melhor usar um limiar maior, como 0.01 ou 0.1.

Exemplos

a=rand(5,5);b=rand(5,1);A=sparse(a);
[h,rk]=lufact(A);
x=lusolve(h,b);a*x-b
ludel(h)

Ver Também

Scilab Enterprises
Copyright (c) 2011-2017 (Scilab Enterprises)
Copyright (c) 1989-2012 (INRIA)
Copyright (c) 1989-2007 (ENPC)
with contributors
Last updated:
Mon Feb 12 19:58:37 CET 2018