Você está na página 1de 20

Funciones

En MATLAB
FUNCIONES
Una funcin es un programa pero con la particularidad,
necesita de uno o varios argumentos de entrada.

sin(x) , cos(x), tan(x)


x es el argumento de la funcin seno.

Podemos tener funciones con dos, tres o ms argumentos:

plot(x, y) ,

es una funcin interna que posee el Matlab para trazar grficos


bidimensionales, que necesita de dos argumentos, uno para la
coordenada x, otro para la y.
Funciones pre-construidas
Funciones trigonomtricas:
sin(x)
cos(x)
tan(x)
asin(x)
acos(x)
atan(x)
exp(x)
log(x)
log10(x)
Funciones matemticas diversas:
abs(x) : Retorna el valor absoluto de x.
fix(x) : Retorna la parte entera de x.
rem(x,y) : Retorna el resto (remainder) de dividir x entre y.
round(x) : Redondea x al ms prximo entero.
sign(x) : Retorna -1 si x es menor que 0, 0 si x es 0, +1 si x es mayor
que 0.
sqrt(x) : Retorna la raz cuadrada de x.
Los conceptos argumento y retorno.

En t = sin(x) x : argumento .
* Una funcin puede tener uno, o, varios argumentos.

El valor de retorno es el nmero que se asigna a t.

sin(1) 0.8414,
sin(2) 0.9092
se habla que la funcin sin(x) retorna un valor. Pero
debe tenerse en cuenta que las funciones no tienen
obligatoriamente slo un valor de retorno. Puede haber
funciones con dos, tres o ms valores de retorno:
EJEMPLOS

r = f(x, y) dos argumentos, un valor de retorno.


[r1, r2] = f(x, y, z) tres argumentos, dos valor de
retorno.

[u, v, w] = f(x, y, z, p, q, r) seis argumentos, tres valor


de retorno.
Estructura general de una funcin

function [v1, v2] = nombre(x, y, z)


INICIO
BLOQUE GENERAL
FINAL

Finalmente salvarla como nombre.m

Para ejecutarla hay que escribir por ejempl.:


[a, b] = nombre(1, 5, -3)
Utilizar una funcin dentro de un programa

Si tenemos la funcin ya construida:


function [v1, v2] = nombre(x, y, z)

Para utilizarla dentro de un programa (o funcin):


% programa XXXXXX
.
[c1, c2 ] = nombre(1, -5, 8);
[d1, d2 ] = nombre(1, -5, 8);
OBSERVACIN:

Cuando vamos a construir una funcin con un slo valor de


retorno, como suceder en la mayora de los casos, Matlab nos
permite hacerlo de dos maneras:

1) function v1 = nombre(lista de argumentos)


2) function nombre(lista de argumentos)

Es decir, la variable v1 de retorno no se coloca entre corchetes, o


incluso no se expresa nada.
Clculo de 5 por el mtodo de Newton.
5
1) Se toma x0 (semilla inicial)
2
5
x0
x0
2) Se toma x1
2
5
3) Se toma x1
x1
x2
2
etc., etc.

5
xn 1
n) Se toma xn 1 es la raz aproxim.
xn
2
Programa raiz5.m

% raiz5.m
% Clculo de la raz de 5 por el mtodo de Newton
% Autor: Juan C. Gorostizaga (17/10/2008)

x0 = 2.5; % semilla inicial


T = 10; % cantidad total de iteraciones

for i = 1:T
x = 1/2 * (x0 + 5/x0);
x0 = x;
end;
disp('Raz de 5 = ), disp(x)
Ejecucin de raiz5.m

>> format long


>> raiz5
Raz de 5 =
2.23606797749979
Hagamos una funcin
para calcular races
cuadradas de nmeros
Funcin raiznewton.m

function v1 = raiznewton(n)
% raiznewton(n) computa la raiz cuadrada por el mtodo de Newton

% Comprobar si n es positivo
if n < 0
error('En raiznewton(n) : el argumento n debe ser positivo');
end;

x0 = (1+n)/2; % aproximacin inicial

for i = 1:100
x = (x0 + n/x0)/2;
if abs(x - x0)/x < eps
break;
end
x0 = x;
end
v1 = x;
Ejecucin de raiznewton(n)

>> raiznewton(1257)
ans =
35.45419580247167

>>raiznewton(-2459)
??? Error using ==> raiznewton
En raiznewton(n) : el argumento n debe ser positivo
Ejercicio:

Construir una matriz Tringular de Pascal

Tringulo de Pascal
Matriz de Pascal
EJERCICIO:

Construir una funcin llamada Pascal(n), para sacar el


tringulo de Pascal de n pisos.
Pistas: Dentro de la funcin podemos tomar una matriz A =
ones(n), lo que nos da una matriz (n x n) formada por unos.
Entonces en lugar del tringulo de arriba, construiramos el
"tringulo" de Pascal encerrado en una matriz:
Hay que observar que en esta matriz se tiene la propiedad:
% pascal4.m
% Programa que da el tringulo de Pascal (orden 4)
% autor: JUAN C. GOROSTIZAGA (21/10/2009)
%

N = 4;
A = ones(N+1,N+1);

for i = 3:N+1
for j = 2:i-1
A(i,j) = A(i-1, j-1) + A(i-1, j);
end;
end;
disp(A);

Você também pode gostar