Está en la página 1de 20

Funciones

En MATLAB
FUNCIONES
Una función 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 función seno.

Podemos tener funciones con dos, tres o más argumentos:

plot(x, y) ,

es una función interna que posee el Matlab para trazar gráficos


bidimensionales, que necesita de dos argumentos, uno para la
coordenada x, otro para la y.
Funciones pre-construidas
Funciones trigonométricas:
  sin(x)
  cos(x)
  tan(x)
  asin(x)
  acos(x)
  atan(x)
  exp(x)
  log(x)
  log10(x)
 Funciones matemáticas 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 más próximo 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 raíz cuadrada de x.
Los conceptos ‘argumento’ y ‘retorno’.

En t = sin(x)  x : “argumento” .
* Una función puede tener uno, o, varios argumentos.

El “valor de retorno” es el número que se asigna a t.

sin(1)  0.8414,
sin(2)  0.9092
se habla que la función sin(x) retorna un valor. Pero
debe tenerse en cuenta que las funciones no tienen
obligatoriamente sólo un valor de retorno. Puede haber
funciones con dos, tres o más 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 función

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 función dentro de un programa

Si tenemos la función ya construida:


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

Para utilizarla dentro de un programa (o función):


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

Cuando vamos a construir una función con un sólo valor de


retorno, como sucederá en la mayoría 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.
Cálculo de 5 por el método de Newton.
5
1º) Se toma x0  (semilla inicial)
2
5
x0 
x0
2º) Se toma x1 
2
5
x1 
3º) Se toma x1
x2 
2

etc., etc.

5
xn 1 
nº) Se toma xn 1 es la raíz aproxim.
xn 
2
Programa raiz5.m

% raiz5.m
% Cálculo de la raíz de 5 por el método 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('Raíz de 5 = ‘), disp(x)
Ejecución de raiz5.m

>> format long


>> raiz5
Raíz de 5 =
2.23606797749979
Hagamos una función
para calcular raíces
cuadradas de números
Función raiznewton.m

function v1 = raiznewton(n)
% raiznewton(n) computa la raiz cuadrada por el método 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; % aproximación inicial

for i = 1:100
x = (x0 + n/x0)/2;
if abs(x - x0)/x < eps
break;
end
x0 = x;
end
v1 = x;
Ejecución 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 “Triángular de Pascal”

Triángulo de Pascal
Matriz de Pascal
 EJERCICIO:

  Construir una función llamada “Pascal(n)”, para sacar el


triángulo de Pascal de n pisos.
  Pistas: Dentro de la función podemos tomar una matriz A =
ones(n), lo que nos da una matriz (n x n) formada por unos. 
Entonces en lugar del triángulo de arriba, construiríamos el
"triángulo" de Pascal encerrado en una matriz:
 
 
Hay que observar que en esta matriz se tiene la propiedad:
 
% pascal4.m
% Programa que da el triángulo 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);

También podría gustarte