Algoritmos_programacion_2015_05_18 (1)
-
Upload
felix-hernandez -
Category
Documents
-
view
3 -
download
0
description
Transcript of Algoritmos_programacion_2015_05_18 (1)
Salvaguardar el medio ambiente. . . Es un principio rector de todo nuestro trabajo en el apoyo del desarrollo sostenible; es un componente esencial en laerradicación de la pobreza y uno de los cimientos de la paz”.
Kofi Annan
Facultad de Ingeniería Mecánica y Eléctrica
Ing. Carlos A. Mora Barradas
Algoritmos computacionales y programación
Objetivo
Desarrollar algoritmos como herramienta en la
representación la solución matemática de problemas
científicos y de ingeniería.
Definición
ALGORITMO
Procedimiento para la resolución de problemas de
cualquier tipo mediante una determinada secuencia de
pasos simples y no ambiguos.
Utilizado originalmente para el cálculo matemático pero ahora es
ampliamente usado en programación
Estructura de la solución de un problema
Datos de entrada: Datos o condiciones iniciales con los que contamos para resolver el problema.
Proceso: Secuencia de pasos para resolver el problema.
Salida o Resultados: Es la consecuencia de la aplicación del proceso a los datos de entrada.
Características del Algoritmo
Definido: Indica el orden de los paso (secuencia).
Finito: Se integra por un número n de pasos.
Válido: Que haga lo que se pretende y devuelva los resultados esperados.
Eficiente: Da una solución en un tiempo razonable.
Eficaz: Utiliza los recursos mínimos para dar el resultado.
Representación
Pseudocódigo: lenguaje PROPIO para la codificación
Diagrama de flujo: Gráfica de un procedimiento para la resolución de un problema
Algoritmo
Objeto de Lectura
• El objeto Lectura permite la entrada de valores desde el teclado y se los asigna a variables.
• Podrá ser leída cualquier cantidad de variables utilizando un solo objeto Lectura.
Objeto de Salida
• El objeto Salida muestra valores en pantalla.
• Puede ser visualizada cualquier cantidad de valores utilizando un solo objeto Salida.
Objeto Decisión
• Selecciona el flujo a seguir de acuerdo al valor lógico de una condición.
• La condición debe ser siempre una expresión que al ser evaluada de como resultado un valor de tipo de dato Lógico.
Objeto Ciclo Para
• Contiene un valor inicial que será asignado para iniciar la ejecución del ciclo, un valor final y un valor de incremento.
• Ejecuta un bloque de objetos mientras que la variable contadora no alcance el límite establecido por el valor final.
• Si el contador excede el valor final, la ejecución continuará a partir del objeto que sigue al Cierre.
• En caso contrario, se ejecutará el cuerpo del ciclo y el contador será incrementado en el valor indicado por el incremento.
Objeto Ciclo Mientras
• Tiene la función de ejecutar un bloque de objetos mientras que una condición sea verdadera.
• La condición debe ser siempre una expresión que al ser evaluada de como resultado un valor de tipo Lógico.
Algoritmo de una suma
1. Inicio
2. Desplegar en pantalla que es lo que realiza la rutina.
3. Solicitar el primer sumando.
4. Introducir el primer sumando.
5. Solicitar el segundo sumando.
6. Introducir el segundo sumando.
7. Realizar la suma, y el resultado asignarlo a una variable llamada suma.
8. Presentar el resultado en pantalla.
9. Fin
Objetivo
Proporcionar una guía básica para el uso deMatlab como herramienta de alto nivel en lasolución y representación de problemastécnicos, científicos y de ingeniería a través decálculos con vectores y matrices.
Alcance
El alcance y el poder de Matlab muy grande;dispone de un código básico y de varias libreríasespecializadas (toolboxes).
En este curso se hará referencia exclusivamenteal código básico. Sin embargo, se pretende que elalumno sea capaz de resolver problemas máscomplejos haciendo uso del entorno intuitivoque ofrece Matlab.
Contenido
1. Primera parte. Conociendo MATLAB
2. Segunda parte. El entorno de trabajo de MATLAB
3. Tercera parte. Los objetos de MATLAB
4. Cuarta parte. Inicialización de variables en MATLAB
5. Quinta parte. Operaciones con MATLAB
6. Sexta parte. Funciones en MATLAB
7. Séptima parte. Graficación en MATLAB
8. Octava parte. Métodos Numéricos en MATLAB
Conociendo Matlab
• Desarrollado por la Compañía Mathworks, Inc.
• MATLAB es la abreviatura de “MATrix LABoratory”
• Programa para realizar cálculos numéricos con vectores y
matrices.
• Puede también trabajar con números escalares (reales y
complejos), cadenas de caracteres y otras estructuras.
• Puede trazar una amplia variedad de gráficas en 2D y 3D.
• Posee un leguaje de programación propio.
Conociendo Matlab
Entorno de Matlab
Debido a lo anterior:
Lenguaje de programación.
Entorno de visualización
Gráfica.
Sistema interactivo de
cómputo científico.
Conociendo Matlab
Matlab presenta varias pantallas al usuario: entre las más
importantes están la ventana de comandos (command window), la
ventana gráfica (graphics window) y la ventana del editor (M-file
editor).
Conociendo Matlab
Como se puede observar, en laventana de comandos apareceun indicador (prompt) (>> óEDU>>) que nos dice queMatlab está listo y a la esperade que el usuario teclee uncomando ó dato.
Conociendo Matlab
La ventana Gráficaaparece cuando elusuario introducecomandos propiosde la graficación.
Conociendo Matlab
La ventana del m-fileeditor aparece cuando elusuario crea o modificaun archivo .m (programao script Matlab)
Conociendo Matlab
Ventanas auxiliares de más uso:
• Historial de comandos (command history)
• Entorno de trabajo (workspace)
• Directorio de trabajo actual (current directory)
• Ayuda (help window).
Conociendo Matlab
También podemos accesar al menú helptecleando la instrucción:
>>help
Ó
>>help tópico
Conociendo Matlab
Comencemos a trabajar con MATLAB.
Escribamos la siguiente línea. Al final hay que pulsar Enter.
» A=rand(6), B=inv(A), B*A
Conociendo Matlab
Explicación de los comandos anteriores:
En la línea de comandos anterior, en realidad, se han escrito tres instrucciones diferentes, separadas por comas. Como consecuencia, la respuesta del programa tiene tres partes también, cada una de ellas correspondiente a su respectiva instrucción.
1. Se define una matriz cuadrada (6x6) llamada A, formada por números aleatorios entre cero y uno (calculados con 16 cifras).
2. Se define una matriz B que es igual a la inversa de A.
3. Se multiplica B por A, y se comprueba que el resultado es la matriz...
Conociendo Matlab
Otra de las fortalezas de MATLAB es la graficación, que
se verá posteriormente con más detalle.
Ejemplo:
» x=-4:.01:4; y=sin(x); plot(x,y), grid, title('Función seno(x)')
Conociendo Matlab
Explicación de los comandos anteriores:
• Se crea un vector x con valores desde -4 hasta 4 separados cada 0.01.
• Se crea un vector y, cuyos elementos son el seno del correspondiente elemento del vector x.
• Se dibujan los valores de x y y en pares ordenados.
• Las dos últimos comandos activan la cuadrícula y el título de la gráfica.
Ventana Directorio activo (actual)
• Los archivos de comandos de matlab (*.m) se ejecutan escribiendo
su nombre en la línea de comandos (sin la extensión .m).
• Si se trata de funciones, después del nombre van los argumentos
entre paréntesis.
Ventana Directorio activo (actual)
Pero…
¿Qué pasa si los programas o funciones no están guardados
en el directorio activo?Para que un archivo *.m se pueda ejecutar, es necesario que se cumpla una de las dos condiciones siguientes:
Que esté en el directorio actual. Es el primer sitio en el que MATLAB busca cuando se ordena que ejecute un archivo.
Que esté en uno de los directorios indicados en el Path de MATLAB
Ventana Directorio activo (actual)
Para establecer una carpetadentro del Path de Matlab,entramos al menu archivo(file) y seleccionamos laopción Set path…
Con lo que se abrirá unaventana como la mostradaen la figura, que es donde seseleccionará la carpeta aagregar.
Escalares, vectores y matrices en Matlab
• MUY IMPORTANTE, para Matlab todo se considera
como una matriz.
• Un escalar se considera un matriz de una fila y una
columna.
• Recordar que cuando nos referimos a los elementos de
una matriz lo hacemos mediante subíndices.
Escalares, vectores y matrices en Matlab
• Para localizar un elemento se recurre al número de fila y
columna en donde se encuentre el elemento buscado.
• Este par de números son como “coordenadas” y se les conoce
como subíndices.
• Si se tiene una matriz, para hacer referencia a toda ella
usaremos sólo su nombre, sin subíndices (Ej: A, B, etc.).
• Si queremos referirnos sólo a un elemento que está en la fila 4,
columna 3 de la matriz A en Matlab, los subíndices se
indicarán entre paréntesis, ejemplo: A(4,3).
Nombres de variables en Matlab
Para realizar cálculos en Matlab lo más común es darle nombre a las variables o a los archivos de comandos; estos nombres serán usados para llamar el valor de esa variable, o bien para ejecutar un archivo de comandos. Dichos nombres tendrán que ajustarse a las reglas que siguen para su asignación:
• Los nombres deben comenzar con una letra.
• Los nombres pueden contener letras, dígitos y el guión bajo (_).
• Los nombres no pueden contener espacios.
• Los nombres pueden tener cualquier longitud, pero sólo los primeros 63 caracteres son reconocidos para diferenciarlas.
Formato de salida
Respecto a los formatos numéricos con que MATLAB muestra los resultados, estos se pueden cambiar desde la línea de comandos.
• Por ejemplo, para ver matrices en formato long:
>> format long
Nota: Matlab siempre calcula con doble precisión (16 cifras decimales)
short coma fija con 4 decimales (defecto)long coma fija con 15 decimalesbank números con dos cifras decimalesshort e notación científica con 4 decimalesshort g notación científica o decimal, dependiendo del valorlong e notación científica con 15 decimaleslong g notación científica o decimal, dependiendo del valorrat expresa los números racionales como cocientes de enteros
Inicialización de variables en Matlab
Tres métodos para asignar valores:
1. Listas de valores explícitos
2. El Operador Dos-Puntos
3. Entrada interactiva del usuario
Listas de valores explícitos
>>A = [ 2 ] ; ó >>A = 2 (escalar)
>>B = [ 3 , -6.2 ] ; (vector)
>>C = [1 2 3;4 5 6 ;7 8 9] ; (matriz)
Lado Receptor Lado Emisor
Asignación
Listas de valores explícitos
Matrices:
• Se encierran entre corchetes ordenados por fila.
• Los valores de los elementos de cada fila (columnas) se separan
mediante comas o espacios.
• Las filas se separan con signos de punto y coma.
NOTA: Cuando se define un escalar, vector o matriz por este método, Matlab despliega
los valores introducidos a menos se introduzca un signo de punto y coma colocado al
final de la instrucción.
Otros ejemplos de introducción de valores explícitos
Usando otros datos definidos previamente
>>A1 = [2 3 4] ;>>A2 = [1 A1] ;Que equivale a:
>>A2 = [1 2 3 4] ;
Podemos modificar o agregar nuevos valores usando subíndices:
>>A2(3) = 5;Cambia el valor del tercer elemento de la matrizA2 de 3 a 5. Veamos otro ejemplo:>>A2(8) = 6;
¿Qué ocurre con A2(5), A2(6) y A2(7) para los que no se dieron valores?
Otros ejemplos de introducción de valores
Si tomamos a la matriz A1 tal como se definió anteriormente e
inicializamos al elemento:
>>A1(2,3) = 7.7
¿Qué ocurre?
Inicialización de variables en Matlab
Tres los métodos para asignar valores:
1. Listas de valores explícitos
2. El Operador Dos-Puntos
3. Entrada interactiva del usuario
El Operador Dos-Puntos (:)
Usos típicos:
• Crear vectores o matrices a partir de matrices.
• Referirse a toda una fila de una matriz.
• Referirse a toda una columna de una matriz.
• Generar matrices nuevas.
• Seleccionar una submatriz de otra matriz.
El Operador Dos-Puntos (:) (Cont)
>>C = [-1 4 2 ; 5 2 -3 ; 4 -4 0 ; 0 0 2] ;
Entonces:
>>X = C(:,1) Almacena la primera columna de C en el nuevo vector columna X.
>>Y = C(2,:) Almacena la segunda fila de C en el nuevo vector fila Y.
>>Z = C(:,:) Crea la matriz Z como una copia íntegra de C (es igual que Z = C).
El Operador Dos-Puntos (:) (Cont)
>>R = 1 : 10 ; Genera el nuevo vector R que contiene los números del 1 al 10.
>>T = 0.0 : 0.5 : 5.0 ; Generará un nuevo vector T con valores de 0.0, 0.5, 1.0, 1.5, ... , 4.5 y 5.0.
>>V = 1.5 : -0.25 : 0.0 ; Resulta en un nuevo vector V con los elementos 1.5, 1.25, 1.0, ... , 0.25 y 0.0.
Sea C la siguiente matriz:
>>C = [ -1 4 2 ; 5 2 -3 ; 4 -4 0 ; 0 0 2 ] ;
Si ejecutamos los siguientes comandos:
>>S1 = C ( : , 2 : 3 ) ;
>>S2 = C ( 3 : 4 , 1 : 2 )
Obtendríamos respectivamente…
El Operador Dos-Puntos (:) (Cont)
El Operador Dos-Puntos (:) (Cont)
Si el operador Dos-Puntos hace referencia a una matriz con subíndices no válidos, como C ( 5 : 6 , : ) , se desplegará un mensaje de error:
“??? Index exceeds matrix dimensions.”
En Matlab es válido la existencia de matrices vacías (sin elementos). Por ejemplo, las siguientes órdenes generan matrices vacías:
>>A = [ ] ;
>>B = 3 : -1 : 5 ;
Inicialización de variables en Matlab
Tres los métodos para asignar valores:
1. Listas de valores explícitos
2. El Operador Dos-Puntos
3. Entrada interactiva del usuario
Entrada interactiva del usuario
Los valores pueden ser introducidos a través del tecladousando el comando:
>>x = input (‘mensaje’ ) ;
Este comando despliega el ‘mensaje’ en pantalla y esperaa que el usuario introduzca información. Después, él olos valores introducidos son asignados a la variable quese especifique a la izquierda de la igualdad.
Si el usuario va a introducir más de un valor, debeencerrarlos entre corchetes. Si el usuario oprime [enter]sin introducir valores, se generará una matriz vacía.
Entrada interactiva del usuario
Otra opción es cuando el usuario va a introducir texto en lugar de valores. Entonces se usará esta versión del comando:
>>x = input ( ‘mensaje’, ‘s’ ) ;
La opción ‘s’ indica que la entrada de datos serán caracteres en lugar de números. Para terminar de teclear la cadena de caracteres deberá de oprimirse [enter] al final.
Los espacios intermedios de la cadena si son tomados en cuenta y forman parte de su longitud total.
Operaciones básicas con escalares, vectores y matrices en Matlab
Suma +
Resta -
Multiplicación *
División /
Transposición ‘
Potenciación ^
Radicación
Agrupación ( )
Asignación =
Operaciones con vectores y matrices como ARREGLOS
Para indicar que queremos realizar operaciones de tipoarreglo (elemento a elemento) entre vectores o matricesutilizamos un punto que precede al operadoraritmético:
Suma +
Resta -
Multiplicación .*
División ./
Potenciación .^
Operaciones básicas con escalares, vectores y matrices en Matlab
¡¡MUY IMPORTANTE!!
En programación, cuando se hace una asignación siempre, primero,
se evalúa la parte derecha y, segundo, el resultado se asigna a la
parte de la izquierda. Aplicando esto último podríamos usar una
expresión como:
x = x + 5 ;
Precedencia de las operaciones aritméticas
Usualmente combinamos varias operaciones en una sola expresiónaritmética, por lo tanto es importante conocer en que orden serealizarán las operaciones (por prioridad)
Agrupación ( ) (prioridad 1)Exponenciación ^ (prioridad 2)Mult. y div. * / (prioridad 3)Suma y resta + - (prioridad 4)
Valores y operaciones especiales en Matlab
pi Almacena el valor de
i , j Representan la unidad imaginaria √-1
inf Representa infinito y es la división entre cero (x/0)
NaN Indica Not-a-Number (No-es- número) 0/0
ans Es la respuesta más reciente derivada de un cálculo, que nofue almacenada en ninguna variable.
% Representa comentario. Sirve para documentar lasoperaciones y programas. Lo que se escriba a la derecha del %se ignora por Matlab como cálculo.
Operadores Relacionales
< Menor que
> Mayor que
<= Menor o igual que
>= Mayor o igual que
== Igual. Idéntico.
~= Distinto.
Si una comparación se cumple el resultado es 1 (true), si no cumplees 0 (false). Cualquier valor distinto de cero es considerado comotrue y el cero como false. Los operadores relacionales se aplican ados matrices o vectores del mismo tamaño, la comparación se realizaelemento a elemento, y el resultado es otra matriz de unos y cerosdel mismo tamaño que recoge el resultado de cada comparaciónentre elementos .
Operadores Relacionales
Ejemplo:
x<=y donde x y y son escalares, el valor que regresaesta expresión será 1 (verdadero) sólo si x es menor o
igual que y; de lo contrario, se obtiene 0 (falso)cuando x es mayor que y.
Si en lugar de escalares x y y fueran vectores, por ejemplo:
x = [ 2 4 6 ] ; y = [ 1 4 3 ] ;
Entonces, el resultado de la expresión x<=y, es el vector [ 0 1 0 ],
en tanto que el resultado de x~=y es el vector [ 1 0 1 ],
y el de x>=y proporciona [ 1 1 1 ].
Operadores Lógicos
También con precedencia:
~ Not. Negación ( no )
& And. Conjunción ( y )
&& And Breve. Si el 1er. Operador es falso ya no se realiza.
| Or. Disyunción ( o )
|| Or Breve. Si el 1er. Operador es true ya no se realiza.
xor(x,y) Or exclusivo. Si los dos son 1 o 0 regresa 0.
A B ~A ~B A | B A & B
0 0 1 1 0 0
0 1 1 0 1 0
1 0 0 1 1 0
1 1 0 0 1 1
Funciones en Matlab
• Función algebraica
• Función predefinida o de biblioteca
• Funciones definidas por el usuario
Función algebraica
El concepto función lo conocemos todosy = f(x) ó z = f(x, y);
que es cuando existe una relación dependencia entre variables y queda lugar a valores en un dominio y su contradominio. Para Matlabambos son vectores o matrices de las mismas dimensiones.
Función predefinida o de biblioteca
Se refiere a un procedimiento o programa que ha sidoalmacenado previamente en Matlab. Operan recibiendoargumentos ó parámetros (Datos de entrada) y regresandocomo resultado algún tipo específico de dato (valores deretorno).
Estas funciones pueden tener cero, uno ó múltiples argumentos. Porejemplo, pi (no recibe ningún argumento) regresa 3.141592...
>>nombre_de_función( arg1, arg2, ... ) ;
>>y = sin( abs( x ) ) ;
Las funciones matemáticas comunes en Matlab
• Valor Absoluto de x >>abs ( x ) ;
• Raíz cuadrada de x >>sqrt ( x ) ;
• Exponencial base e ( ex ) >>exp ( x ) ;
• Redondear x al entero mas cercano >>round ( x ) ;
• Truncar decimales de x >>fix ( x ) ;
• Redondear al entero inferior a x >>floor ( x ) ;
• Redondear al entero superior a x >>ceil ( x ) ;• Residuo entero de x/y. >>rem ( x , y ) ; ó mod ( x , y ) ;
• Logaritmo natural de x >>log ( x ) ;
• Logaritmo base diez de x >>log10 ( x ) ;• Signo indicador del valor de x >>sign ( x ) ; (devuelve –1 si x es
menor que cero, 0 si x es igual a cero y 1 si x es mayor que cero)
Las funciones matemáticas comunes en Matlab
• Seno de x >>sin ( x ) ;
• Arco seno de x >>asin ( x ) ;
• Coseno de x >>cos ( x ) ;
• Arco coseno de x >>acos ( x ) ;
• Tangente de x >>tan ( x ) ;
• Arco tangente de x >>atan ( x ) ;
• Secante de x >>sec ( x ) ;
• Arco secante de x >>asec ( x ) ;
• Cosecante de x >>csc ( x ) ;
• Arco cosecante de x >>acsc ( x ) ;
• Cotangente de x >>cot ( x ) ;
• Arco cotangente de x >>acot ( x ) ;
Funciones Especiales de Matlab
Para obtener las dimensiones de una matriz:
>>size ( matriz ) ;
El comando size regresa dos argumentos de tipo escalar que representan al número de filas y al número de columnas de la matriz.
el comando :
>>length ( vector ) ;
Nos proporciona el tamaño del vector especificado. Si se aplica el comando length a una matriz de tamaño (m,n); se devuelve el número de filas, es decir m.
Funciones Especiales de Matlab
Para generar matrices de ceros:
>>zeros (dimensión);
En donde dimensión es un número escalar. El comando zeros generará una matriz cuadrada de ceros
También dimensión podría referirse a dos argumentos escalares como en zeros(m, n). Entonces, se generará una matriz de ceros con m filas y n columnas.
Podemos usar el comando size para generar una matriz de ceros que tenga el mismo tamaño que otra matriz mediante la orden:
>>D = zeros (size(C)) ;
Funciones Especiales de Matlab
Para generar matrices con unos:
>>ones (dimensión) ;
Generación de matrices identidad:
>>eye (dimensión) ;
Funciones Especiales de Matlab
Números aleatorios en Matlab:
>>rand ( n ) ; genera una matriz de n x n que
contiene números aleatorios entre 0 y 1
ó
>>rand ( m, n ) ; genera una matriz de tamaño m x n que contiene números aleatorios entre 0 y 1
Funciones matemáticas adicionales
Sumar los elementos de un vector o matriz x
>>sum ( x ) ;
Ordenar los elementos de un vector o matriz x
>>sort ( x ) ;
Valor del elemento más grande de un vector o matriz x
>>max ( x ) ;
Valor del elemento más pequeño de un vector o matriz x
>>min ( x ) ;
Máximo común divisor de los enteros x y y
>>gcd ( x , y ) ;
Funciones matemáticas adicionales
Mínimo común múltiplo de los enteros x e y
>>lcm ( x , y ) ;
Parte real del número complejo x
>>real ( x ) ;
v Parte imaginaria del número complejo x
>>imag ( x ) ;
Angulo de fase del complejo x
>>angle ( x ) ;
Obtener la magnitud del número complejo x
>>abs ( x ) ;
Graficación en Matlab
• De gran importancia.
• Nos ayuda a complementar los análisis matemáticos
• Gráficas de alta calidad y sencillez en su elaboración.
• Los gráficos están fundamentalmente orientados a la
representación gráfica de vectores (y matrices).
• Nos da la posibilidad de observar gráficamente las relaciones
entre series de datos, funciones y ecuaciones,
• Hace que el aprendizaje de las matemáticas sea más amigable.
Entorno gráfico
• El entorno gráfico genera una ventana aparte de laventana para la visualización de los comandos gráficos.
• Es posible generar una o varias ventanas de entornográfico de forma simultánea.
>>figure ;ó
>>figure( handle ) ;
handle = identificador (número entero positivo)
Más comandos de graficación
Para cerrar ventanas de entorno gráfico:
>>close ; ó >>close( handle ) ;
Para borrar la pantalla de entorno gráfico activa
>>clf ; ó >>clf reset ;
Graficación 2-D de funciones XY
Para la graficación en 2D:
• Necesitamos dos vectores, x y y que son de igual longitud
• El vector x contiene los valores de la variable independiente (Dominio)
• El vector y los de la variable dependiente (Contradominio)
Comandos básicos de graficación XY
Cinco funciones básicas para crear gráficas 2-D.
Plot() Crea una gráfica a partir de vectores y/o columnas dematrices, con escalas lineales sobre ambos ejes.
plotyy() Dibuja dos funciones con dos escalas diferentes para lasordenadas, una a la derecha y otra a la izquierda de lafigura.
loglog() Gráficas con escala logarítmica en ambos ejes
semilogx() Gráficas con escala lineal en el eje de ordenadas ylogarítmica en el eje de abscisas
semilogy() ídem con escala lineal en el eje de abscisas y logarítmica enel eje de ordenadas
Comandos básicos de graficación XY
Para graficar vectores o matrices en XY
>>plot ( x , y ) ;
ó
>>plot ( x , y , ‘características’ ) ;
• Los Vectores pueden ser del mismo número de elementos.
• Sin son vector y matriz deben de coincidir el numero de elementosen cada columna.
• Sin son matrices ambas deben de coincidir en sus dimensiones.
error: “Matrix dimensions must agree”.
Ejemplo de graficación xy
>> x=[1 2 3];
>> y=[3 5 7];
>> plot(x,y);
El resultado de este comando es:
Ejemplo de graficación xy
>>% definimos el dominio para el vector x
>>% se calcula la función en cada punto
>>% graficamos
>>x = 0 : .1 : 10 ;
>>y = exp ( .1 * x ) – sin ( 3 * x ) ;
>>plot ( x, y )
Modificando las Características del gráfico
1. Tipos de marcas en las líneas:. (puntos)+ (signos +)* (asteriscos)o (círculos)x (cruces)
2. Tipos de estilos de líneas:- (continua. por defecto)- - (guiones): (punteada)-. (guiones y puntos)
3. Tipos de color de líneas:Amarillo (yellow) ‘y’ Rojo (red) ‘r’Azul (blue) ‘b’ Turquesa (cyan) ‘c’Blanco (white) ’w’ Verde (green) ‘g’Negro (black) ‘k’ Violeta (Magenta) ‘m’
Modificando las Características del gráfico
>>x = 0 : .1 : 10 ;
>>y = exp ( .1 * x ) – sin ( 3 * x ) ;
>>plot ( x, y , ‘ g* ’)
Obtenemos:
Títulos, Rótulos, Leyendas y Texto
Para poner un título a la gráfica:
>>title ( ‘texto’ ) ;
Para colocar rótulos en los ejes:
>>xlabel ( ‘texto’ ) ; Con xlabel off y ylabel off
>>ylabel ( ‘texto’ ) ; desaparecen
Para añadir una leyenda al gráfico:
>>legend ( ‘texto’ , pos ) ; pos representa la posición de la leyenda en la pantalla:0 dentro del cuadro del gráfico (si hay lugar) y –1 fuera del cuadro del gráfico.
Títulos, Rótulos, Leyendas y Texto
Para desplegar texto en una gráfica:
>>text ( x , y , ‘texto’ ) ; Los valores x y y son las
coordenadas del punto en
donde se desea que
comience a desplegarse la
cadena ‘texto’
>> gtext('texto') Introduce texto con ayuda del ratón: el cursor
>> legend(‘texto’) Define rótulos para las distintas líneas o ejes
utilizados en la figura.
Ejemplo completo
>>%graficamos
>>x = 0 : .1 : 10 ;>>y = exp ( .1 .* x ) – sin ( 3 .* x ) ;>>plot ( x, y , ‘ g-. ’)>>%ponemos título y rótulos
>>title ( ‘Gráfica XY’ , ‘fontname’, ‘arial’ , ‘fontsize’, 16, ‘color’, ‘c’ )>>xlabel ( ‘Abscisas de 0 a 10’, ’color’, ’y’, ‘fontsize’, 12, ‘fontname’, ‘verdana’)>>ylabel ( ‘y = exp ( .1 .* x ) – sin ( 3 .* x )’, ’color’, ’y’, ‘fontsize’, 12, ‘fontname’,
‘verdana’ )
>>%ponemos leyenda fuera de la gráfica>>legend ( ‘y = f(x)’, -1)>>%colocamos el texto en las coord. (2,3)>>text ( 2, 3, ‘Pendiente moderada’, ’color’, ’g’, ‘fontsize’, 12, ‘fontname’, ‘comic
sans’ )
Comandos adicionales para gráficos XY
Para mantener activa la pantalla gráfica actual
>>hold on ; ó >>hold off ;
Para visualizar una retícula guía en la gráfica
>>grid on ; ó >>grid off ;
Para manipular los ejes coordenados XY
>>axis ( ‘on’ ) ; ó >>axis ( ‘off’ ) ;
ó
>>axis ( [ x_min, x_max, y_min, y_max ] ) ;
Comandos adicionales para gráficos XY
Comando de zoom en el entorno gráfico
>>zoom on ; ó >>zoom off ;
ó
>>zoom out ; ó >>zoom in ;
Desplegando múltiples gráficas
Son tres las opciones:
• Múltiples gráficas usando un vector columna
• Múltiples gráficas usando una variante de plot
• Múltiples gráficas mediante el uso de subgráficas
Múltiples gráficas usando un vector columna
Se puede crear un vector columna que contenga en cadarenglón a cada una de las funciones que se deseangraficar. Por ejemplo:
>>%creamos el rango de abscisas
>>x = -2*pi : 0.1 : 2*pi ;
>>%se generan los puntos de ambas f(x)
>>f1 = .5 * sin ( x ) ;
>>f2 = 2 * cos ( x ) ;
>>%se crea el vector columna
>>V = [ f1 ; f2 ] ;
Múltiples gráficas usando un vector columna
>>%se grafica la relación de x con el vector V
>>plot ( x , V ) ;
>>%se ajustan los ejes al tamaño deseado
>>axis ( [ -2*pi , 2*pi , -3 , 3 ] ) ;
>> %colocamos título, rótulos y leyenda
>>title ( ‘Dos gráficas simultáneas mediante un vector columna ‘ ) ;
>>xlabel ( ‘Abscisas desde –2*pi hasta 2*pi’ ) ;
>>ylabel ( ‘Valor de la función y=f(x)’ ) ;
>>legend ( ‘.5*sin(x)’ , ‘2*cos(x)’ ) ;
Múltiples gráficas usando un vector columna
NOTA.- No existe laposibilidad de escoger nitipo de línea nicolor para cada una de lascurvas;
Múltiples gráficas usando una variante de plot
>>plot ( x , f1 , ‘y—‘ , x , f2 , ‘m+’ ) ;
Por ejemplo:
>>x = -2*pi : 0.1 : 2*pi ;
>>f1 = .5 * sin ( x ) ;
>>f2 = 2 * cos ( x ) ;
>>plot ( x , f1 , ‘y—‘ , x , f2 , ‘m+’ ) ;
>>axis ( [ -2*pi , 2*pi , -3 , 3 ] ) ;
>>title ( ‘Dos gráficas simultáneas con variante de plot ‘ ) ;
>>xlabel ( ‘Abscisas desde –2*pi hasta 2*pi’ ) ;
>>ylabel ( ‘Valor de la función y=f(x)’ ) ;
>>legend ( ‘.5*sin(x)’ , ‘2*cos(x)’ ) ;
Múltiples gráficas usando una variante de plot
NOTA.- Se podríangraficar más de doscurvas simultáneamente.
Múltiples gráficas mediante el uso de subgráficas
La pantalla total del entorno gráfico puede ser dividida en pequeñasregiones, como si se tratara de una matriz, de tal forma que esposible graficar una subgráfica independiente en cada una de dichasáreas.
>>subplot ( m , n , k ) ;
Donde:
m y n Son dos números enteros que indican el tamaño de lamatriz en que se dividirá el entorno gráfico.
K también Es un entero que indica el número secuencial (porrenglón) de subpantalla que se va a utilizar comopantalla activa.
Múltiples gráficas mediante el uso de subgráficas
>>x = -2*pi : 0.1 : 2*pi ;
>>f1 = .5 * sin ( x ) ;
>>f2 = 2 * cos ( x ) ;
>>subplot ( 3 , 1, 1 ) ;
>>plot ( x , f1 , ‘y—‘ , x , f2 , ‘m+’ ) ;
>>axis ( [ -2*pi , 2*pi , -3 , 3 ] ) ;
>>title ( ‘Subgráfica 1‘ ) ;
>>xlabel ( ‘–2*pi <= x <= 2*pi’ ) ;
>>ylabel ( ‘y=f(x)’ ) ;
Múltiples gráficas mediante el uso de subgráficas
>>legend ( ‘.5*sin(x)’ , ‘2*cos(x)’ ) ;
>>subplot ( 3 , 1, 3 ) ;
>>plot ( f1 , f2 , ‘c’ ) ;
>>axis ( [ -pi , pi , -pi , pi ] ) ;
>>title ( ‘Subgráfica 3‘ ) ;
>>xlabel ( ‘pi <= x <= pi’ ) ;
>>ylabel ( ‘y=f(x)’ ) ;
>>legend ( ‘.5*sin(x) vs 2*cos(x)’ ) ;
Otras opciones de graficado
Gráficas semilogarítmicas y logarítmicas
>>semilogx ( x , y ) ;
>>semilogy ( x , y ) ;
>>loglog ( x , y ) ;
Otras opciones de graficado
Por ejemplo:y = e 0.25 x * sin ( x )
>>x = linspace(0 , 10 ) ;>>y = exp ( 0.25 * x .* sin ( x ) ) ;>>subplot ( 2 , 2, 1 ) ;>>plot ( x , y , ‘y‘ ) ;>>title ( ‘exp ( 0.25 * x .* sin ( x ) ) con plot’ ) ;>>subplot ( 2 , 2, 2 ) ;>>semilogx ( x , y , ‘r‘ ) ;>>title ( ‘con semilogx‘ ) ;>>subplot ( 2 , 2, 3 ) ;>>semilogy ( x , y , ‘g‘ ) ;>>title ( ‘con semilogy‘ ) ;>>subplot ( 2 , 2, 4 ) ;>>loglog ( x , y , ‘m‘ ) ;>>title ( ‘con loglog‘ ) ;
Otras opciones de graficado
Gráficas polares
Las instrucciones son:
>>x = 0 : .1 : 2*pi ;
>>y = exp ( -.25 * x ) .* sin ( 3 * x ) ;
>>polar ( x , y ) ;
>>title ( 'Gráfica polar de y = exp ( -.25 * x ) .* sin ( 3 * x ) ' ) ;
Otras opciones de graficado
Gráficas de tipo estadístico
Por ejemplo: Si, y = [ 8 3 5 6 2 9 4 1 ] , entonces:
>> y = [ 8 3 5 6 2 9 4 1 ] ;
>>bar ( y , ‘g’ ) ;
>>title ( ‘Gráfica de barras del vector y’) ;
Graficación 3-D en Matlab
Esta clase de graficas se refiere al hecho de poderrepresentar en un entorno gráfico a las funcionesmatemáticas que están definidas en dos variables, porejemplo:
z = f (x, y)
Dos modalidades de gráficas 3-D:
Graficación tridimensional de una curva ó gráfica en x, y y z
Graficación tridimensional de superficies y contornosbidimensionales.
Graficación 3-D de una curva en x, y y z
Versión tridimensional del comando plot>>plot3 ( x , y , z ) ;ó>>plot3 ( x , y , z , ‘características’ ) ;
Rótulo para el nuevo eje z de la gráfica tridimensional>>zlabel ( ‘texto’ ) ;ó>>zlabel ( [ ‘texto’ , ‘prop1’ , valor1 , ... ] ) ;
Comando axis versión plot3>>axis ( [ x_min, x_max, y_min, y_max, z_min, z_max ] )
otras opciones de axis>>axis ( ‘auto’ ); Esta opción de axis sirve para volver a colocar a la
escala de ejes en automático, es decir, para que se autoajusten
Ejemplo de plot3
>>% preparamos los vectores
>>% de igual tamaño
>>z = linspace ( 0, 6*pi ) ;
>>x = sin ( z ) ;
>>y = cos ( z ) ;
>>%graficamos
>>plot3 ( x, y, z ) ;
>>xlabel ( ‘Eje X’ ) ;
>>ylabel ( ‘Eje Y’ ) ;
>>zlabel ( ‘Eje Z’ ) ;
>>title ( 'Gráfica en 3-D de una curva en x,y,z' ) ;
>>text ( .5, .5, 20, 'Tres vueltas de una hélice' ) ;
Ejemplo 2
>>clear
>>z = linspace ( 0 , 6*pi ) ;
>>x = cos ( z * pi/2 ) .* exp ( -0.2 * z ) ;
>>y = sin ( z * pi/2 ) * exp ( -0.2 * z ) ;
>>plot3 ( x, y, z ) ;
>>plot3 ( [1,1] , [-0.5,0] , [0,0] ) ;
>>title ( ‘Gráfica de una Curva en 3-D’ ) ;
>> text ( .7 , -.7 , 0 , 'Inicio' ) ;
>> text ( 0 , 0 , 20 , 'Fin' ) ;
>>xlabel ( ‘Eje X’ ) ;
>>ylabel ( ‘Eje Y’ ) ;
>>zlabel ( ‘Eje Z’ ) ;
>>grid on
Gráficas 3-D de malla y de superficie
Para poder graficar una función dos variables del tipo de z = f ( x, y),se necesita:
1. Crear una malla ó retícula bidimensional en el plano XY.
2. Evaluar la función z en los puntos de dicha retícula para determinarpuntos en la superficie tridimensional que se define.
En Matlab, una retícula bidimensional en el plano XY quedadefinida cuando se utilizan dos matrices. Una matriz contendrátodas las coordenadas x de todos los puntos de la retícula y de igualforma, la otra contendrá las coordenadas y de todos los puntos dedicha malla.
Generación de las matrices que constituyen una retícula bidimensional
>>[ X Y ] = meshgrid ( x, y ) ;
Donde:
• x y y son dos vectores de tamaño m y n, respectivamente.
• El comando proporciona las matrices X y Y donde ambas tendrán una dimensión de n x m.
La matriz X contiene los valores de x repetidos en cada fila, y la matriz Y contiene los valores de y repetidos en cada columna.
Ejemplo
Supongamos que se desea evaluar la función:
z = x * e-X^2-Y^2
>>x = linspace ( -2 , 2 , 32 ) ;
>>y = linspace ( -2 , 2 , 32 ) ;
>>[ X Y ] = meshgrid ( x , y ) ;
>>Z = X .* exp ( - X .^ 2 – Y .^ 2 ) ;
>>mesh ( X , Y , Z ) ;
>>title ( ‘Gráfica 3-D de Malla’ ) ;
>>xlabel ( ‘X’ ) ; ylabel ( ‘Y’ ) ; zlabel ( ‘Z’ ) ;
Gráfica de Malla y Contorno
>>meshc ( X, Y, Z ) ;
>>x = linspace ( -2 , 2 , 32 ) ;
>>y = linspace ( -2 , 2 , 32 ) ;
>>[ X Y ] = meshgrid ( x , y ) ;
>>Z = X .* exp ( - X .^ 2 – Y .^ 2 ) ;
>>meshc ( X , Y , Z ) ;
>>title ( ‘Gráfica 3-D de Malla’ ) ;
>>xlabel ( ‘X’ ) ; ylabel ( ‘Y’ ) ; zlabel ( ‘Z’ ) ;
Gráfica de Superficie
>>surf ( X, Y, Z ) ;
>>x = linspace ( -2 , 2 , 32 ) ;
>>y = linspace ( -2 , 2 , 32 ) ;
>>[ X Y ] = meshgrid ( x , y ) ;
>>Z = X .* exp ( - X .^ 2 – Y .^ 2 ) ;
>>surf ( X , Y , Z ) ;
>>title ( ‘Gráfica 3-D de Superficie’ ) ;
>>xlabel ( ‘X’ ) ; ylabel ( ‘Y’ ) ; zlabel ( ‘Z’ ) ;
Gráfica de Superficie y Contorno
>>surfc ( X, Y, Z ) ;
>>x = linspace ( -2 , 2 , 32 ) ;
>>y = linspace ( -2 , 2 , 32 ) ;
>>[ X Y ] = meshgrid ( x , y ) ;
>>Z = X .* exp ( - X .^ 2 – Y .^ 2 ) ;
>>surfc ( X , Y , Z ) ;
>>title ( ‘Gráfica 3-D de Superficie y Contorno’ ) ;
>>xlabel ( ‘X’ ) ; ylabel ( ‘Y’ ) ; zlabel ( ‘Z’ ) ;
Gráficas 3-D de contorno
>>contour ( X , Y , Z ) ;
>>x = linspace ( -2 , 2 , 32 ) ;
>>y = linspace ( -2 , 2 , 32 ) ;
>>[ X Y ] = meshgrid ( x , y ) ;
>>Z = X .* exp ( - X .^ 2 – Y .^ 2 ) ;
>>contour ( X , Y , Z ) ;
>>title ( ‘Gráfica 3-D de Contorno’ ) ;
>>xlabel ( ‘X’ ) ; ylabel ( ‘Y’ ) ;
Gráficas 3-D de contorno
>>contour ( X , Y , Z , n ) ;ó>>contour ( X , Y , Z , n , ‘características’ ) ;
Gráficas 3-D de contorno
>>contour3 ( X , Y , Z ) ;
ó>>contour3 ( X , Y , Z , n ) ;ó>>contour3 ( X , Y , Z , n , ‘características’ ) ;
Cambiando el punto de vista (Viewpoint)
Az=-90 El=0 Vista lateral
Az=180 El=0 Vista posterior
Az=0 El=0 Vista frontal
Métodos Numéricos en Matlab
Ventajas
• Una programación más sencilla y estructurada.• Mayor amplitud y exactitud numérica.• Una biblioteca de funciones matemáticas muy completa.• Opción de crear funciones de usuario.• Capacidades de graficación muy eficientes.• Vinculación con lenguajes de programación tales como C
/ C++, Java y Fortran.• Transportabilidad de datos y programas con otras
aplicaciones.
Métodos Numéricos en Matlab
• Suma y resta de matrices
C = A + B ; ¿Condición?X = Z – Y ;
• Multiplicación de matrices
C = A * B ; ¿Condición?
• Trasposición de matrices’ (Apóstrofe)
A’ ¿Propiedades?
• Potencias de matricesA^2 equivale a: A * A, ¿Condición?B^3 equivale a: B * B * B
Métodos Numéricos en Matlab
Matriz inversa y Rango de una matriz
>>inv ( A ) ; ¿Todas tienen inversa?
Determinante de una matriz
>>det ( A ) ;
Métodos Numéricos en Matlab
Solución a sistemas de ecuaciones linealesA * x = bDonde:
A = Matriz de coeficientesx = Vector columna de las n incógnitas b = Vector columna de los términos independientes del sistema.
Para su solución basta con:
A
bx
Polinomios
Un polinomio es una relación de una serie de potencias; expresada en
forma de una función en una sola variable y que usualmente se
denota como:
f(x) = c1 xn + c2 xn-1 + c3 xn-2 +...+ cn-1 x2 + cn x + cn+1
Representación de polinomios
Por ejemplo:
P = - 4.7x5 + 8.2x4 – 9.6x3 – 5x2 + 4.8x - 6
Se representa como:
P = [ -4.7 8.2 -9.6 -5 4.8 -6 ] ;
Operaciones con polinomios
• Suma y resta de polinomios
¿Hay alguna restricción para esto?
¿Si los vectores de polinomios a sumarse o restarse son de diferente
tamaño? Por ejemplo:
f(x) = 3x4 – 2x3 + 5x2 + 3x - 6
+ g(x) = 2x3 + x + 4
Operaciones con polinomios
En Matlab:
>>p1 = [ 3 -2 5 3 -6 ] ;
>>p2 = [ 0 2 0 1 4 ] ;
>>pr = p1 + p2 ;
¿Que resulta?
Operaciones con polinomios
• Multiplicación y División de polinomios
La multiplicación y división de polinomios son operaciones de unmayor grado de complejidad y que en reiteradas ocasiones sonsusceptibles a errores por la cantidad de operaciones que se realizan enellas y la cantidad de términos que se manejan.
Matlab tiene las funciones correspondientes a las operaciones demultiplicación y división de polinomios a través de comandos.
Operaciones con polinomios
Multiplicación
>>conv ( a , b ) ;
Donde:a = Vector de coeficientes del polinomio 1.
b = Vector de coeficientes del polinomio 2.
¿Tienen que ser del mismo tamaño los polinomios?
Operaciones con polinomios
Por ejemplo, la multiplicación de
f(x) = 2x3 + 2x2 - 5x + 3
* g(x) = x2– 3x + 1
En Matlab:
>>a = [ 2 2 -5 3 ] ;
>>b = [ 1 -3 1 ] ;
>>p = conv ( a , b ) ;
Operaciones con polinomios
Proporciona el producto
p = [ 2 -4 -9 20 -14 3 ],
que equivale a:
h (x) = 2x5 - 4x4 – 9x3 + 20x2 - 14x + 3.
Operaciones con polinomios
División
>>[ c , r ] = deconv ( a , b ) ;
Por ejemplo, la división de
f(x) = 3 x4 – 2 x3 + 5 x2 + 3 x - 6
g(x) 2 x3 + x + 4
En Matlab:
>>p1 = [ 3 -2 5 3 -6 ] ;
>>p2 = [ 2 0 1 4 ] ;
>>[ c , r ] = deconv ( p1 , p2 ) ;
Operaciones con polinomios
Genera los vectores
c = [ 1.5 -1 ] que equivale al
cociente: 1.5 x – 1.5
Y
r = [ 0 0 3.5 -2 -2 ]
Equivalente al residuo: 3.5 x2 - 2 x – 2.
Operaciones con polinomios
• Raíces de polinomios
>>roots ( a ) ;
Por ejemplo, las raíces de
f(x) = x4 – 2.75x3 + 1.5x2 + 16x - 12
En Matlab:
>>p1=[ 1 -2.75 1.5 16 -12 ] ;
>>r = roots ( p1 ) ;
Operaciones con polinomios
• Obtención del polinomio a partir de sus raíces
>>poly ( r ) ;
Por ejemplo, si originalmente se tiene
f(x) = 4x3 + x2 - 51x + 36
Sus raíces obtenidas con la función roots son:
r = [ -4.0000 3.0000 0.7500 ]
Si ahora, tenemos dichos valores y les aplicamos la
función poly tenemos que:
>>p = poly ( r ) ;
ó
>>p = poly ( [ -4 3 0.75 ] ) ;
Operaciones con polinomios
El comando regresa
p = [ 1 0.25 -12.75 9 ]
Que equivale a:
g(x) = x3+0.25x2 – 12.75x + 9.
Operaciones con polinomios
Evaluación de polinomios
>>polyval ( p , x ) ;
Donde:
p = Es el polinomio a evaluar
x = La abscisa en donde se quiere calcular f (x).
Operaciones con polinomios
Por ejemplo, si se tiene el polinomio
f(x) = 4x3 + x2 - 51x + 36
Y se quiere evaluar y(0.5), se tiene que:
En Matlab:
>>p = [ 4 1 -51 36 ] ;
>>s = polyval ( p, 0.5 ) ;
ó
>>s = polyval ( [ 4 1 -51 36 ] , 0.5 ) ;
Dá por resultado s = 11.25; es decir que el valor de
y(0.5) = 11.25.
¿Y si se quiere evaluar la función en varios valores de x?
Operaciones con polinomios
>>p = [ 4 1 -51 36 ] ;
>>x = [ .5 1.5 2.4 3.8 ] ;
>>s = polyval ( p, x ) ;
ó
>>s = polyval ( [ 4 1 -51 36 ] , [ .5 1.5 2.4 3.8 ] ) ;
El resultado es:
s = [ 11.25 -24.75 -25.344 76.128 ]
Que indican:
y(.5) = 11.25
y(1.5) = -24.75
y(2.4) = -25.344
y(3.8) = 76.128
Operaciones con polinomios
Derivación de un polinomio
Matlab nos brinda una función cuyo objetivo es proporcionar un
vector con los coeficientes correspondientes a la primera derivada de
un polinomio dado. Dicha función es:
>>polyder ( x ) ;
Operaciones con polinomios
Por ejemplo si se quiere derivar a:
f(x) = 4x3 + 2x2 - 5x + 6
En Matlab:
>>p = [ 4 2 -5 6 ] ;
>>s = polyder ( p ) ;
O también podemos escribir:
>>s = polyder ( [ 4 2 -5 6 ] ) ;
El comando regresa s = [ 12 4 -5 ],
Operaciones con polinomios
• Interpolación
• Ajuste de polinomios a datos tabulares
• Integración numérica en Matlab
Matemáticas simbólicas
• Agrupar términos semejantes
• Expandir una expresión
• Factorizar una expresión
• Simplificar una expresión
• Convertir de simbólico a valor numérico
• Realizar operaciones aritméticas simbólicas
• Resolución de ecuaciones
• Solución de ecuaciones diferenciales
• Derivación de expresiones simbólicas
• Integración de expresiones simbólicas
Tipos de Archivos *.m
1. Archivos de comandos (scripts).- Conjunto
de comandos que se ejecutan
sucesivamente cuando se teclea el
nombre del archivo en la línea de
comandos de MATLAB.
2. Funciones.- Permiten definir funciones análogas a las
de MATLAB, con su nombre, sus
argumentos y sus valores de retorno.
Entrada de valores desde teclado
Variante de la sentencia input
• Permite imprimir un mensaje en la línea de comandos de MATLAB y recuperar como valor de retorno un valor alfanumérico (texto).
• » nombre = input('¿Cómo te llamas?','s')
Sentencia fprintf
• Nos da una salida formateada• fprintf('El número de ecuaciones es: %d\n',n)• fprintf('El determinante es: %lf10.4\n',n)
• %s para cadenas de caracteres• %d para variables enteras• %f para variables de punto flotante• %lf para variables de doble precisión
• fprintf('\n\nSe cumplió el Error Permisible.\n');• fprintf('Método de Newton-Bayle\n\n');
Sentencia elseif (Bifurcación Múltiple)
if Cond 1
bloque 1
elseif Cond 2
bloque 2
elseif Cond 3
bloque 3
else (% opción por defecto)
bloque 4
end
bloque 1
bloque 2
bloque 3bloque 4
≈
Declaración de Funciones
function [vret_1,vret_2,etc.] = nombre(arg_1,arg2,etc)
Operaciones declaradas para la función
Si no hay valores de retorno se omiten los corchetes y el signo igual (=); si sólo hay un valor de
retorno no hace falta poner corchetes. Tampoco hace falta poner paréntesis si no hay argumentos
Lista devalores
de retorno
Nombre querecibe la
nueva función
Lista deargumentos
a usar
Funciones definidas por el usuario
• El usuario tiene que escribir sus propios procedimientos oprogramas para resolver sus problemas particulares. A esto sele llama función definida por el usuario.
• El usuario define que parámetros o argumentos recibirá sufunción y los valores de retorno (resultados).
• Las funciones definidas por el usuario se almacenan en unarchivo de tipo texto que Matlab identifica con la extensión .mcreado con el m-file editor, y son usadas como las funciones debiblioteca.
Ejemplo de declaración de Funciones
function[sumita]=lasuma(a,b)
sumita=a+b;%esta es una muestra de como se crean scripts (funciones definidas por el%usuario)
Después de teclear estas sentencias en el editor de archivos m, el archivo sedebe de guardar en una de las carpetas de trabajo previamente definida paraMatlab.
Ahora, en la ventana de comandos ejecutarlo siguiente:
>>lasuma(1,2)
>>Help lasuma
HELP para las funciones de usuario
Las primeras líneas de comentarios de cada fichero de función son muy
importantes, pues permiten construir un help sobre esa función.
• » help mi_func
Referencias
• Rafael Campillo Rodríguez
Notas del Curso de Programación
Xalapa, 2002
• Javier García de Jalón, José Ignacio Rodríguez, Jesús Vidal
Aprenda Matlab 7.0 como si estuviera en primero
Madrid, 2005
• Carlos A. Mora Barradas
Notas del Curso de Programación
Xalapa, 2006