Sie sind auf Seite 1von 28

Funciones

Una funcin es un bloque de instrucciones que


realiza una tarea y que devuelve un valor al
procedimiento o funcin que la llama

Sin,

asin, sinh, asinh


Cos, acos, acosh, acosh
Tan, atan, tanh, atanh
Cot, acot
Sec
csc

Funciones predefinidas: trigonom

abs(x)
Sqrt(x)
real, imag
sign(x)
exp, log, log10, log2
min(x), max(x)
sort(x), ordena los elementos del arreglo
sum(x)
num2str(x), convierte en cadena el
nmeroFunciones
x
Otras
str2double(x), convierte en nmero real la
caden

El

espacio de trabajo de una funcin es


independiente del espacio de trabajo base y del
espacio de trabajo de las dems funciones
El comando function permite definir funciones
similares a las ya conocidas, con nombre
propio, argumentos y valores de retorno
Los argumentos de entrada son datos de la
funcin
Los argum de salida o valores de retorno son
resulta
Construccinde
o retor]=nombre_fun(arg
definicin de func
Function[valores
entrada

La

variable se declara dentro de una


funcin y es reconocida solo por esta.
Pertenece al propio espacio de trabajo de
la funcin
En caso haya ms de un parmetro de
entrada o salida, se separarn por comas.
Si no hay valores de retorno se omiten los
corchetes y el signo =. Si slo hay un
valor de retorno no se colocan corchetes

Variable local

Son aquellas variables a las cuales puede


acceder una funcin sin haber sido pasadas
como argumentos. La variable se debe declarar
tanto en el programa principal como en las
distintas funciones que deben acceder a su
valor
1 function [y]=f(x)
2 y = 2*x^3 + 8;
Guardar la funcin como archivo f.m
Para evaluar la funcin en x=3 se escribe en la
global
vVariable
de c
>> f (3)

Dado

x=[1 2 3 4 5 6]. Calcular la media y la


desviacin tpica de sus valores:
1 function [M,S]=media_desv(x)
2 N=length(x);
3 M=sum(x)/n;
4 S=sqrt((sum(x.^2/n)-M^2));
Guardar la funcin como media_desv.m

Funcin que devuelve varias


variables

Crear una funcin llamada


function estadistica

estadistica:

A=input(ingresa el vector de valores:)


n=length(A);
Med=sum(A)/n
des=abs(Med-A);
Desm=sum(des)/n
descu=des.*des; Var=sum(descu)/n
desvT=sqrt(Var)
CV=desvT/Med*100

Otra forma de devolver variables

>>estadistica
Ingresa el vector
A=

123456
Med=
3.5
Desm =
1.5
Var =
2.9167

ejemplo

de valores: [1 2 3 4 5 6]

Los

archivos m pueden contener cdigo


para ms de una funcin. A la funcin
principal se le llama funcin primaria, que
es la funcin que invoca el archivo m
Las otras funciones secundarias son
llamadas subfunciones

Subfunciones

function[MEDIA,MEDIANA]=estadisticasub(u)
n=length(u);
MEDIA=media(u,n);
MEDIANA=mediana(u,n);
function a=media(v,n);
a=sum(v)/n;
function m=mediana(v,n)
w=sort(v);
If rem(n,2)==1
m=w((n+1)/2);
else
m=(w(n/2)+w(n/2+1))/2;
end
>>[media, mediana]=estadisticasub([6 5 1 2 3])

Ej. Crear una func que calcule


la Media y la mediana
utilizando subfunciones

El

Tipo de Dato: Manipulador de Funcin


(FUNCION HANDLE)
Un manipulador de funcin es un valor
MATLAB que provee una forma de llamada
indirecta a una funcin.
Se puede pasar manipuladores de funcin
en la llamada a otras funciones para que
ste haga referencia a una funcin
especfica de entre varias (funcin de
funciones)
Tambin puede ser utilizado en
estructuras de datos para un uso posterior

Creacin de referencias a
funciones

Sintaxis: fhandle=@nombrefuncin
>> f1=@sin
f1=
@sin
>>y=f1(pi/2)
y=
1
>>f1=@exp
f1=
@exp
>>y=f1(1)
y=
2.71828

Construccin de un manipulador

sintaxis:
Ej.- crear

fhandle=@(lista de variables)
una funcin sqr que calcule el
cuadrado de un nmero
>>sqr=@(x) x.^2;
>>y=sqr(3)
y=

9
Ej.- crear una funcin hipot que determine el
valor de la hipotenusa de un tringulo rectngulo
>>hipot=@(x,y) sqrt(x.^2+y.^2);
>>c=hipot(3,4)

Manipuladores a funcs
personalizadas

>>tiempo=@()

datestr(now);
>>ahora=tiempo()
ahora=

16 - apr 2014 20:22:05

Ej. Crear una func tiempo que


obtenga el valor de la fecha y
hora actual

Estas

funciones reciben como argumentos


de entrada manipuladores a funcin para
particularizar sus clculos con la funcin
referenciada
Ej.- si f1(x)=1/(x 2x -5); f2(x)=exp(x) cos(x)
Calcular las integrales de f1 en [0,2] y de
f2 en [0,pi]

Funciones que utilizan


manipuladores de funciones

Sintaxis.- q=quad(fhandle,a,b)
Se crean los archivos de las funciones

f2
function [y] = f1(x)
Y=1./(x.^3-2*x-5);
end
>>I1=quad(@f1,0,2)
Function y = f2(x)
Y=exp(-x).*cos(x);
>>

Funcin integracin quad

f1,

eval(f)
fplot(f,[a,b]) grafica la funcin en [a,b]
fzero(f,a) calcula los ceros de la funcin
trapz(x,f) calcula el rea de la regin def

x
>> f4=4-x.*x
>>X:0:2
>>Eval(f4)
>>fplot(f4,[0,2])
>>z=fzeros(f4,1)

por

Tareas sobre Funciones reales

Plot(x,y)

dibuja los puntos (x,y) en plano

carte
Bar(x,y) grafica barras verticales, y es
frecuenc
Barh(x,y) grafica barras horizontales x es
frecu
Stem(x,y) grafica bastones verticales y es
frecu
Stairs(x,y) grafica escalonadamente curva
Polar(x,y) dibuja curva en coordenadas
polare
Pie(x) grafica sectores relativos a x
Rose(x) dibuja el histograma angular

Grficas de funciones en el plano

>>

x=-1:0.1:5;
>>y=sin(x.*x);
>>plot(x,y)
>>x=-3:0.2:5
>>y=exp(-x.^2);
>>bar(x,y);

Ejemplos de grficas

>>x=0:0.2:10;
>>y=sin(x);
>>stair(x,y);
T=0:0.1:2*pi;
>>y=abs(sin(2*t).*cos(2*t);
>>polar(t,y);

Otros ejemplos

>>x=0:0.05:5;
>>y=sin(x);
>>z=cos(x);
>>plot(x,y,x,z);

Grfica de mltiples curvas

xlabel
ylabel
xlabel(X);
ylabel(Y);
grid:

grafica regillas
title
coloca ttulo a la grfica
title(Grfica de la funcin);

Etiquetas para Ejes y otros


aspectos

Plot3(x,y,z) dibuja puntos (x,y,z)


Fill3(x,y,z,c) dibuja regin poligonal con color c
Meshgrid(x,y) crea arreglos para grafic z=f(x,y)
Mesh(x,y,z) grafica la superficie explita z=f(x,y)
Meshc(x,y,z) grafica z=f(x,y) proyect curvas niv
Meshz(x,y,z) graf z=f(x,y) cerrando graf con fro
Surf(x,y,z) grafica z=f(x,y) pintando celdas
Surfc(x,y,z)
Surfi(x,y,z) grafica con iluminacin
Waterfall(x,y,z)
Contour(x,y,z) grafica curvas de nivel de

z=f(x,y)

Grfica de superficies

>>t=-6:0.2:8;
>>x=t;
>>y=3-t;
>>z=cos(t);
>Plot3(x,y,z);
>>t=-6:0.2:8;
>>x=t;
>>y=3-t;
>>z=cos(t);c=[1
fill3(x,y,z,c);

Ejemplos

0.8 0.1];

>>[x,y]=meshgrid(-2:0.2:2);
>>z=x.*exp(-x.^2-y.^2);
>>mesh(x,y,z);
>>xlabel(X);ylabel(Y);zlabel(Z);

Ej.- grfica exponencial

>>[x,y]=meshgrid(-2:0.2:2);
>>z=x.^2+y.^2;
>>meshc(x,y,z);
>>xlabel(X);ylabel(Y);zlabel(Z);

Ej.- Paraboloide

Bar3(x,y)
Comet3(x,y,z)
Sphere
Cilinder(f)
Stem3(x,y,z)
Pie3(x)
Ribbon(y,z,c)
Quiver3(x,y,z,u,v,w,c)

Superficies especiales

Das könnte Ihnen auch gefallen