next up previous
Next: Way of Up: JDQR Previous: JDQR


Preconditioning in jdqr

The action `M inverse' of the preconditioner M (an approximation of A-lambda$\ast$I) on an n-vector v can be defined in the Options

  Options.Precond
Options.L$\underline{~}$Precond (same as Options.Precond)
Options.U$\underline{~}$Precond
Options.P$\underline{~}$Precond

and also in the argument list:
... = jdqr(...,k,sigma,M,options)
... = jdqr(...,k,sigma,L,U,options)
... = jdqr(...,k,sigma,'M',options)
... = jdqr(...,k,sigma,'L','U',options)


If no preconditioner has been specified (or is [ ]), then M$\backslash$v = v (M is the identity).

If Precond is an n by n matrix, say, K, then

M$\backslash$v = K$\backslash$v.

If Precond is an N by 2$\ast$N matrix, say, K, then

M$\backslash$v = U$\backslash$L$\backslash$v, where K = [L,U], and L and U are n by n matrices.

If Precond is a string, say, 'Mi', then

  if Mi(v,'L') and Mi(v,'U') return n-vectors
  M$\backslash$v = Mi(Mi(v,'L'),'U')
  otherwise
  M$\backslash$v = Mi(v) or M$\backslash$v = Mi(v,'preconditioner').

Note that Precond and A can be the same string.

If L$\underline{~}$Precond and U$\underline{~}$Precond are strings, say, 'Li' and 'Ui', respectively, then

M$\backslash$v = Ui(Li(v)).

If (P$\underline{~}$precond,) L$\underline{~}$Precond, and U$\underline{~}$precond are n by n matrices, say, (P,) L, and U, respectively, then

M$\backslash$v = U$\backslash$L$\backslash$(P$\ast$v)         (i.e., P$\ast$M = L$\ast$U).


The way the preconditioner is used can be specified in the Options.


next up previous
Next: Way of Up: JDQR Previous: JDQR
Gerard L.G. Sleijpen 2002-05-21