funciones

28
Funciones Funciones Una función es un bloque de instrucciones que realiza una tarea y que devuelve un valor al procedimiento o función que la llama

Upload: juanwillhuanacuni

Post on 26-Sep-2015

218 views

Category:

Documents


0 download

DESCRIPTION

h

TRANSCRIPT

  • Funciones Una funcin es un bloque de instrucciones que realiza una tarea y que devuelve un valor al procedimiento o funcin que la llama

  • Funciones predefinidas: trigonomSin, asin, sinh, asinhCos, acos, acosh, acoshTan, atan, tanh, atanhCot, acotSeccsc

  • Otras Funcionesabs(x)Sqrt(x)real, imagsign(x)exp, log, log10, log2min(x), max(x)sort(x), ordena los elementos del arreglosum(x)num2str(x), convierte en cadena el nmero x str2double(x), convierte en nmero real la caden

  • Construccin o definicin de func El espacio de trabajo de una funcin es independiente del espacio de trabajo base y del espacio de trabajo de las dems funcionesEl comando function permite definir funciones similares a las ya conocidas, con nombre propio, argumentos y valores de retornoLos argumentos de entrada son datos de la funcinLos argum de salida o valores de retorno son resultaFunction[valores de retor]=nombre_fun(arg entrada

  • Variable localLa variable se declara dentro de una funcin y es reconocida solo por esta. Pertenece al propio espacio de trabajo de la funcinEn 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 globalSon 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 valor1function [y]=f(x)2 y = 2*x^3 + 8;Guardar la funcin como archivo f.mPara evaluar la funcin en x=3 se escribe en la v de c>> f (3)

  • Funcin que devuelve varias variablesDado x=[1 2 3 4 5 6]. Calcular la media y la desviacin tpica de sus valores:1 function [M,S]=media_desv(x)2N=length(x);3M=sum(x)/n;4S=sqrt((sum(x.^2/n)-M^2));Guardar la funcin como media_desv.m

  • Otra forma de devolver variablesCrear una funcin llamada estadistica:function estadisticaA=input(ingresa el vector de valores:)n=length(A);Med=sum(A)/ndes=abs(Med-A);Desm=sum(des)/ndescu=des.*des; Var=sum(descu)/ndesvT=sqrt(Var)CV=desvT/Med*100

  • ejemplo>>estadisticaIngresa el vector de valores: [1 2 3 4 5 6]A= 1 2 3 4 5 6Med= 3.5 Desm = 1.5Var = 2.9167

  • SubfuncionesLos 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 mLas otras funciones secundarias son llamadas subfunciones

  • Ej. Crear una func que calcule la Media y la mediana utilizando subfuncionesfunction[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)==1m=w((n+1)/2);elsem=(w(n/2)+w(n/2+1))/2;end>>[media, mediana]=estadisticasub([6 5 1 2 3])

  • Creacin de referencias a funcionesEl 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

  • Construccin de un manipuladorSintaxis: fhandle=@nombrefuncin>> f1=@sinf1= @sin>>y=f1(pi/2)y= 1>>f1=@expf1= @exp>>y=f1(1)y= 2.71828

  • Manipuladores a funcs personalizadassintaxis: fhandle=@(lista de variables)Ej.- crear una funcin sqr que calcule el cuadrado de un nmero>>sqr=@(x) x.^2;>>y=sqr(3)y= 9Ej.- 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)

  • Ej. Crear una func tiempo que obtenga el valor de la fecha y hora actual>>tiempo=@() datestr(now);>>ahora=tiempo()ahora= 16 - apr 2014 20:22:05

  • Funciones que utilizan manipuladores de funcionesEstas funciones reciben como argumentos de entrada manipuladores a funcin para particularizar sus clculos con la funcin referenciadaEj.- 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]

  • Funcin integracin quadSintaxis.- q=quad(fhandle,a,b)Se crean los archivos de las funciones f1, f2function [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);>>

  • Tareas sobre Funciones realeseval(f)fplot(f,[a,b]) grafica la funcin en [a,b]fzero(f,a) calcula los ceros de la funcintrapz(x,f) calcula el rea de la regin def por x>> f4=4-x.*x>>X:0:2>>Eval(f4)>>fplot(f4,[0,2])>>z=fzeros(f4,1)

  • Grficas de funciones en el planoPlot(x,y) dibuja los puntos (x,y) en plano carteBar(x,y) grafica barras verticales, y es frecuencBarh(x,y) grafica barras horizontales x es frecuStem(x,y) grafica bastones verticales y es frecuStairs(x,y) grafica escalonadamente curvaPolar(x,y) dibuja curva en coordenadas polarePie(x) grafica sectores relativos a xRose(x) dibuja el histograma angular

  • Ejemplos de grficas>> x=-1:0.1:5;>>y=sin(x.*x);>>plot(x,y)

    >>x=-3:0.2:5>>y=exp(-x.^2);>>bar(x,y);

  • Otros ejemplos>>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);

  • Grfica de mltiples curvas>>x=0:0.05:5;>>y=sin(x);>>z=cos(x);>>plot(x,y,x,z);

  • Etiquetas para Ejes y otros aspectosxlabelylabelxlabel(X);ylabel(Y);grid: grafica regillastitle coloca ttulo a la grficatitle(Grfica de la funcin);

  • Grfica de superficiesPlot3(x,y,z) dibuja puntos (x,y,z)Fill3(x,y,z,c) dibuja regin poligonal con color cMeshgrid(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 nivMeshz(x,y,z) graf z=f(x,y) cerrando graf con froSurf(x,y,z) grafica z=f(x,y) pintando celdasSurfc(x,y,z)Surfi(x,y,z) grafica con iluminacinWaterfall(x,y,z)Contour(x,y,z) grafica curvas de nivel de z=f(x,y)

  • Ejemplos >>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 0.8 0.1];fill3(x,y,z,c);

  • Ej.- grfica exponencial>>[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.- Paraboloide>>[x,y]=meshgrid(-2:0.2:2);>>z=x.^2+y.^2;>>meshc(x,y,z);>>xlabel(X);ylabel(Y);zlabel(Z);

  • Superficies especialesBar3(x,y)Comet3(x,y,z)SphereCilinder(f)Stem3(x,y,z)Pie3(x)Ribbon(y,z,c)Quiver3(x,y,z,u,v,w,c)