No BSD License  

Highlights from
Gauss Triangularization Method

image thumbnail
from Gauss Triangularization Method by Anthony Zaganas
The vector of pivot elements during LU is formed for special matrices and equivalent ones.

multipliers(varargin)
function A = multipliers(varargin)
% MULTIPLIERS Application M-file for multipliers.fig
%    FIG = MULTIPLIERS launch multipliers GUI.
%    MULTIPLIERS('callback_name', ...) invoke the named callback.

% Last Modified by GUIDE v2.0 21-Jul-2002 02:16:11


if nargin == 0  % LAUNCH GUI

	fig = openfig(mfilename,'reuse');
    movegui(fig,'center');
    


	% Generate a structure of handles to pass to callbacks, and store it. 
	handles = guihandles(fig);
    
    handles.a=0;
    handles.b=1;
    handles.c=1;
    handles.d=1;
    handles.e=1;
    handles.f=0;
    handles.g=1;
    handles.h=1;
    handles.x=1;
    handles.array1=[ handles.a  handles.b  handles.c  handles.e  handles.d  handles.f  handles.h  handles.g  handles.x -handles.x  handles.x  handles.x -handles.x -handles.x  handles.x -handles.x ;
                    -handles.b  handles.a  handles.e -handles.c  handles.f -handles.d  handles.g -handles.h -handles.x -handles.x  handles.x -handles.x -handles.x  handles.x -handles.x -handles.x ;
                    -handles.c -handles.e  handles.a  handles.b  handles.h -handles.g -handles.d  handles.f  handles.x -handles.x -handles.x -handles.x  handles.x  handles.x  handles.x -handles.x ;
                    -handles.e  handles.c -handles.b  handles.a -handles.g -handles.h  handles.f  handles.d -handles.x -handles.x -handles.x  handles.x  handles.x -handles.x -handles.x -handles.x ;
                    -handles.d -handles.f -handles.h  handles.g  handles.a  handles.b  handles.c -handles.e -handles.x  handles.x -handles.x -handles.x -handles.x -handles.x  handles.x -handles.x ;
                    -handles.f  handles.d  handles.g  handles.h -handles.b  handles.a -handles.e -handles.c  handles.x  handles.x -handles.x  handles.x -handles.x  handles.x -handles.x -handles.x ;
                    -handles.h -handles.g  handles.d -handles.f -handles.c  handles.e  handles.a  handles.b -handles.x  handles.x  handles.x  handles.x  handles.x  handles.x  handles.x -handles.x ;
                    -handles.g  handles.h -handles.f -handles.d  handles.e  handles.c -handles.b  handles.a  handles.x  handles.x  handles.x -handles.x  handles.x -handles.x -handles.x -handles.x ;
                    -handles.x  handles.x -handles.x  handles.x  handles.x -handles.x  handles.x -handles.x  handles.a  handles.b  handles.c  handles.g  handles.d  handles.e  handles.f  handles.h ;
                     handles.x  handles.x  handles.x  handles.x -handles.x -handles.x -handles.x -handles.x -handles.b  handles.a  handles.g -handles.c  handles.e -handles.d  handles.h -handles.f ;
                    -handles.x -handles.x  handles.x  handles.x  handles.x  handles.x -handles.x -handles.x -handles.c -handles.g  handles.a  handles.b  handles.f -handles.h -handles.d  handles.e ;
                    -handles.x  handles.x  handles.x -handles.x  handles.x -handles.x -handles.x  handles.x -handles.g  handles.c -handles.b  handles.a -handles.h -handles.f  handles.e  handles.d ;
                     handles.x  handles.x -handles.x -handles.x  handles.x  handles.x -handles.x -handles.x -handles.d -handles.e -handles.f  handles.h  handles.a  handles.b  handles.c -handles.g ;
                     handles.x -handles.x -handles.x  handles.x  handles.x -handles.x -handles.x  handles.x -handles.e  handles.d  handles.h  handles.f -handles.b  handles.a -handles.g -handles.c ;
                    -handles.x  handles.x -handles.x  handles.x -handles.x  handles.x -handles.x  handles.x -handles.f -handles.h  handles.d -handles.e -handles.c  handles.g  handles.a  handles.b ;
                     handles.x  handles.x  handles.x  handles.x  handles.x  handles.x  handles.x  handles.x -handles.h  handles.f -handles.e -handles.d  handles.g  handles.c -handles.b  handles.a ];
    handles.array_backup=handles.array1;
    guidata(fig, handles);

    W1_string=int2str(handles.array1);
    set(handles.txtFirstDesign,'String',W1_string);
    


	% Wait for callbacks to run and window to be dismissed:
	uiwait(fig);
    
    if ~ishandle(fig)
        A=0;
    else
        handles=guidata(fig);
        A=handles.array1;
        delete(fig);
    end
    
    %if nargout > 0
	%	varargout{1} = fig;
    %end
    
  

elseif ischar(varargin{1}) % INVOKE NAMED SUBFUNCTION OR CALLBACK

	try
		[varargout{1:nargout}] = feval(varargin{:}); % FEVAL switchyard
	catch
		disp(lasterr);
	end
end


%| ABOUT CALLBACKS:
%| GUIDE automatically appends subfunction prototypes to this file, and 
%| sets objects' callback properties to call them through the FEVAL 
%| switchyard above. This comment describes that mechanism.
%|
%| Each callback subfunction declaration has the following form:
%| <SUBFUNCTION_NAME>(H, EVENTDATA, HANDLES, VARARGIN)
%|
%| The subfunction name is composed using the object's Tag and the 
%| callback type separated by '_', e.g. 'slider2_Callback',
%| 'figure1_CloseRequestFcn', 'axis1_ButtondownFcn'.
%|
%| H is the callback object's handle (obtained using GCBO).
%|
%| EVENTDATA is empty, but reserved for future use.
%|
%| HANDLES is a structure containing handles of components in GUI using
%| tags as fieldnames, e.g. handles.figure1, handles.slider2. This
%| structure is created at GUI startup using GUIHANDLES and stored in
%| the figure's application data using GUIDATA. A copy of the structure
%| is passed to each callback.  You can store additional information in
%| this structure at GUI startup, and you can change the structure
%| during callbacks.  Call guidata(h, handles) after changing your
%| copy to replace the stored original so that subsequent callbacks see
%| the updates. Type "help guihandles" and "help guidata" for more
%| information.
%|
%| VARARGIN contains any extra arguments you have passed to the
%| callback. Specify the extra arguments by editing the callback
%| property in the inspector. By default, GUIDE sets the property to:
%| <MFILENAME>('<SUBFUNCTION_NAME>', gcbo, [], guidata(gcbo))
%| Add any extra arguments after the last argument, before the final
%| closing parenthesis.


% --------------------------------------------------------------------
function varargout = sldA_Callback(h, eventdata, handles, varargin)
a=get(handles.sldA,'Value');
handles.a=a;
guidata(gcbo,handles);
set(handles.edtA,'String',a);
RefreshArray(gcbo,[],guidata(gcbo));
RefreshString(gcbo,[],guidata(gcbo));

% --------------------------------------------------------------------
function varargout = sldB_Callback(h, eventdata, handles, varargin)
global A;
b=get(handles.sldB,'Value');
handles.b=b;
guidata(gcbo,handles);
set(handles.edtB,'String',b);
RefreshArray(gcbo,[],guidata(gcbo));
RefreshString(gcbo,[],guidata(gcbo));

% --------------------------------------------------------------------
function varargout = sldC_Callback(h, eventdata, handles, varargin)
c=get(handles.sldC,'Value');
handles.c=c;
guidata(gcbo,handles);
set(handles.edtC,'String',c);
RefreshArray(gcbo,[],guidata(gcbo));
RefreshString(gcbo,[],guidata(gcbo));

% --------------------------------------------------------------------
function varargout = sldD_Callback(h, eventdata, handles, varargin)
d=get(handles.sldD,'Value');
handles.d=d;
guidata(gcbo,handles);
set(handles.edtD,'String',d);
RefreshArray(gcbo,[],guidata(gcbo));
RefreshString(gcbo,[],guidata(gcbo));

% --------------------------------------------------------------------
function varargout = sldE_Callback(h, eventdata, handles, varargin)
e=get(handles.sldE,'Value');
handles.e=e;
guidata(gcbo,handles);
set(handles.edtE,'String',e);
RefreshArray(gcbo,[],guidata(gcbo));
RefreshString(gcbo,[],guidata(gcbo));

% --------------------------------------------------------------------
function varargout = sldF_Callback(h, eventdata, handles, varargin)
f=get(handles.sldF,'Value');
handles.f=f;
guidata(gcbo,handles);
set(handles.edtF,'String',f);
RefreshArray(gcbo,[],guidata(gcbo));
RefreshString(gcbo,[],guidata(gcbo));

% --------------------------------------------------------------------
function varargout = sldG_Callback(h, eventdata, handles, varargin)
g=get(handles.sldG,'Value');
handles.g=g;
guidata(gcbo,handles);
set(handles.edtG,'String',g);
RefreshArray(gcbo,[],guidata(gcbo));
RefreshString(gcbo,[],guidata(gcbo));

% --------------------------------------------------------------------
function varargout = sldH_Callback(h, eventdata, handles, varargin)
h=get(handles.sldH,'Value');
handles.h=h;
guidata(gcbo,handles);
set(handles.edtH,'String',h);
RefreshArray(gcbo,[],guidata(gcbo));
RefreshString(gcbo,[],guidata(gcbo));

% --------------------------------------------------------------------
function varargout = sldX_Callback(h, eventdata, handles, varargin)
x=get(handles.sldX,'Value');
handles.x=x;
guidata(gcbo,handles);
set(handles.edtX,'String',x);
RefreshArray(gcbo,[],guidata(gcbo));
RefreshString(gcbo,[],guidata(gcbo));







function varargout = RefreshArray(h, eventdata, handles, varargin)
if get(handles.rdbFirstDesign,'Value')==1
handles.array1=[ handles.a  handles.b  handles.c  handles.e  handles.d  handles.f  handles.h  handles.g  handles.x -handles.x  handles.x  handles.x -handles.x -handles.x  handles.x -handles.x ;
                -handles.b  handles.a  handles.e -handles.c  handles.f -handles.d  handles.g -handles.h -handles.x -handles.x  handles.x -handles.x -handles.x  handles.x -handles.x -handles.x ;
                -handles.c -handles.e  handles.a  handles.b  handles.h -handles.g -handles.d  handles.f  handles.x -handles.x -handles.x -handles.x  handles.x  handles.x  handles.x -handles.x ;
                -handles.e  handles.c -handles.b  handles.a -handles.g -handles.h  handles.f  handles.d -handles.x -handles.x -handles.x  handles.x  handles.x -handles.x -handles.x -handles.x ;
                -handles.d -handles.f -handles.h  handles.g  handles.a  handles.b  handles.c -handles.e -handles.x  handles.x -handles.x -handles.x -handles.x -handles.x  handles.x -handles.x ;
                -handles.f  handles.d  handles.g  handles.h -handles.b  handles.a -handles.e -handles.c  handles.x  handles.x -handles.x  handles.x -handles.x  handles.x -handles.x -handles.x ;
                -handles.h -handles.g  handles.d -handles.f -handles.c  handles.e  handles.a  handles.b -handles.x  handles.x  handles.x  handles.x  handles.x  handles.x  handles.x -handles.x ;
                -handles.g  handles.h -handles.f -handles.d  handles.e  handles.c -handles.b  handles.a  handles.x  handles.x  handles.x -handles.x  handles.x -handles.x -handles.x -handles.x ;
                -handles.x  handles.x -handles.x  handles.x  handles.x -handles.x  handles.x -handles.x  handles.a  handles.b  handles.c  handles.g  handles.d  handles.e  handles.f  handles.h ;
                 handles.x  handles.x  handles.x  handles.x -handles.x -handles.x -handles.x -handles.x -handles.b  handles.a  handles.g -handles.c  handles.e -handles.d  handles.h -handles.f ;
                -handles.x -handles.x  handles.x  handles.x  handles.x  handles.x -handles.x -handles.x -handles.c -handles.g  handles.a  handles.b  handles.f -handles.h -handles.d  handles.e ;
                -handles.x  handles.x  handles.x -handles.x  handles.x -handles.x -handles.x  handles.x -handles.g  handles.c -handles.b  handles.a -handles.h -handles.f  handles.e  handles.d ;
                 handles.x  handles.x -handles.x -handles.x  handles.x  handles.x -handles.x -handles.x -handles.d -handles.e -handles.f  handles.h  handles.a  handles.b  handles.c -handles.g ;
                 handles.x -handles.x -handles.x  handles.x  handles.x -handles.x -handles.x  handles.x -handles.e  handles.d  handles.h  handles.f -handles.b  handles.a -handles.g -handles.c ;
                -handles.x  handles.x -handles.x  handles.x -handles.x  handles.x -handles.x  handles.x -handles.f -handles.h  handles.d -handles.e -handles.c  handles.g  handles.a  handles.b ;
                 handles.x  handles.x  handles.x  handles.x  handles.x  handles.x  handles.x  handles.x -handles.h  handles.f -handles.e -handles.d  handles.g  handles.c -handles.b  handles.a ];
elseif get(handles.rdbSecondDesign,'Value')==1
handles.array1=[ handles.a  handles.b  handles.c  handles.e  handles.d  0 -handles.f  0  handles.g  handles.h  handles.h  handles.g -handles.h -handles.g  handles.g  handles.h
                -handles.b  handles.a  handles.e -handles.c  0 -handles.d  0  handles.f  handles.h -handles.g  handles.g -handles.h -handles.g  handles.h  handles.h -handles.g
                -handles.c -handles.e  handles.a  handles.b -handles.f  0 -handles.d  0  handles.h -handles.g -handles.g  handles.h  handles.g -handles.h  handles.h -handles.g
                -handles.e  handles.c -handles.b  handles.a  0  handles.f  0  handles.d -handles.g -handles.h  handles.h  handles.g -handles.h -handles.g -handles.g -handles.h
                -handles.d  0  handles.f  0  handles.a  handles.b  handles.c -handles.e -handles.h  handles.g -handles.g  handles.h -handles.g  handles.h  handles.h -handles.g
                 0  handles.d  0 -handles.f -handles.b  handles.a -handles.e -handles.c  handles.g  handles.h  handles.h  handles.g  handles.h  handles.g -handles.g -handles.h
                 handles.f  0  handles.d  0 -handles.c  handles.e  handles.a  handles.b -handles.g -handles.h  handles.h  handles.g  handles.h  handles.g  handles.g  handles.h
                 0 -handles.f  0 -handles.d  handles.e  handles.c -handles.b  handles.a -handles.h  handles.g  handles.g -handles.h  handles.g -handles.h  handles.h -handles.g
                -handles.g -handles.h -handles.h  handles.g  handles.h -handles.g  handles.g  handles.h  handles.a  handles.b  handles.c  handles.f  handles.d  handles.e  0  0
                -handles.h  handles.g  handles.g  handles.h -handles.g -handles.h  handles.h -handles.g -handles.b  handles.a  handles.f -handles.c  handles.e -handles.d  0  0
                -handles.h -handles.g  handles.g -handles.h  handles.g -handles.h -handles.h -handles.g -handles.c -handles.f  handles.a  handles.b  0  0 -handles.d  handles.e
                -handles.g  handles.h -handles.h -handles.g -handles.h -handles.g -handles.g  handles.h -handles.f  handles.c -handles.b  handles.a  0  0  handles.e  handles.d
                 handles.h  handles.g -handles.g  handles.h  handles.g -handles.h -handles.h -handles.g -handles.d -handles.e  0  0  handles.a  handles.b  handles.c -handles.f
                 handles.g -handles.h  handles.h  handles.g -handles.h -handles.g -handles.g  handles.h -handles.e  handles.d  0  0 -handles.b  handles.a -handles.f -handles.c
                -handles.g -handles.h -handles.h  handles.g -handles.h  handles.g -handles.g -handles.h  0  0  handles.d -handles.e -handles.c  handles.f  handles.a  handles.b
                -handles.h  handles.g  handles.g  handles.h  handles.g  handles.h -handles.h  handles.g  0  0 -handles.e -handles.d  handles.f  handles.c -handles.b  handles.a ];
else
handles.array1=[ handles.e  handles.e  handles.a  handles.c  handles.b  handles.d  0  0  handles.f  handles.g  handles.h  handles.x  handles.g -handles.f  handles.x -handles.h ;
                -handles.e  handles.e  handles.c -handles.a  handles.d -handles.b  0  0  handles.g -handles.f -handles.x  handles.h -handles.f -handles.g  handles.h  handles.x ;
                -handles.a -handles.c  handles.e  handles.e  0  0 -handles.b  handles.d  handles.x  handles.h -handles.f  handles.g -handles.h  handles.x -handles.g -handles.f ;
                -handles.c  handles.a -handles.e  handles.e  0  0  handles.d  handles.b -handles.h  handles.x  handles.g  handles.f -handles.x -handles.h -handles.f  handles.g ;
                -handles.b -handles.d  0  0  handles.e  handles.e  handles.a -handles.c  handles.g  handles.f  handles.h -handles.x -handles.f  handles.g  handles.x  handles.h ;
                -handles.d  handles.b  0  0 -handles.e  handles.e -handles.c -handles.a  handles.f -handles.g  handles.x  handles.h  handles.g  handles.f -handles.h  handles.x ;
                 0  0  handles.b -handles.d -handles.a  handles.c  handles.e  handles.e -handles.x  handles.h -handles.g  handles.f  handles.h  handles.x  handles.f  handles.g ;
                 0  0 -handles.d -handles.b  handles.c  handles.a -handles.e  handles.e -handles.h -handles.x  handles.f  handles.g -handles.x  handles.h  handles.g -handles.f ;
                -handles.f -handles.g -handles.h -handles.x -handles.g -handles.f -handles.h  handles.x  handles.e  handles.e  handles.a  0  handles.b -handles.d  handles.c  0 ;
                -handles.g  handles.f  handles.x -handles.h -handles.f  handles.g -handles.x -handles.h -handles.e  handles.e  0 -handles.a -handles.d -handles.b  0 -handles.c ;
                -handles.x -handles.h  handles.f -handles.g  handles.x -handles.h  handles.g -handles.f -handles.a  0  handles.e  handles.e  handles.c  0 -handles.b -handles.d ;
                 handles.h -handles.x -handles.g -handles.f  handles.h  handles.x -handles.f -handles.g  0  handles.a -handles.e  handles.e  0 -handles.c -handles.d  handles.b ;
                -handles.g  handles.f -handles.x  handles.h  handles.f -handles.g -handles.x -handles.h -handles.b  handles.d -handles.c  0  handles.e  handles.e  handles.a  0 ;
                 handles.f  handles.g -handles.h -handles.x -handles.g -handles.f  handles.h -handles.x  handles.d  handles.b  0  handles.c -handles.e  handles.e  0 -handles.a ;
                 handles.h -handles.x  handles.g  handles.f -handles.h -handles.x -handles.f -handles.g -handles.c  0  handles.b  handles.d -handles.a  0  handles.e  handles.e ;
                 handles.x  handles.h  handles.f -handles.g  handles.x -handles.h -handles.g  handles.f  0  handles.c  handles.d -handles.b  0  handles.a -handles.e  handles.e ];

end
guidata(gcbo,handles);

function varargout = RefreshString(h, eventdata, handles, varargin)
W1_string=int2str(handles.array1);
if get(handles.rdbFirstDesign,'Value')==1
    set(handles.txtFirstDesign,'String',W1_string);
    set(handles.txtSecondDesign,'String','');
    set(handles.txtThirdDesign,'String','');
elseif get(handles.rdbSecondDesign,'Value')==1
    set(handles.txtFirstDesign,'String','');
    set(handles.txtSecondDesign,'String',W1_string);
    set(handles.txtThirdDesign,'String','');
else
    set(handles.txtFirstDesign,'String','');
    set(handles.txtSecondDesign,'String','');
    set(handles.txtThirdDesign,'String',W1_string);
end


% --------------------------------------------------------------------
function varargout = rdbFirstDesign_Callback(h, eventdata, handles, varargin)
off1=handles.rdbSecondDesign;
off2=handles.rdbThirdDesign;
mutual_exclude(off1);
mutual_exclude(off2);
off=handles.rdbFirstDesign;
self_exclude(off);
set(handles.sldX,'Enable','off');
set(handles.edtX,'Enable','off');
RefreshArray(gcbo,[],guidata(gcbo));
RefreshString(gcbo,[],guidata(gcbo));

function varargout = rdbSecondDesign_Callback(h, eventdata, handles, varargin)
off1=handles.rdbFirstDesign;
off2=handles.rdbThirdDesign;
mutual_exclude(off1);
mutual_exclude(off2);
off=handles.rdbSecondDesign;
self_exclude(off);
set(handles.sldX,'Enable','off');
set(handles.edtX,'Enable','off');
RefreshArray(gcbo,[],guidata(gcbo));
RefreshString(gcbo,[],guidata(gcbo));

function varargout = rdbThirdDesign_Callback(h, eventdata, handles, varargin)
off1=handles.rdbFirstDesign;
off2=handles.rdbSecondDesign;
mutual_exclude(off1);
mutual_exclude(off2);
off=handles.rdbThirdDesign;
self_exclude(off);
set(handles.sldX,'Enable','on');
set(handles.edtX,'Enable','on');
RefreshArray(gcbo,[],guidata(gcbo));
RefreshString(gcbo,[],guidata(gcbo));

function mutual_exclude(off)
set(off,'Value',0);

function self_exclude(off)
off_value=get(off,'Value');
if off_value==0
    set(off,'Value',1);
end


% --------------------------------------------------------------------
function varargout = btnDone_Callback(h, eventdata, handles, varargin)
W=handles.array1;
if W*W'==14*eye(16)
    uiresume(handles.figure1);
else
    msgbox({'This is not a valid W(n-2,n)matrix.','Check the element values'},'Error!','help','','','modal');
end

% --------------------------------------------------------------------
function varargout = btnCancel_Callback(h, eventdata, handles, varargin)
handles.array1=0;
guidata(gcbo,handles);
uiresume(handles.figure1);

% --------------------------------------------------------------------
function varargout = psbReset_Callback(h, eventdata, handles, varargin)
handles.array1=handles.array_backup;
handles.a=0;
handles.b=1;
handles.c=1;
handles.d=1;
handles.e=1;
handles.f=0;
handles.g=1;
handles.h=1;
handles.x=1;
guidata(gcbo,handles);
rdbFirstDesign_Callback(h, eventdata, handles);
set(handles.sldA,'Value',0);
set(handles.edtA,'String','0');
set(handles.sldB,'Value',1);
set(handles.edtB,'String','1');
set(handles.sldC,'Value',1);
set(handles.edtC,'String','1');
set(handles.sldD,'Value',1);
set(handles.edtD,'String','1');
set(handles.sldE,'Value',1);
set(handles.edtE,'String','1');
set(handles.sldF,'Value',0);
set(handles.edtF,'String','0');
set(handles.sldG,'Value',1);
set(handles.edtG,'String','1');
set(handles.sldH,'Value',1);
set(handles.edtH,'String','1');
set(handles.sldX,'Value',1);
set(handles.edtX,'String','1');



Contact us at files@mathworks.com