Plots the sensitivity of ILUDP for A.
spilu_iludpplot(A) data = spilu_iludpplot(A) data = spilu_iludpplot(A,N) [data,hAlpha] = spilu_iludplot(...) [data,hAlpha,hDrop] = spilu_iludplot(...) [data,hAlpha,hDrop,hPermtol] = spilu_iludplot(...) [data,hAlpha,hDrop,hPermtol,hBloc] = spilu_iludplot(...)
a n-by-n sparse matrix
a 1-by-1 matrix of doubles, integer value, the number of points in the plot (default N = 100)
a N-by-12 matrix of doubles, the values of the parameters
a graphics handle, the alpha plot
a graphics handle, the drop plot
a graphics handle, the permtol plot
a graphics handle, the bloc plot
For one particular matrix, plot norm(P*A-L*U)/norm(A) and nnz(L)+nnz(U), depending on alpha, drop, permtol and bloc for the ILUDP method.
The columns of the array data are:
data(:,1) : the values of alpha
data(:,2) : the values of norm(P*A-L*U)/norm(A) with respect to alpha
data(:,3) : the values of nnz(L)+nnz(U) with respect to alpha
data(:,4) : the values of drop
data(:,5) : the values of norm(P*A-L*U)/norm(A) with respect to drop
data(:,6) : the values of nnz(L)+nnz(U) with respect to drop
data(:,7) : the values of permtol
data(:,8) : the values of norm(P*A-L*U)/norm(A) with respect to permtol
data(:,9) : the values of nnz(L)+nnz(U) with respect to permtol
data(:,10) : the values of bloc
data(:,11) : the values of norm(P*A-L*U)/norm(A) with respect to bloc
data(:,12) : the values of nnz(L)+nnz(U) with respect to bloc
If the decomposition does not work for one value of the parameter, then norm(A-L*U)/norm(A) and nnz(L)+nnz(U) are set to Infinity.
A = [ 30. 8. 7. 0. 0. 8. 18. 0. 0. -1. 7. 0. 14. 0. 0. 0. 0. 0. 1. 0. 0. -1. 0. 0. 2. ]; A = sparse(A); spilu_iludpplot(A); // See on a 225-by-225 sparse matrix path = spilu_getpath ( ); filename = fullfile(path,"tests","matrices","pde225.mtx"); A=mmread(filename); [data,hAlpha,hDrop,hPermtol,hBloc] = spilu_iludpplot(A); | ![]() | ![]() |