Iterative refinement for a s.p.d. linear system
[xn, rn] = rafiter(A, C_ptr, b, x0, [, nb_iter, verb])
a real symmetric positive definite sparse matrix
a pointer to a Cholesky factorization (got with taucs_chfact)
column vector (r.h.s of the linear system) but "matrix" (multiple r.h.s.) are allowed.
first solution obtained with taucs_chsolve(C_ptr, b)
(optional) number of raffinement iterations (default 2)
(optional) boolean, must be %t for displaying the intermediary results, and %f (default) if you do not want.
new refined solution
residual (A*xn - b
)
To use if you want to improve a little the solution got with taucs_chsolve. Note that with verb=%t the displayed internal steps are essentially meaningful in the case where b is a column vector.
Currently there is no verification for the input parameters !
[A] = ReadHBSparse(SCI+"/modules/umfpack/examples/bcsstk24.rsa"); C_ptr = taucs_chfact(A); b = rand(size(A,1),1); x0 = taucs_chsolve(C_ptr, b); norm(A*x0 - b) [xn, rn] = rafiter(A, C_ptr, b, x0, verb=%t); norm(A*xn - b) taucs_chdel(C_ptr) | ![]() | ![]() |
Version | Description |
5.5.2 | rafiter was removed after Scilab 5.5.2.
Use x = taucs_chsolve(C_ptr,b,A) instead
(see taucs_chsolve) which do one iterative
refinement step. |