23.12.2012 Views

MATLAB Function Reference Volume 1: A - E - Bad Request

MATLAB Function Reference Volume 1: A - E - Bad Request

MATLAB Function Reference Volume 1: A - E - Bad Request

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

cholinc<br />

For hilb(20), the Cholesky factorization failed in the computation of row 14<br />

because of a numerically zero pivot. You can use the Cholesky-Infinity<br />

factorization to avoid this error. When a zero pivot is encountered, cholinc<br />

places an Inf on the main diagonal, zeros out the rest of the row, and continues<br />

with the computation:<br />

Rinf = cholinc(H20,'inf');<br />

In this case, all subsequent pivots are also too small, so the remainder of the<br />

upper triangular factor is:<br />

full(Rinf(14:end,14:end))<br />

ans =<br />

Inf 0 0 0 0 0 0<br />

0 Inf 0 0 0 0 0<br />

0 0 Inf 0 0 0 0<br />

0 0 0 Inf 0 0 0<br />

0 0 0 0 Inf 0 0<br />

0 0 0 0 0 Inf 0<br />

0 0 0 0 0 0 Inf<br />

Limitations cholinc works on square sparse matrices only. For cholinc(X,'0') and<br />

cholinc(X,'inf'), X must be real.<br />

Algorithm R = cholinc(X,droptol) is obtained from [L,U] = luinc(X,options), where<br />

options.droptol = droptol and options.thresh = 0. The rows of the<br />

uppertriangular U are scaled by the square root of the diagonal in that row, and<br />

this scaled factor becomes R.<br />

R = cholinc(X,options) is produced in a similar manner, except the rdiag<br />

option translates into the udiag option and the milu option takes the value of<br />

the michol option.<br />

R = cholinc(X,'0') is based on the “KJI” variant of the Cholesky<br />

factorization. Updates are made only to positions which are nonzero in the<br />

upper triangle of X.<br />

R = cholinc(X,'inf') is based on the algorithm in Zhang [2].<br />

2-253

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!