Está en la página 1de 6

Reporte: Práctica dirigida #8

Funciones especializadas

Sergio Andres Gaspar Llanos - 20132123612


Jeison Javier Ortiz Tamayo – 20122114141

Universidad Surcolombiana
27/05/2015
I. FUNCIONES ESPECIALIZADAS
Esta práctica está orientada al aprendizaje de funciones especiales para permitir el envío de
un número indeterminado de parámetros a una función. Y también el uso de funciones
anónimas para usarlas con un gran conjunto de datos.

II. RESULTADOS
Las evidencias de esta práctica son los algoritmos desarrollados en matlab que se presentan
a continuación.

1.-
% 1. Diseñe una función con un número variable de argumentos de entrada y de
salida, la función realiza las siguientes especificaciones:
%
% Si el argumento de entrada es uno, se debe validar que el argumento sea un
vector y devuelva la función seno para dicho vector.
%
% Si los argumentos de entrada son dos, se debe verificar que cada uno sea un
valor entero, y la función devuelve la suma de estos dos valores.
%
% Si los argumentos de entrado son tres, la función debe verificar que los
argumentos de entrada son vectores y debe devolver la convolución del segundo
vector con el tercero, se debe mostrar en un gráfico el proceso de convolución
de los dos vectores.

function varargout = tall7_eje1 (varargin)

if(nargin==1)
long = length(varargin{1});
if (long>1)
disp('Args de entrada : 1');
vector= varargin{1};
vectorseno = sin(vector);
else
disp('no es un vector')
return;
end
end

if(nargin==2)
n1 = varargin{1};
n2 = varargin{2};
if(isinteger(n1)==true && isinteger(n2)==true)
disp('Args de entrada : 2')
suma=n1+n2;
else
disp('No son enteros');
return;
end
end

if(nargin==3)
vector1 = varargin{1};
vector2 = varargin{2};
vector3 = varargin{3};
longv1 = length(vector1);
longv2 = length(vector2);
longv3 = length(vector3);
if(longv1>0 && longv2>0 && longv2>0)
disp('Args de entrada : 3')
convolucion = conv(vector2,vector3);

else
disp('No son vectores');
end

end

%-------------------
if(nargin==1)
varargout{1}= vectorseno;
end

if(nargin==2)
varargout{1}= suma;
end

if(nargin==3)
varargout{1}= convolucion;
end

end

2.-
%2. Para el integrador del ciclo histéresis, se puede realizar el método
de integración
%rectangular, por ejemplo si se tiene la función f, muestreada a
intervalos h. Para obtener la
%integral desde t1 hasta tn.

%Realice una función que calcule la integral de histéresis, para las


funciones internas, utilice
%funciones anónimas.
%La función principal recibe dos vectores t y f(t).

clear all;
clearvars;
clc;
disp( 'Ciclo de Histeresis, metodo de integracion' );

t=[];
funcion_t=[];
num = input('Ingrese el numero de datos... ');
for (contador=1:num);
fprintf('Ingrese el valor de t %.0f',contador);
t(contador) = input('...');
fprintf('Ingrese el valor de f(t) %.0f',contador);
funcion_t(contador) = input('...');
end

integralhisteresis(t,funcion_t);
figure(1);
plot(t,funcion_t);
title('Integral de Histeresis');
xlabel('t');
ylabel('Funcion_t');
grid on

(Funcion integralhisteresis)
function [Integral_Histeresis]=int_his(t,funcion_t)

h=t(1,2)-t(1,1);
funcion_t(end)=[];
area=@(funcion_t)(sum(funcion_t))*h;

media=@(funcion_t)mean(funcion_t);

Integral_histeresis=area(funcion_t)+media(funcion_t)
3.-
% 3. Utilice funciones inline para calcular la siguiente expresión:
% c = cos(a*pi + b)
% Utilice la función definida con inline para evaluarlo con los valores de
a=[0:0.1:1] y b=[0:0.1:1]
% Grafique c, y a*pi +b, guarde la grafica en la carpeta en un pdf, usando el
comando pwd.

clear all;
clearvars;
clc;

a=[0:0.1:1];
b=[0:0.1:1];
datos=inline('(a*pi+b)','a','b');
x=datos(a,b);
fun=inline('cos(x)','x');
eva_fun=fun(x);

path_sph = [pwd '\'];


figure(1);
str='Grafica1';
plot(a,x);
title('');
xlabel('a');
ylabel('a*pi+b');
grid on
print(gcf,'-dpdf' ,[path_sph,'',str,'.pdf']);

path_sph1 = [pwd '\'];


figure(2);
str1='GraficaCoseno';
plot(b,eva_fun);
title('');
xlabel('b');
ylabel('cos(a*pi+b)');
grid on
print(gcf,'-dpdf' ,[path_sph1,'',str1,'.pdf']);
III. CONCLUSIONES Y OBSERVACIONES
Se puede concluir que matlab es un software muy eficaz gracias a la posibilidad trabajar
con funciones muy útiles para programas complejos y cuando es grande la cantidad de
datos que requieren el mismo tratamiento de una función.

IV. RECURSOS TÉCNICOS


Entre los recursos utilizados se encuentra el software Matlab.

V. REFERENCIAS
Gilat, A. (2014). MATLAB, An Introduction with Applications (5 ed.). Wiley.

Lent, C. S. (2013). Learning to Program with MATLAB (1 ed.). Wiley.

Perez Lopez, C. (2014). MATLAB Matrix Algebra (1 ed.). Apress.