44
Programación en Matlab Continuación

Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

Embed Size (px)

Citation preview

Page 1: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

Programación en Matlab

Continuación

Page 2: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

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.

Page 3: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada
Page 4: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

Estructura de una función

function  [v1, v2] = nombre(x, y, z)        INICIO        BLOQUE GENERAL        FINAL

Page 5: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

EJEMPLO

Uso de asin2(x) →

Page 6: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

Estructura general de las funciones

function [ variables de retorno] = nombre(lista de argumentos)

Caso más general

- function v1 = nombre(lista de argumentos)  - function         nombre(lista de argumentos)

Page 7: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada
Page 8: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada
Page 9: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

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.

Page 10: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

VECTORES Y MATRICES

Matrices: Una matriz es una tabla ordenada de números, por ejemplo:

Para asignar a la variable "A" la matriz anterior, debemos poner en Matlab:

A = [2 0 5 8; 1 3 7 4; 6 9 0 2]

Page 11: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

OPERACIONES TIPICAS

* Producto por un escalar:  5*A * Suma de matrices:    A + B  (siempre que en B haya almacenada una matriz del mismo orden que A). * Producto de matrices: A * B (siempre que el orden de B sea el

adecuado).   Y para matrices cuadradas :  * Potencias de matrices cuadradas: C^3  (equivale a).  * Transpuesta de una matriz A: A'  * Inversa de una matriz A (si inversible):  inv(A).  * Determinante de A:         det(A).

Page 12: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

Elementos de una matriz:

Para referirnos a el elemento concreto de A que se halla en la fila i, y columna j, pondremos:

A(i, j)

Por ejemplo, el elemento A(2, 3) es el número 7:

Page 13: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

De esta forma podemos operar con elementos específicos de una matriz, o podemos, por ejemplo, cambiar un elemento de la matriz A, asignándole un nuevo valor numérico.

Por ejemplo, si ahora ponemos

A(2, 3) = 6,

lo que hacemos es cambiar el 7 que había antes por el nuevo valor de 6. Entonces la matriz A quedará modificada:

Page 14: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

Vectores

Un vector fila de cinco componentes (por ejemplo), no es más que una matriz de orden (1x5), mientras que un vector columna de cinco componentes es una matriz de orden (5x1).

Ejemplos de asignación:

Vector fila: v1 = [2 0 -3 5 -8].  Vector columna: v2 = [2; 0; -3; 5; -8].

Page 15: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

Rangos numéricos

Por rango numérico entendemos los valores numéricos comprendidos entre a y b, recorrido con un paso de p.

Por ejemplo, el rango entre 1 y 10 (con paso de 1) es:

1, 2, 3 , 4, 5, 6, 7, 8, 9, 10.

En Matlab un rango numérico se expresa así:a: p : b

  Equivale al rango que va desde a hasta b con un paso de p. Si no expresamos el paso p, esto es a : b, equivale a un paso de 1.

Page 16: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

Ejemplos:

Expresión Equivale a . . . .

1: 0.5 :5 → 1,   1.5,   2,   2.5,  3,  3.5,  4,  4.5.  5.

1 : 10 → 1, 2, 3, 4, 5, 6, 7, 8, 9, 10.

-1: 0.1: 1 → -1, -0.9, -0.8, -0.7, -0.6, -0.5, -0.4, -0.3, -0.2, -0.1, 0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1.

10: -1 : 1 → 10, 9, 8, 7, 6, 5, 4, 3, 2, 1.

Page 17: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

Diagramas de flujo

  Un diagrama de flujo es un esquema gráfico que sirve para describir un algoritmo sin necesidad de escribir el código de programación. Su utilidad fundamental es mostrar que el algoritmo que tenemos previsto programar funciona .

Una vez que el diagrama de flujo es coherente, podemos pasar a codificarlo en Matlab o en cualquier otro lenguaje.

Page 18: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

Símbolos más comunes

Page 19: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada
Page 20: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

Ejemplo 1:   Queremos construir un algoritmo para resolver ecuaciones de segundo grado. Como sabemos, dado una ecuación del tipo a x2 + b x + c = 0, las dos raíces vienen expresadas por la fórmula:

Para que haya raíces reales la cantidad b2 - 4ac, llamada "discriminante", debe ser positiva. 

Podemos diseñar un programa que tenga el siguiente diagrama de flujo:

Page 21: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada
Page 22: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

Forma de introducir datos iniciales

1. Por asignación directa de datos iniciales al comienzo del programa.

Page 23: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

Forma de introducir datos iniciales

2. Por medio de la instrucción “input” de asignación diferida de datos.

variable = input(“mensaje de texto”);

En nuestro

ejemplo:

Page 24: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

Bifurcaciones condicionales

Es muy común que necesitamos hacer una bifurcación condicional:

Si se cumple una condición hacer una cosa, si no se cumple hacer otra. 

Para ello colocaremos las llamadas "bifurcaciones", que las hay de tres tipos:

-Bifurcación simple.

-Bifurcación completa.

-Bifurcación múltiple.

Page 25: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

Bifurcación simple

if  (condición)             comandos; end;

Page 26: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

Ejemplo:

Page 27: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

Bifurcación completa

if  (condición)             comandos(1);

else comandos(2);

end;

Page 28: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

EJEMPLO:

Page 29: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

Bifurcación multiple

 if  (condición1)                      comandos(1);         elseif (condición2)                       comandos(2);else                       comandos(3);end;

Page 30: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

EJEMPLO:

Page 31: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

Forma de presentación de resultados finales o intermedios.

1. Por medio del comando disp(), ya utilizado. Colocando como argumento una frase o una variable.

2. Por medio del comando fprintf(), ya utilizado. Colocando como argumento una frase o una variable.

disp(‘la solución es = ‘);

disp(x);

fprintf('Dos raíces reales: Raiz1 = %14.8f\n', Raiz1);fprintf(' Raiz2 = %14.8g\n', Raiz2);

Page 32: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada
Page 33: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

Ejecución del programa cuadratica.m (con el disp)

Page 34: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada
Page 35: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

Ejecución del programa cuadratica.m (con el fprintf)

Page 36: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

Bucles iterativos

Sirven para realizar una tarea –de forma repetitiva - una cantidad "n" de veces (Mientras la condición , dependiente de un parámetro, sea verdad)

-Bucle while

-Bucle for (ambos son equivalentes)

Page 37: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

Bucle while

while condición comandos;end              

Como condición podemos poner p. ejemp.: i < 100 .

Siempre debemos tener la doble precaución:

a) Inicializar (i = 1) el parámetro ántes del bucle.

b) colocar dentro del bucle while el comando, i = i + 1, que nos asegura que la iteración va recorriendo los valores desde el 1 hasta el 99.      

Page 38: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

Un ejemplo:

Este bucle obtiene el “valor doble” de todos los números entre 1 y 99.

Page 39: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

Bucle for

for  i = rango_numérico comandos;end                              

La condición es el rango numérico que se ha de completar para que el bucle termine, y pueden ser expresados rangos tales como:

 1: 100,     1:0.2:1000,      -5:0.25:100,

Page 40: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

Un ejemplo:

Page 41: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

Bucles "for" anidados:   Se pueden colocar dos, o incluso más, ciclos for, unos en el interior de otros, lo cual es muy útil en la programación. La estructura de dos ciclos for, por ejemplo, es:

for  i = rango_numérico1        for  j = rango_numérico2 comandos; end ;                               end;                         

Page 42: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

EJEMPLO:

Supongamos la matriz: A = zeros(3, 5);

La siguiente secuencia:

Page 43: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada

Poduce el siguiente resultado:

0  -1  -2  -3  -4 1   0  -1  -2  -3 2   1   0  -1  -2

Es decir, por cada paso que da el bucle externo (el "i" en este caso) se completa el bucle interno (el "j" en este caso).

Page 44: Programación en Matlab Continuación. FUNCIONES Una función es un programa pero con la particularidad, necesita de uno o varios argumentos de entrada