📄 lusolve.m
字号:
function x = lusolve(A,b,Pcol)% LUSOLVE : Solve linear systems by supernodal LU factorization.% % x = lusolve(A, b) returns the solution to the linear system A*x = b,% using a supernodal LU factorization that is faster than Matlab's % builtin LU. This m-file just calls a mex routine to do the work.%% By default, A is preordered by column minimum degree before factorization.% Optionally, the user can supply a desired column ordering:%% x = lusolve(A, b, pcol) uses pcol as a column permutation. % It still returns x = A\b, but it factors A(:,pcol) (if pcol is a % permutation vector) or A*Pcol (if Pcol is a permutation matrix).% % x = lusolve(A, b, 0) suppresses the default minimum degree ordering;% that is, it forces the identity permutation on columns.%% See also SUPERLU.%% John Gilbert, 6 April 1995% Copyright (c) 1995 by Xerox Corporation. All rights reserved.% HELP COPYRIGHT for complete copyright and licensing notice.[m,n] = size(A);if m ~= n error('matrix must be square'); end;[mb,nb] = size(b);if mb ~= n error('right-hand side must have same row dimension as matrix');end;if n == 0 x = []; return;end;% As necessary, compute the column permutation, and% convert it from a permutation vector to a permutation matrix% to fit the internal data structures of mexlusolve.if nargin < 3 Pcol = colmmd(A);end;if isempty(Pcol) | Pcol == 0 Pcol = speye(n); end;if min(size(Pcol)) == 1 Pcol = sparse(1:n,Pcol,1,n,n);end;% Make sure the matrices are sparse and the vector is full.if ~issparse(A) A = sparse(A);end;if issparse(b) b = full(b);end;if ~issparse(Pcol) Pcol = sparse(Pcol);end;x = mexlusolve(A,b,Pcol);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -