lans_matinv.m

来自「模式识别工具包」· M 代码 · 共 64 行

M
64
字号
%	lans_matinv	- Matrix inverse lemma%%	[theinv]	= lans_matinv(A,v[,invertA])%%	_____OUTPUTS____________________________________________________________%	theinv	inv(A+v*v')					(matrix)%%	_____INPUTS_____________________________________________________________%	A	dxd matrix					(matrix)%	v	dx1 col vector					(col vector)%	invertA	whether to invert A (default 1)		 	(binary)%		useful for iteration%%	_____EXAMPLE____________________________________________________________%	b=rand(1);v=rand(2,3);%	dum = inv(b*eye(2) + v(:,1)*v(:,1)' + v(:,2)*v(:,2)' + v(:,3)*v(:,3)')%%	is approximated by%%	dum	= eye(2)/b;%	for i=1:3;dum=lans_matinv(dum,v(:,i),0);end%%%	_____NOTES______________________________________________________________%	For iteration, A must be inverted (manually) and then%	the rest set to invertA=0%	%	(C) 1999.04.20 Kui-yu Chang%	http://lans.ece.utexas.edu/~kuiyu%	This program is free software; you can redistribute it and/or modify%	it under the terms of the GNU General Public License as published by%	the Free Software Foundation; either version 2 of the License, or%	(at your option) any later version.%%	This program is distributed in the hope that it will be useful,%	but WITHOUT ANY WARRANTY; without even the implied warranty of%	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the%	GNU General Public License for more details.%%	You should have received a copy of the GNU General Public License%	along with this program; if not, write to the Free Software%	Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA%	or check%			http://www.gnu.org/function	[minv]	= lans_matinv(A,v,invertA)if nargin<3	invertA	= 1;endif invertA	Ai	= inv(A);else	Ai	= A;endnum	= (Ai*v)*(v'*Ai);den	= 1+v'*Ai*v;minv	= Ai-num/den; 

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?