MÉTODO SIMPLEX

Share Embed Donate


Short Description

Download MÉTODO SIMPLEX...

Description

UNIVERSIDAD NACIONAL DE LOJA

Por: Karina Vásquez Maria Belén Novillo Verónica Soto Prof.:

Ing. Luis Chamba. Módulo:

Octavo“B”

% ******** MÉTODO SIMPLEX ******** function varargout = IOSimplex(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @IOSimplex_OpeningFcn, ... 'gui_OutputFcn', @IOSimplex_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end % ******** [x,map]=imread('tux.png','png'); %image(x),colormap(map),axis off,hold off function IOSimplex_OpeningFcn(hObject, eventdata, handles, varargin) %handles--> handles.output=hObject; handles.numVar=2; %variables a utilizar handles.numRest=2; %restricciones del ejercicio handles.tipo=1; % 1=max 2=min guidata(hObject, handles); % ******** function varargout = IOSimplex_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; % ******** function pmTipo_Callback(hObject, eventdata, handles) handles.tipo=get(hObject,'Value'); guidata(hObject,handles); % ******** function pmTipo_CreateFcn(hObject, eventdata, handles)

if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end set(hObject,'String',{'MAX','MIN'}); % ******** function botResolver_Callback(hObject, eventdata, handles) simplex=get(handles.tablaDatos,'Data'); %se inserta las variables de holgura-exceso simplex=[[simplex(:,1:handles.numVar),[eye(handles.numRest);z eros(1,handles.numRest)]],simplex(:,handles.numVar+1)]; orden=size(simplex); base=(zeros(1,handles.numVar)); %se guardan los indices de las variables signo=1; %cambia los signos de la funcion objetivo if handles.tipo==2 signo=-1; end while mean((simplex(orden(1),:)*signo)>=0)~=1 disp(simplex); if handles.tipo==1 [~,y]=min(simplex(orden(1),1:orden(2)-1)); %se obtiene el indice del más negativo de la f. objetivo en 'y' else [~,y]=max(simplex(orden(1),1:orden(2)-1)); %se obtiene el indice del más positivo de la f. objetivo en 'y' end x=1; %guarda el indice de la fila pivote; pivote=simplex(1,orden(2))/simplex(1,y); %se busca la fila pivote, se divide var. sol. para columna 'y' for i=2:(orden(1)-1) if simplex(i,y)>0 aux=simplex(i,orden(2))/simplex(i,y); %se divide var. sol. para columna pivote 'y' if pivote
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF