File: lufact.cat

package info (click to toggle)
scilab 2.6-4
  • links: PTS
  • area: non-free
  • in suites: woody
  • size: 54,632 kB
  • ctags: 40,267
  • sloc: ansic: 267,851; fortran: 166,549; sh: 10,005; makefile: 4,119; tcl: 1,070; cpp: 233; csh: 143; asm: 135; perl: 130; java: 39
file content (65 lines) | stat: -rw-r--r-- 2,938 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
lufact            Scilab Group            Scilab Function            lufact
NAME
   lufact - sparse lu factorization
  
CALLING SEQUENCE
 [hand,rk]=lufact(A,prec)
PARAMETERS
 A    : square sparse matrix
      
 hand : handle to sparse lu factors
      
 rk   : integer  (rank of A)
      
 prec : a vector of size two prec=[eps,reps] giving the absolute and
      relative  thresolds.
      
DESCRIPTION
   [hand,rk]=lufact(A) performs the lu factorization of sparse matrix A.
  hand (no display) is used by lusolve (for solving linear system) and
  luget (for retrieving the factors). hand should be cleared by the
  command: ludel(hand);
  
   The A matrix needs not be full rank but must be square  (since A is
  assumed sparse one may add zeros if necessary to squaring down A).
  
 eps :
       The absolute magnitude an element must have to be considered as a pivot
      candidate, except as a last resort.  This number should be set
      significantly smaller than the smallest diagonal element that is is
      expected to be placed in the matrix. the default  value is %eps.
      
 reps :
       This number determines what the pivot relative threshold will be.  It
      should be between zero and one.  If it is one then the pivoting
      method becomes complete pivoting, which is very slow and tends to
      fill up the matrix.  If it is set close to zero the pivoting method
      becomes strict Markowitz with no threshold.  The pivot threshold is
      used to eliminate pivot candidates that would cause excessive element
      growth if they were used.  Element growth is the cause of roundoff
      error. Element growth occurs even in well-conditioned matrices.
      Setting the reps large will reduce element growth and roundoff error,
      but setting it too large will cause execution time to be excessive
      and will result in a large number of fill-ins.  If this occurs,
      accuracy can actually be degraded because of the large number of
      operations required on the matrix due to the large number of
      fill-ins.  A good value seems to be 0.001 which is the default value.
       The default is chosen by giving a value larger than one or less than
      or equal to zero.  This value should be increased and the matrix
      resolved if growth is found to be excessive.  Changing the pivot
      threshold does not improve performance on matrices where growth is
      low, as is often the case with ill-conditioned matrices. reps was
      choosen for use with nearly diagonally dominant matrices such as
      node- and modified-node admittance matrices.  For these matrices it
      is usually best to use diagonal pivoting.  For matrices without a
      strong diagonal, it is usually best to use a larger threshold, such
      as 0.01 or 0.1.
      
EXAMPLE
 a=rand(5,5);b=rand(5,1);A=sparse(a);
 [h,rk]=lufact(A);
 x=lusolve(h,b);a*x-b
 ludel(h)
SEE ALSO
   sparse, lusolve, luget