TEMARIO 1. Que es Matlab y su entorno 1.1. Objetivos y uso del Matlab 1.2. Ejemplos de aplicación 1.3. Elementos del entorno gráfico de Matlab
1 1 1 2
2. Operaciones y Funciones Básicas. 2.1. Manejo de sesiones de trabajo 2.2. Variables: Tipos y asignación de valores 2.3. Operaciones básicas del álgebra matricial 2.4. Funciones de Matlab 2.5. Ejemplos 2.6. Problemas
3 3 4 7 10 13 17
3. Programación y Archivos m 3.1. El editor de archivos m 3.2. Manejo de archivos m y elementos el ementos básicos de programación 3.3. Estructuras de control 3.4. Aplicaciones 3.4. Aplicaciones
24 24 26 32 43
4. Graficación 4.1. Elementos de los gráficos de Matlab 4.2. Generación de gráficos 2D 4.3. Edición de atributos de los gráficos 4.4. Grabar y exportar 4.5. Introducción a gráficos 3D
50 50 50 56 62 62
5. La Interfaz Gráfica de Usuario (GUI) 5.1. El editor de Interfases Gráficas de Usuarios (GUI) 5.2. Objetos y propiedades disponibles para las GUI 5.3. Ejemplos de GUI 5.4. Planeación y desarrollo de GUI
66 66 66 68 72
1. Que es Matlab y su entor no. 1.1 Objetivo s y uso del Matlab. Matlab.
MATLAB es el nombre abreviado de “MATrix LABoratory”. MATLAB es un programa para realizar cálculos numéricos con vectores y matrices. Como caso particular puede también trabajar con números escalares −tanto reales como complejos −, con cadenas de caracteres y con otras estructuras de información más complejas. Una de las capacidades más atractivas es la de realizar una amplia variedad de gráficos en dos y tres dimensiones. MATLAB tiene también un lenguaje de programación propio. MATLAB es un gran programa de cálculo técnico y científico. Para ciertas operaciones es muy rápido, cuando puede ejecutar sus funciones en código nativo con los tamaños más adecuados para aprovechar sus capacidades de vectorización. En otras aplicaciones resulta bastante más lento que el código equivalente desarrollado en C/C++ o Fortran. En cualquier caso, el lenguaje de programación de MATLAB siempre es una magnífica herramienta de alto nivel para desarrollar aplicaciones técnicas, fácil de utilizar y que, como ya se ha dicho, aumenta significativamente la productividad de los programadores respecto a otros entornos de desarrollo. MATLAB dispone de un código básico y de varias librerías especializadas ( toolboxes ). En estos apuntes se hará referencia exclusiva al código básico. MATLAB se puede arrancar como cualquier otra aplicación de Windows , clicando dos veces en el icono correspondiente en el escritorio o por medio del menú Inicio . Al arrancar MATLAB se abre una ventana. Ésta es la vista que se obtiene eligiendo la opción Desktop/Desktop Layout/Default , en el menú View . Como esta configuración puede ser cambiada fácilmente por el usuario, es posible que en muchos casos concretos lo que aparezca sea muy diferente. De cualquier forma, en cualquier momento se puede visualizar la vista estándar eligiendo la opción indicada anteriormente. 1.2 Ejemplos de aplicación.
Matlab es un sistema general de software para matemáticas y otras aplicaciones científicas. Es utilizado por investigadores, ingenieros y analistas, así como en el entorno universitario. Las aplicaciones de Matlab comprenden la mayoría de las áreas de la ciencia, tecnología y negocios en donde se aplican métodos cuantitativos. Por ejemplo se utiliza en el Análisis Matemático, Algebra Lineal y Geometría; en estadística y sus aplicaciones en la industria incluyendo estadística descriptiva, estadística matemática y técnicas de ajuste de modelos, análisis de la varianza, control de calidad y diseño de experimentos. Así como en los sistemas de control y sus aplicaciones en la ingeniería.
-1-
1.3 Elementos del entorn o gráfi co de Matlab. Matlab.
El entorno de trabajo de MATLAB es muy gráfico e intuitivo, similar al de otras aplicaciones profesionales de Windows. Las componentes más importantes del entorno de trabajo de MATLAB 7.0 son las siguientes: El Escritorio de Matlab (Matlab Matlab Deskt Deskt op ), que es la ventana o contenedor de máximo nivel en la que se pueden situar (to dock ) las demás componentes. Las ventanas de Matlab: Command Window
(Ventana de Comandos): Es la ventana principal, se utiliza para introducir variables y ejecutar programas. Figure Windows
(Ventana de Gráficos): para visualizar gráficos, esta ventana se abre automáticamente cuando un comando matlab ejecuta la visualización del grafico. Editor Window (ventana del Editor): Se abre mediante las opciones del menú File, y se
usa para escribir y editar programas, llamados ficheros de Script y funciones matlab. Help Help Window (Ventana de Ayuda): proporciona ayuda e información sobre Matlab. Launch Pad Window (Ventana de Plataforma): Da acceso a herramientas, demos y
documentación. Command History Window (Ventana del Histórico de Comandos): Almacena y
visualiza los comandos que se introducen en la Ventana de Comandos. Workspace Window (Ventana del Espacio de Trabajo): proporciona información sobre
las variables utilizadas.
-2-
Current Directory Window (Ventana del Directorio de Trabajo Actual): Muestra los
ficheros que hay en el directorio de trabajo actual. 2. Operaciones y Funci ones básicas. básic as. 2.1 Manejo Manejo de d e sesiones de trabajo .
Hay dos modos de trabajo con MATLAB: Trabajo interactivo (Command Window) , donde el usuario realiza una consulta
(escribe una operación) y el programa la ejecuta. Trabajo programado (M-files) , donde el usuario genera uno o varios ficheros con
conjuntos de instrucciones MATLAB, que se pueden ejecutar repetidas veces (con distintos datos) desde el modo interactivo. De esta forma, el usuario puede incrementar las funciones disponibles en MATLAB, añadiendo las suyas propias. En los siguientes ejercicios se trabajara de forma interactiva en la ventana Command Window. Por defecto, la carpeta de trabajo es la carpeta MATLAB, aunque ésta se puede cambiar.
Símbolos de operaciones aritméticas Operación Símbolo Ejemplo Suma + 10+7 Resta 10-7 Multiplicación * 10*7 División Derecha / 10/7 División Izquierda \ 10\7 = 7/10 Exponenciación ^ 10^7 Prioridad de operaciones:
o Primero: Paréntesis. Para paréntesis anidados, el más interno es el que primero
se ejecuta. -3-
o Segundo: Exponenciación. o Tercero: Multiplicación y división (igual prioridad) o Cuarto; Suma y resta. 2.2 Variables: Tipos y asignación de valores.
El símbolo >> es el prompt (o indicador) de MATLAB e indica que está listo para aceptar ordenes. Para ejecutar una orden basta pulsar la tecla ENTER. El nombre que se asigna por defecto a la salida es ans (abreviatura de answer ). ). Las asignaciones en MATLAB se realizan como en cualquier lenguaje de programación, pero no requieren ningún tipo de declaración de variables (en una primera aproximación). Las operaciones se realizan siempre en aritmética de coma flotante de doble precisión. El efecto de escribir un punto y coma (;) al final de una instrucción es evitar que se muestre por pantalla su resultado, aunque sí se ejecuta. Si se utiliza el símbolo %, a partir de allí se considera que la línea es un comentario. Para poder realizar operaciones con números complejos, MATLAB tiene reservada la letra i para la unidad imaginaria. Esto es una preasignación de la variable i, que no está bloqueada de ningún modo. -4-
MATLAB distingue entre mayúsculas y minúsculas, razón por la cual la variable a y la variable A son distintas. El nombre de las variables sigue las reglas habituales de un lenguaje de programación: debe comenzar por una letra, aunque puede contener números; no debe contener espacios en blanco ni algún tipo de símbolo reservado (coma, punto y coma, dos puntos, guión,...). Conceptos Básicos Básicos
La orden clc limpia la pantalla de comandos. La orden clear elimina todas las variables no permanentes. Es posible borrar únicamente algunas de las variables del espacio de trabajo con la orden clear nombre_variable • Y si hay duda sobre alguna función de MATLAB, con la orden help nombre_funcion • se puede consultar cualquier función del programa. Además hay un menú de ayuda más detallado en la parte superior derecha de la barra de menús. •
Se interrumpe una ejecución con Ctrl + C .
Las teclas y permiten recuperar órdenes ejecutadas anteriormente. Tecleando primero un grupo de caracteres y empleando las flechas se puede recuperar un histórico de órdenes ejecutadas anteriormente que comienzan por esos caracteres. Si se quiere guardar todo lo hecho, la orden • diary nombre_fichero.txt Permite grabar en un fichero de texto la sesión de trabajo. Con diary off y diary on desactivamos y activamos la grabación en el fichero. • •
who indica qué variables se están utilizando. whos da una información más amplia amplia sobre el tamaño y tipo tipo de variable.
Al gu nas var iab les esp ecial ec ial es: •
pi es el número π.
eps es el ε máquina, es decir, el número positivo más pequeño tal que 1 + la unidad de coma flotante del ordenador. >> eps ans = 2.2204e-016 •
• •
ε
≠ 1
en
inf número infinito NaN (not –a–number –a–number ) es una magnitud no numérica y se obtiene, por ejemplo, como resultado de indeterminaciones matemáticas del tipo (0/0) ó ( ∞-∞): -5-
•
realmin y realmax son los números reales positivos, más pequeño y más grande respectivamente, que se pueden utilizar.
MATLAB no tiene aritmética entera incorporada. Las operaciones con enteros son realizadas exactamente mientras ocurran dentro de la precisión máquina (hasta unas dieciseis cifras). Aún así, MATLAB reconoce en cierto modo que se trata de números enteros y devuelve los resultados como si estuviera realizando aritmética entera. En general MATLAB trabaja en aritmética de coma flotante de doble precisión. El usuario elige el formato de salida. Algunos formatos: format short es el formato por defecto; punto
fijo y cuatro dígitos decimales format short e notación científica con cuatro
dígitos decimales format long punto fijo y catorce dígitos
decimales format long e notación científica con quince
dígitos decimales format rat aproximaciones al número racional
más cercano.
-6-
2.3 Operaciones básicas del álgebra matricial.
Por defecto, todas las variables en MATLAB se tratan como arrays con dos índices, esto es, como matrices. No obstante, es más simple comenzar aprendiendo a manipular vectores, es decir, arrays numerados con un único índice. MATLAB distingue entre vectores fila y columna. Esto resulta poco natural si se entienden los vectores como algo distinto de las matrices, pero es conveniente acostumbrarse pronto a este detalle, puesto que es parte integrante de la filosofía matricial de MATLAB.
-7-
La matrices se definen entre corchetes escribiéndolas por filas y se utiliza el punto y coma para separar una fila de otra. También se pueden separar los elementos de las filas con comas. Cada elemento de una matriz se reconoce por dos índices.
-8-
Listas implícitas
Las listas implícitas son listas de números en las que se especifica el primer y último elementos y el incremento entre cada elemento de la lista. Su empleo es muy común en MATLAB, tanto para desarrollo de las capacidades gráficas como en cualquier nivel de programación. El resultado es siempre un vector fila.
Otra forma de generar listas de número equidistantes es utilizando la función linspace en la cual hay que especificar como argumentos el primer elemento, el último elemento y el número total de elementos en la lista.
-9-
2.4 Funciones de matlab
Funciones matemáticas elementales.
Funciones trigonométricas.
- 10 -
En el caso de vectores o matrices, estas funciones actúan sobre cada uno de los elementos. En el caso de matrices cuadradas exp(A) y sin(A) no son las funciones analíticas exponencial y seno ya que estás funciones de MATLAB actúan elemento a elemento. Por la misma razón sqrt(A)*sqrt(A) no es A.
Funciones d e redondeo.
- 11 -
Vectorización de operaciones aritméticas
El producto es, por defecto, la operación de producto de matrices. De la misma manera, las potencias de una matriz son los productos repetidos de una matriz por sí misma. El símbolo de división tiene un significado más complejo, relacionado con el producto por la inversa del denominador. Para realizar productos y divisiones elemento a elemento (operaciones vectorizadas), hay que emplear los símbolos “.*” y “./” , mientras que .^2 (o expresiones parecidas con otros exponentes) sirve para elevar cada componente de una matriz o vector al exponente indicado.
- 12 -
2.5 Ejemplo s 1. Identidad Identidad trig onométric a
Sea la siguiente identidad trigonométrica:
Verifique que dicha identidad es correcta calculando ambos miembros de la ecuación, sustituyendo el valor de x por
2. Transferenci a de calor
Un objeto con una temperatura inicial T0 se introduce en el instante t=0 dentro de una cámara que tiene una temperatura constante Ts . Entonces, el objeto experimenta un cambio de temperatura que se corresponde con la ecuación:
Donde T es la temperatura del objeto en el instante t, y k es una constante.
Una lata de refresco, con una temperatura de 120°F, se introduce en un refrigerador que tiene en su interior una temperatura de 38°F. Calcular, redondeando el resultado al grado más próximo, la temperatura de la lata después de 3 horas. Considerar k=0.45.
- 13 -
3. Creació Creació n de una matri z Utilizando los comandos ones y zeros, crear una matriz de 4 x 5 en la cual las primeras
dos filas sean ceros y las dos siguientes sean unos.
4. Creació Creació n de una matri z
Crear una matriz de 6 x 6 en la cual las dos filas centrales, junto con las dos columnas centrales, sean unos, siendo el resto de elementos cero.
- 14 -
5. Manipul Manipul ación de matrices
Sean dos matrices, una A de 5 x 6 y otra B de 3 x 5. Y un vector v de longitud 9
23 56 89 1112 1415 1718 5 10 15 20 25 30 45 78 1011 1314 1617 1920 3055 3560 4065 4570 5075 5580 6 9 12 15 18 21 99 98 97 96 95 94 93 92 91
Crear las tres matrices Escribir un solo comando que reemplace: a) Las cuatro últimas columnas de las filas 1 y la 3 de A por las cuatro primeras columnas de las primeras dos filas de la matriz B b) Las cuatro últimas columnas de la cuarta fila de A por los elementos 5 a 8 de v c) Las cuatro últimas columnas de la quinta fila de A por las columnas 3 a 5 de la tercera fila de B
A([1 3 4 5],3:6) = Matriz de 4x4 compuesta por las columnas 3 a 6 de las filas 1, 3, 4 y 5 [B([1 2],1:4);v(5:8);B(3,2:5)] = Matriz de 4x4 las primeras dos filas son las columnas 1 a 4 de las filas 1 y 2 de la matriz B. La tercera fila son los elementos 5 a 8 del vector v. la fila cuarta son las columnas 2 a 5 de la fila 3 de la matriz B - 15 -
6. Resoluc Resoluc ión de tres ecuaciones ecuaciones lineales lineales
Resolver el siguiente sistema de ecuaciones lineales.
42 28 62 84 6 10 3 0
42286284 6 1010 3 0
El sistema anterior se puede representar de forma matricial AX=B
7. Experimento de fric ción (procesamiento de arrays elemento elemento a elemento) elemento)
El coeficiente de fricción µ se puede calcular experimentalmente midiendo la fuerza F requerida para mover una masa m. a partir de estos parámetros, el coeficiente de fricción se puede calcular de la forma:
9.81 ⁄
En la tabla siguiente se presentan los resultados de seis experimentos en los cuales se midió F. Determinar el coeficiente de fricción en cada experimento, así como el valor medio de todos los experimentos realizados. Experimento
1
2
3
4
5
6
Masa m (kg)
2
4
5
10
20
50
Fuerza F (N)
12.5
23.5
30
61
118
294
- 16 -
2.6 Problemas
1. Calcule: a) b)
.. 76 22 7 7 55 √ 910 √ √ 43 √ Cos √ 5 26.26.7 52 52 || | |||
2. Calcule: a) b)
3. Calcule: a) b)
4. Calcule: a) b)
5. Defina la variable x=13.5 y calcule: a) b) c)
6. Defina las las variables x=9.6 y z=8.1 calcule: d) e)
7. Defina las variables a=15.62, b=-7.08, c=62.5 y d=0.5(ab-c), y calcule: a) b)
8. Dadas las siguientes identidades trigonométricas: - 17 -
a) b)
2 2 coscos
Verifique que ambas son correctas calculando para ello cada lado de la identidad, sustituyendo el valor de
9. Dadas las siguientes identidades trigonométricas: c) d)
2
Verifique que ambas son correctas calculando para ello cada lado de la identidad, sustituyendo el valor de
/7 cos cos cos 2 12 12
10. Defina dos variables: . Utilice estas variables para demostrar que la siguiente identidad trigonométrica es correcta.
11. Cuando se suman fracciones debe calcularse el mínimo común múltiplo para poder realizar la operación correctamente. Por ejemplo en minimo común múltiplo de ¼ y 1/10 es 20. Encuentre una función apropiada que calcule el mínimo común múltiplo de dos números, por ejemplo demuestre que: a) El minimo común múltiplo de 4 y 10 es 20 b) El minimo común múltiplo de 6 y 38 es 114 12. La magnitud M de un terremoto en la Escala Richter viene dada por:
donde E es la energía emitida por el terremoto y E 0=104.4 julios es una un a constante (energía de un terremoto más pequeño de referencia). Determine cuantas veces más energía emite un terremoto que registra 7.2 en la Escala de Richter respecto a otro que registra 5.3. 13. Cree un vector fila que contenga los elementos: 32, 4, 81,e2.5, cos(π/3), 14, 12
14. Cree un vector columna que contenga los elementos: 55, 14, ln(51), 987, 98 7, 0, 5sen(2.5π). 15. Cree un vector fila en el cual el primer elemento sea 1 y el último elemento sea 33, con una distancia de 2 entre los elementos (1, 3, 5,….33). - 18 -
16. Cree un vector columna en el cual el primer elemento sea 15, la distancia de los elementos sea -5, y donde el último elemento sea -25. (un vector columna se puede crear a partir de la transposición de un vector fila). 17. Cree un vector fila con 15 elementos igualmente distanciados, en el cual el primer elemento sea 7 y el último 40. 18. Cree un vector columna con 12 elementos igualmente distanciados, en el cual el primer elemento sea -1 y el último -15. 19. Cree un vector, llamado Aprimero, que tenga 16 elementos, siendo el primero el 4, con un incremento de 3 siendo el último elemento el 49. Posteriormente utilice el símbolo de dos puntos para crear un nuevo vector, llamado Asegundo, que tenga ocho elementos. Los primeros cuatro elementos serán los primeros cuatro elementos del vector Aprimero, y los cuatro últimos serán los cuatro últimos elementos del vector Aprimero. 20. Cree una matriz como la que se muestra utilizando la notación de vectores para crear vectores con distancia constante, y/o el comando linspace para crear las filas.
1 4 7 1 0 1 3 1 6 1 9 2 2 2 5 720 0.12566 0.26050 0.35475 0.54800 0.42625 0.36750 0.30875 1.240 612 436 234 110 87875 34 18 7 41 9
21. Cree la siguiente matriz: A=
Utilice la matriz para: a) Crear un vector fila de cinco elementos llamado va, que contenga los elementos de la segunda fila de A. b) Crear un vector fila de seis elementos llamado vb, que contenga los elementos de la cuarta columna de A. c) Crear un vector fila de diez elementos llamado vc , que contenga los elementos de la primera y segunda fila de A. d) Crear un vector fila de seis elementos llamado vd que que contenga los elementos de la segunda a la quinta columna de A. 22. Cree la siguiente matriz: C= Utilice la matriz C para:
23 64 96 128 1510 7 14 21 28 35 - 19 -
a) Crear un vector columna de tres elementos llamado ua, que contenga elementos de la tercera columna de C. b) Crear un vector columna de cinco elementos llamado ub, que contenga elementos de la segunda fila de C. c) Crear un vector columna de nueve elementos llamado llamado uc , que contenga elementos de la primera, tercera y quinta columna de C. d) Crear un vector columna de diez elementos llamado ud , que contenga elementos de la primera y segunda fila de C.
23. Cree la siguiente matriz
los los los los
1 2 3 4 5 6 7 2152 10184 15615 208122510109 30126 35134
a) Cree una matriz B de 3x4 a partir de la primera, tercera y cuarta fila, fila, y de la primera, tercera, quinta y séptima columna de la matriz A. b) Cree un vector fila de 15 elementos llamado u, a partir de los elementos de la tercera fila y de la quinta a la séptima columna de la matriz A. 24. Utilizando las funciones zeros, ones y eye, cree los siguientes arrays:
1 0 0 0 1 1 0 0 0 0 0 0 1 0 0 0 0 0 0 0 00 00 10 01 11 11 10 01 00 00 00 00 00 22 22 22 00 55 55 55 0 0 1 0 0 0 0 3 3 3 0 5 5 5 00 00 00 10 01 00 00 04 04 07 10 09 09 09 00 00 00 00 00 10 01 44 44 77 00 99 99 99
25. Utilizando el comando eye, cree un array A. a continuación, utilice los dos punto para acceder a los elementos en el array, cambiando el array para que sea como el de la parte derecha.
26. Utilizando las funciones zeros y ones, cree una matriz 3x5 en la cual la primera, segunda y quinta columnas sean ceros, y la tercera y cuarta columnas sean unos. 27. Cree una matriz de 5x7 en la cual la primera fila contenga los números: 1 2 3 4 5 6 7, y la segunda fila contenga: 8 9 10 11 12 13 14, la tercera fila contenga los números del 15 al 21, y así sucesivamente. A partir de esta matriz, cree otra - 20 -
nueva de 3x4 compuesta por las filas 2 a la 4 y las columnas de la 3 a la 6 de la primera matriz. 28. Cree una matriz A de 3x3 donde todos los elementos sean 1. Cree también una matriz B de 2x2 donde todos los elementos sean 5. A continuación, añada nuevos elementos a la matriz A a base de añadir la matriz B, de manera que A quede finalmente de la siguiente forma:
11 11 11 00 00 10 10 10 05 05 0 0 0 5 5 1
29. Sea la función , calcular el valor de y para para los siguientes valores de x : -2.5, -2, -1.5, -1, -0.5, 0, 1, 1.5, 2, 2.5, 3. Resuelva el problema creando primero un vector x y y después un vector y , utilizando las operaciones elemento a elemento para el cálculo. 30. La profundidad de un pozo, d , en metros se puede determinar a partir del tiempo que tarda en caer una piedra a su interior (vel. inicial cero). Este cálculo viene determinado por: , donde t es el tiempo en segundos y g=9.81 m/s 2. Calcular d para t=1, 2, 3, 4, 5, 6, 7, 8, 9, 10 s. Cree un vector t y calcule d utilizando operaciones elemento a elemento.
31. Defina x e e y como como vectores, tales que x=2, 4, 6, 8, 10, y=3, 6, 9, 12, 15 . Calcular a partir de operaciones elemento a elemento. z a
12
32. Defina los escalares h=0.9, k=12.5, y los vectores x=1, 2, 3, 4, y= 0.9, 0.8, 0.7, 0.6, z=2.5, 3.0, 3.5, 4.0. Utilice estas variables para calcular T utilizando operaciones elemento a elemento.
lim 11 1
33. Demuestre que Para hacer esto cree un vector n que tenga los elementos: 1, 10, 100, 500, 1000, 2000, 4000, 8000. Después cree un vector y en el cual cada elemento será calculado a partir de los elementos de n mediante Compare los elementos de y con con el valor de e (teclee exp(1) para el valor de e) - 21 -
34. Demostrar que la serie numérica
∑
converge a
6
. Para hacer esto,
calcule la suma para: a) n=100 b) n=1000 c) n=10000 para cada inciso, cree un vector v en el cual el primer elemento sea 1, con incremento 1, y como ultimo termino 100, 1000 o 10000. Utilice posteriormente operaciones elemento a elemento para crear un vector en el cual los elementos sean 1/n2. Finalmente utilice la función sum para sumar los términos de la serie. Compare los valores obtenidos en los incisos a, b, c con el valor 35. demostrar que la serie
∑
6
converge a ln 2. Para hacer esto, calcule
la suma para: a) n=50 b) n=500 c) n=5000 para cada inciso cree un vector n en el cual el primer elemento sea 0, el incremento 1 y el último término 50, 500, 5000. Posteriormente calcule, mediante operaciones elemento a elemento, un vector en el cual los elementos sean . Finalmente utilice la función sum para sumar los
términos de la serie. Compare el valor obtenido en los incisos a, b, c, con ln 2. 36. Cree las siguientes matrices:
7 1 4 1 5 2 4 11 5 3 61 107 30 02 126 41 108 53 29
a) Calcule A+B y B+A para demostrar que la suma de matrices cumple la propiedad conmutativa. b) Calcule A+(B+C) y (A+B)+C para demostrar que la suma de matrices cumple la propiedad asociativa. c) Calcule 5(A+C) y 5A+5C para demostrar que, cuando se multiplica una matriz por un escalar, la multiplicación cumple la propiedad distributiva. d) Calcule A(B+C) y AB+AC para demostrar que la multiplicación de matrices cumple la propiedad distributiva. 37. Utilice las matrices A, B y C anteriores para contestar a las siguientes preguntas: a) ¿Es A*B=B*A b) ¿Es A*(B*C)=(A*B)*C? - 22 -
c) ¿Es (A*B)t=Bt*At? (t significa transpuesta) d) ¿Es (A+B)t=At+Bt? 38. Resuelva el siguiente sistema de ecuaciones lineales: 5x+4y-2z+6w=4 3x+6y+6z+4.5w=13.5 6x+12y-2z+16w=20 4x-2y+2z-4w=6 39. Un proyectil se dispara con una velocidad de 750 m/s. calcule la distancia d a la que el proyectil alcanza el suelo si el ángulo de lanzamiento θ cambia de 5° a 85° en incrementos de 5°. Utilice operaciones elemento a elemento para visualizar los resultados cree una matriz de 17x2 en la cual los elementos de la primera columna sean los ángulos de lanzamiento, y los de la segunda las correspondientes distancias redondeadas al entero más próximo. 40. Dos proyectiles A y B, se disparan en el mismo instante desde el mismo punto. pun to. El proyectil A se dispara a una velocidad de 680 m/s con un ángulo de 65°, mientras que el proyectil B se dispara a una velocidad de 780 m/s con un ángulo de 42°. Calcule que proyectil llega antes a tierra. Después, tome el tiempo de vuelo tf de ese proyectil y divídalo en diez incrementos, creando para ello un vector t con 11 elementos igualmente espaciados (el primer elemento será 0 y el ultimo tf ). ). Calcule la distancia entre los dos proyectiles para cada una de estas 11 tabulaciones de t
- 23 -
3. Programación y Archi vos m. 3.1 3.1 El editor d e archivos m.
Las funciones y scripts no son más que archivos de texto ASCII, con la extensión *.m , que contienen definición de funciones o conjuntos de comandos respectivamente. El editor permite tanto crear y modificar estos archivos, como ejecutarlos paso a paso para ver si contienen errores (proceso de Debug o depuración, eliminar errores al programa). También Matlab permite que utilicemos cualquier editor (edit de DOS, Word, Notepad, etc.), ya que los archivos son sólo de texto. El gráfico muestra la ventana principal del Editor/Debugger . Puede apreciarse que aun no se ha introducido código alguno. El editor muestra con diferentes colores los diferentes tipos o elementos constitutivos de los comandos. (en verde los comentarios, en rojo las cadenas de caracteres, etc.). El editor además indica que las comillas o paréntesis que se abren se cierren correctamente. A continuación se observa un script llamado prueba.m , (en la barra azul puede verificarse), el cual contiene un conjunto de comandos, relativos al uso de matrices y cadenas. NOTAS: La función rand (n ) retorna una matriz cuadrada n xn , cuyos elementos son números aleatorios entre 0 y 1, la función magic(n) también retorna una matriz cuadrada nxn pero con la particularidad de que la suma de los elementos de cada una de sus filas, columnas y diagonales tiene el mismo valor.
- 24 -
Recuerde que las cadenas de caracteres se delimitan con comillas simples y no con comillas dobles. La función in v (M) retorna la matriz inversa de M. Es importante la utilización del punto y coma ( ; ) al final de cada sentencia, pues evita que Matlab haga eco de la misma al ejecutarla produciendo salida innecesaria al Command Window. Esta figura corresponde a la ejecución de este archivo de comandos controlado con el Debugger . Dicha ejecución se comienza con el comando Run en el menú Debug . Los puntos rojos que aparecen en el margen izquierdo son breakpoints (puntos donde se detiene la ejecución del programa). La flecha amarilla indica la sentencia en que está detenida la ejecución; cuando el cursor se coloca sobre una variable aparece una ventana con los valores de esa variable. Puede verse en la figura que está activa barra de herramientas que corresponde al Debugger . Cada botón significa lo siguiente. Set/Clear Breakpoint. Coloca o borra un breakpoint en la línea en que está el cursor. Clear All Breakpoints. Elimina todos los breakpoints que haya en el fichero. Step. Avanzar un paso sin entrar en las funciones de usuario llamadas en esa línea. Step In. Avanzar un paso, y si en ese paso hay una llamada a una función cuyo fichero *.m está accesible, entra en dicha función. Step Out. Salir de la función que se está ejecutando en ese momento. Continue. Continuar la ejecución hasta el siguiente breakpoint. Exit Debug Mode. Terminar la ejecución del Debugger. Stack. En la parte derecha de la barra de herramientas aparece esta lista desplegable mediante la cual se puede elegir el contexto, es decir el espacio de trabajo o el ámbito de las variables que se quieren examinar. - 25 -
3.2 3.2 Manejo Manejo de Archiv os m y elementos elementos básicos de programación. ¿Cómo ¿Cómo accedemos accedemos al edito r? Desde el Command Window: >> edit; Desde el menú File / New / M-file. ¿Cómo ¿Cómo s e ejecuta ejecuta un scri pt?
Sencillamente se debe introducir su nombre en la línea de comandos. O mediante el editor. ¿Cómo ¿Cómo se ejecuta ejecuta una func ión?
De igual manera que un script pero sus argumentos deben pasarse entre paréntesis y separados por coma. Ejemplo: mi_funcion(arg1, arg2, ..., argn) ¿Qué ¿Qué es una vari able?
Una variable es esencialmente una etiqueta a la que se le asigna un valor mientras el valor permanece en memoria. Funciones de entrada y salida: Valores Valores de entrada en en un fichero scrip t.
Cuando se ejecuta un fichero script, las variables utilizadas en los cálculos dentro del fichero deben tener valores asignados previamente. La asignación de estos valores se puede realizar de tres formas, dependiendo de dónde y cómo se haya definido la variable.
- 26 -
Input: Esta función permite imprimir un mensaje en la línea de comandos y recuperar
como valor de retorno un valor numérico o el resultado de una expresión tecleada.
el comando input también se puede utilizar para asignar una cadena a una variable. se puede realizar de dos formas: Una es introduciendo la cadena entre comillas simples una vez que el mensaje del comando input se visualiza en la Ventana de comandos. Otra es utilizar una opción de comando input que permite concretar que los caracteres serán introducidos como cadena. Este comando tiene la siguiente forma: nombre_variable=input(‘Mensaje’,’s’) - 27 -
Comandos de Salida: Comando Disp:
Esta función permite imprimir en pantalla un mensaje de texto o el valor de una matriz, pero sin imprimir su nombre. En realidad, disp siempre imprime vectores y/o matrices: las cadenas de caracteres son un caso particular de vectores.
- 28 -
Comando Comando fprintf :
Se utiliza para visualizar salidas de programas (texto y datos) en la pantalla, o bien para almacenarlas en un archivo, con este comando a diferencia de disp ., la salida puede tener un formato preestablecido. En este caso se pueden combinar texto y resultados numéricos provenientes de cálculos o variables predefinidas en la misma línea. Además, el formato de los números se puede controlar directamente. % La sa sall i da de est a l í nea se escr i bi r á en f orma co con nt i nua f pr i nt f ( ' El pr obl ema no no t i en ene e sol sol uci ón ón.. Po Porr f av avo or , co com mpr ueb ebe e l os da dat os de de en ent r ad ada a' )
El problema no tiene solución. Por favor, compruebe los datos de entrada % La sa sall i da d de e est a l í nea e es s di di vi da en en dos r engl ones p po or el ca carr áct er \ n f pr i nt f ( ' El pr obl ema no no t i en ene e sol sol uci ón ón.. \ n Por Por f av avor, or, co com mpr ueb ebe e l os datos datos de en entt r ad ada' a' )
El problema no tiene solución. Por favor, compruebe los datos de entrada>> Utilización del comando fprintf para para visualizar datos y texto junto s:
fprintf(‘texto %-5.2f texto adicional’, nombre_variable) insertará el numero numero dentro del texto. o el símbolo % marca el lugar donde se insertará o El signo – (opcional), bandera, si es – (menos) Justificación Justificación izquierda del numero dentro del campo, si es + (mas) Visualiza el carácter del signo(+ o -) delante del numero, si es 0(cero) Añade ceros si el numero es más pequeño que el campo. o La especificación del ancho y precisión del campo (5 en el ejemplo) es opcional. El primer número es el ancho del campo, el cual nos indica el menor número de dígitos en la visualización. Si el numero que se visualiza es menor que el ancho del campo, se añadirán ceros o espacios delante del número en cuestión. El segundo número (2 en el ejemplo) especifica el número de dígitos que se mostraran a la derecha del punto decimal. o El formato de conversión (f en el ejemplo), es obligatorio. A continuación se muestran los caracteres de conversión más utilizados: e E f g G i
Notación exponencial en minúsculas (ej. 1.709098e+001) Notación exponencial en mayúsculas (ej. 1.709098E+001) Notación de punto fijo (ej. 17.090980) Representación en formato corto de las notaciones e o f. Representación en formato corto de las notaciones E o f Entero
- 29 -
Ejemplo Ejemplo de cómo us ar el el comando fpri ntf:
- 30 -
- 31 -
3.3 3.3 Estructuras d e Contro Contro l 3.3.1 Sentencia If:
En su forma más simple, la sentencia if se describe como sigue: if condicion sentencias end
La condición no va encerrada entre paréntesis. Existe también la "bifurcación múltiple", en la que pueden concatenarse tantas condiciones como se desee, y que tiene la forma: if condicion1 bloque1 elseif condicion2 bloqu e 2 elseif condicion3 bloqu e 3 else % opción por defecto para cuando no se cumplan las otras condiciones. bloqu e 4 end
El uso de else es opcional. Operadores Operadores relacionales relacionales Igualdad == Desigualdad ~= Menor Menor < Mayor Mayor > Menor Menor o igual <= Mayor Mayor o igual >=
Operadores Operadores lógic os and or not xor any all
& (ampersand) | (pipe) ~ (tilde) o exclusivo True si algún elemento del vector es true True si todos los elementos del vector son true
Ejemplos
- 32 -
- 33 -
3.3.2 3.3.2 Sentencia Sentencia Swi tch: tch :
Esta sentencia realiza la función análoga a un conjunto if ...elseif concatenados. Su forma general es: switch switch_expresion switch_expresion case {case_expr {case_expr1} 1} bloqu e 1 case {case_expr2, case_expr3, case_expr4, ...}, bloqu e 2 otherwise, bloqu e 3 end NOTA: Al igual que con else, el uso de otherwise es opcional. Al principio se evalúa la switch_expresion , cuyo resultado debe ser un número escalar o una cadena de caracteres. Este resultado se compara con las case _ expr expr , y se
ejecuta el bloque de sentencias que corresponda con ese resultado. Si ninguno es igual a switch _ expresion e xpresion se ejecutan las sentencias correspondientes a otherwise (que significa de otra manera). Es posible poner varias case _ expr e xpr dentro de llaves. Ejemplo de uso switch:
- 34 -
3.3.3 3.3.3 Sentenc Sentenc ia For :
La sentencia for repite un conjunto de sentencias un número predeterminado de veces. La siguiente construcción ejecuta sentencias con valores de i de 1 a n, variando en uno: for i=1:n sentencias end
For anidados: for i=1:n for j=1:m sentencias end end Ejemplos Ejemplos de uso de for:
nro = input('Ingrese un número positivo: '); - 35 -
- 36 -
Serie Numérica: Calcular la suma de los primeros n términos de la siguiente serie numérica: Ejecutar el archivo para n=4 y para n=20.
∑
Modificación de los elementos de un vector: Sea el vector V=[5,17,-3,8,0,-1,12,15,20,-6,6.4,-7,16],. Escribir un programa que multiplique por dos los elementos de V positivos y divisibles por 3 y/o por 5, y eleve al cubo los elementos negativos pero mayores que -5
- 37 -
3.3.4 3.3.4 Sentenc Sentenc ia Whi le:
La sintaxis de la estructura while es la siguiente. while condicion sentencias end - 38 -
donde condicion puede ser una expresión vectorial o matricial. Las sentencias se siguen ejecutando mientras haya elementos distintos de cero en condicion , es decir, mientras haya algún o algunos elementos true. El bucle termina cuando todos los elementos de condicion son false (es decir, cero). Ejemplo Ejemplo de uso de while:
Ejemplo Ejemplo de uso de whi le con br eak eak (corta el bucle):
- 39 -
3.3.5 Funciones (Function)
Los scripts aportan a Matlab la manera de realizar tareas de una manera más rápida. Las funciones permiten definir funciones enteramente análogas a las de Matlab, con su nombre, sus argumentos y sus valores de retorno . Los archivos *.m que definen funciones permiten extender las posibilidades de Matlab; de hecho existen bibliotecas de archivos *.m que se venden (toolkits ) o se distribuyen gratuitamente. Tanto en scripts como en funciones la primera línea de comentarios conforma el help. Ejemplo:
Dado el script llamado cuadrado.m: % este este es un scr ipt que eleva eleva un núm ero al cuadrado
nro = input('Ingrese input('Ingrese un número positivo: '); '); nro = nro * nro;
disp('El disp('El número ingresado elevado al cuadrado es: '); ' ); disp(nro); Y cuando escribimos en el Workspace: >> help cuadrado este es es un script que eleva eleva un número al cuadrado - 40 -
Construcción de funciones: La primera línea de un archivo llamado ejemplo.m que define una función tiene la
forma: funct ion [ lista de valores de retorno] = ejemplo ejemplo (lista de argum argum entos) donde ejemplo es el nombre de la función. Entre corchetes y separados por coma van los valores de retorno (siempre que haya más de uno), y entre paréntesis también separados por comas los argumentos . Puede haber funciones sin valores de retorno y
también sin argumentos. Si no hay valores de retorno se omiten los corchetes. Y el signo igual (=); si sólo hay un valor de retorno no hacen falta poner corchetes. Tampoco hace falta poner paréntesis si no hay argumentos. Las variables definidas dentro de una función son variables locales, en el sentido de que son inaccesibles desde otras partes del programa y en el que no interfieren con variables del mismo nombre definidas en otras funciones o partes del programa. Para que la función tenga acceso a variables que no han sido pasadas como argumentos es necesario declarar dichas variables como variables globales, tanto en el programa principal como en distintas funciones que deben acceder a su valor. Dentro de la función, los valores de retorno deben ser calculados en algún momento (no hay sentencia return ). Se utiliza return sólo para salir forzosamente del cuerpo de la función. Ejemplos de funciones:
- 41 -
√
Escribir un archivo de función (llamado ecuación) para la función . La entrada de la función es x y y la salida f(x). Escribir la función tal que x sea sea un vector. Utilizar la función pata calcular:
- 42 -
3.4 3.4 Apl icaciones Plan de pensiones.
Una persona jubilada de la Universidad tiene 500,000 pesos en una cuenta de plan de pensiones que le paga el 5% de interés anual. Esta persona planea sacar dinero de su cuenta una vez al año. Empieza sacando 25,000 pesos después del primer año. Posteriormente en el futuro, incrementara la cantidad retirada en función de la tasa inflación anual. Por ejemplo, si la inflación es del 3%, retirara 25750 pesos al final del segundo año. Calcular el número de años que esta persona tardara en sacar todo el dinero de su cuenta. Suponiendo para ello una inflación anual constante del 2%. Representar en un grafico las cantidades anuales de dinero retiradas y el balance de la cuenta a lo largo de los años.
- 43 -
Generación de números para el sorteo de la lotería.
En un sorteo de lotería el jugador debe elegir varios números de entre una lista dada. Escribir una función que genere una lista n de números enteros, distribuidos uniformemente entre un rango a y b. todos los números seleccionados de la lista deben ser distintos. a) Utilizar la lista para generar una lista de 6 números que varíen entre 1 y 49 b) Utilizar la lista para generar una lista de 8 números que varíen entre 60 y 75 c) Utilizar la lista para generar una lista de 9 números que varíen entre -15 y 15
- 44 -
Problemas:
1.- la temperatura máxima diaria (en °F) en Nueva York y Anchorage, Alaska, durante el mes de enero de 2001 viene dada por los siguientes vectores. TNY=[31 26 30 33 33 39 41 41 34 33 45 42 36 39 37 45 43 36 41 37 32 32 35 42 38 33 40 37 36 51 50] TANC=[37 24 28 25 21 28 46 37 36 20 24 31 34 40 43 36 34 41 42 35 38 36 35 33 42 42 37 26 20 25 31] Escriba un programa que calcule: a) La temperatura media en ese mes para cada ciudad. b) El número de días que estuvo la temperatura de cada ciudad ciudad por debajo de la media. c) El número de días, y a que días de mes corresponden, en los cuales la temperatura fue igual en ambas ciudades. d) El número de días, y a que días del mes corresponden, en los cuales la temperatura de ambas ciudades se mantuvo por encima de 32 °F.
4 6 2 6.5 2 2.52.2.5 6
2.- represente la siguiente función de dos formas distintas:
a) Escribiendo un fichero script que utilice bucles y sentencias condicionales. b) Escribiendo una función f(x) f(x) para utilizarla posteriormente en un archivo script 3.- escriba un programa script que calcule las raíces reales de una función cuadrática ax2+bx+c=0. - 45 -
Llame al archivo raicescuad . Cuando el archivo se ejecute, este debe pedir al usuario que introduzca los valores de las constantes a, b y c . Para calcular las raíces de la ecuación, el programa calculara el discriminante D=b2-4ac Si D>0, el programa visualizara un mensaje del tipo: ’La ecuación tiene dos raíces’, y los valores de las raíces se visualizaran en la línea siguiente. Si D=0, el programa visualizara un mensaje del tipo: ’La ecuación tiene una raíz’, y el valor de la raíz se visualizara en la línea siguiente. Si D<0, el programa visualizara un mensaje del tipo: ’La ecuación no tiene raíces reales’. Calcule las soluciones de las siguientes ecuaciones: 2x2+8x-3=0 15x2+10x+5=0 18x2+12x+2=0 4.- utilice bucles para crear una matriz A de dimensión 4x7, en la cual el valor de cada elemento sea la suma de sus índices (el número de la fila y el número de la columna de cada elemento). Por ejemplo, el valor del elemento A(2,5) será 7. 5.- utilice bucles y sentencias condicionales para crear una matriz de dimensión 5x8, en la cual el valor de cada elemento sea igual a la raíz cuadrada de la suma de los índices de cada elemento, siempre que el elemento no se encuentre en una columna o fila par. El valor de un elemento que este en una fila o columna par será igual a la suma del cuadrado de los índices. 6.- escriba un programa (utilizando un bucle) que calcule la suma de los m primeros términos de la serie:
1 21 1 0, 1, 2, … , 1
Esta serie se denomina serie de Leibniz, y converge a π/4. Ejecute el programa para m=10 y m=500, compare posteriormente estos resultados con el valor exacto π/4. 7.- sea el vector x= [15 -6 0 8 -2 5 4 -10 0.5 3]. Escriba un programa que utilice sentencias condicionales y bucles para calcular la suma de los elementos positivos del vector x 8.- escriba un programa script que encuentre el menor número entero impar que sea divisible por 3, y cuyo cubo sea mayor que 4000. Utilice un bucle que comience en 1 y se detenga cuando encuentre el número que cumpla las condiciones anteriores. Finalmente el programa visualizara el mensaje: ’El número pedido es: ‘, y visualizara seguidamente el número calculado. - 46 -
9.- escriba una función que ordene los elementos de un vector de cualquier longitud, de mayor a menor. Utilice la siguiente línea de definición de función: y=ordenar(x). la entrada de la función será un vector x de cualquier longitud, y la salida y será un vector que contendrá los elementos de x en orden descendente. No se puede utilizar la función predefinida Sort para este ejercicio. Cree su propia función y pruébela con un vector de 14 elementos (enteros) generados aleatoriamente y distribuidos entre -30 y 30.utilice la función rand para generar el vector inicial. 10.- escriba una función que ordene los elementos de una matriz. Utilice la siguiente línea de definición de función: B = ordenarmatriz(A), donde A será una matriz de cualquier tamaño, y B será otra matriz del mismo tamaño con los elementos de A ordenados de forma ascendente, fila por fila. De esta forma, los elementos B(1,1) y B(m,n) serán respectivamente, los elementos menor y mayor de la matriz ordenada. pruebe posteriormente esta función en una matriz de 4x7 , con números enteros generados aleatoriamente y distribuidos entre -30 y 30. Utilice la función rand para generar la matriz inicial. 11.- escriba un programa que calcule el costo de enviar un paquete en función de la siguiente tabla de precios: Tipo de servicio
Peso (0-2 libras)
Tierra
$ 15
Aire
$ 30
Nocturno
$ 180
Peso (2-10 (2-10 li bras )
Peso (10-50 (10-50 lib ras)
$15 + $5 adicionales por cada libra o fracción de libra, a partir de las 2 libras de peso $30 + $5 adicionales por cada libra o fracción de libra, a partir de las 2 libras de peso $180 + $60 adicionales por cada libra o fracción de libra, a partir de las 2 libras de peso
$55 + $3 adicionales por cada libra o fracción de libra, a partir de las 10 libras de peso $102 + $6 adicionales por cada libra o fracción de libra, a partir de las 10 libras de peso No se realizarán entregas para paquetes que pesen más de 10 libras.
El programa debe pedir al usuario que introduzca el peso y el tipo de servicio. Seguidamente, el programa visualizara el costo del servicio. Si se introduce un paquete que pese las de 50 libras para un servicio de aire o tierra, el programa visualizara un mensaje del tipo: ‘No se realiza reparto por aire o tierra para paquetes con peso superior a las 50 libras’. Si introduce el peso de un paquete que supera las 10 libras de peso para un servicio nocturno, el programa visualizara un mensaje del tipo: ‘No se realizan entregas nocturnas para paquetes que pesen más de 10 libras’. Ejecute el programa e introduzca los valores 0.5, 6.3, 20, y 50.4 para servicio de tierra y aire, así como 2,8.1 y 13 libras para el servicio de reparto nocturno.
- 47 -
12.- sea el vector x= [1:50] escriba un programa en un archivo script que borre del vector x aquellos elementos que son divisibles por 3, 4 o 5. Al final el programa debe mostrar el vector resultante. 13.- escriba una función con dos argumentos de entrada y dos de salida. La función debe calcular la altura en pulgadas y la masa en libras de una persona a partir de su altura en centímetros y de su peso en kilogramos. Utilice la siguiente definición de función para el problema: [in,lb]=SIaSTi(cm,kg). Los argumentos de entrada son la altura en centímetros y el peso en kilogramos, y los argumentos de salida son la altura en pulgadas y la masa en libras. Posteriormente utilice esta función en la ventana de comandos para: a) Determinar la altura en pulgadas y la masa en libras de una persona que mide 170cm y pesa 70kg. b) Determinar su propia altura y peso en pulgadas y libras, respectivamente.
14.- escriba una función para la siguiente función matemática: y(x)=0.9x4-12x2-5x la entrada de la función será x, y la salida será y, escriba la función de forma que x x pueda ser un vector, y utilícela para: a) Calcular y(-3) e y(5) b) Representar gráficamente la función y(x) para -4≤x≤4 15.- el valor P de una cuenta de ahorros, con un capital inicial P 0 y una tasa de interés anual r (en %) después de t años, viene dado por:
11 100
Escriba una función que calcule el valor futuro de una cuenta de ahorros. Utilice para ello la siguiente línea de definición de función: P=saval(PO,r,t). las entradas de la función serán el capital inicial, la tasa de interés y el número de años. La salida será el valor de la cuenta a partir de los datos especificados en la entrada. entrada. Utilice Utilice posteriormente esta función para calcular el valor de un capital inicial de 10000 pesos a un interés anual del 6%, después de 13 años. 16.- escriba una función que convierta las unidades de un par de torsión (fuerza que causa la rotación de un objeto) de libras-pulgada a newton-metro. Utilice la siguiente línea de definición para la función: Nm=lbintoNm(lbin). El argumento de entrada será el par en libras-pulgadas, y el argumento de salida el par en newton-metro. Utilice posteriormente esta función para convertir 500 libras-pulgada a newton-metro. - 48 -
17.- escriba una función que calcule la calificación final de un estudiante a partir de la calificación de su examen final, sus dos parciales y de los cinco trabajos realizados durante el curso. Los exámenes parciales puntúan de 0 a 100, y cada uno es un 20% de la calificación final. El examen final tiene la misma escala de puntuación, y es un 40% de la calificación final. Los trabajos, sin embargo, puntúan de 0 a 10, y todos ellos en conjunto representan un 20% de la calificación final. La función debe tener la siguiente definición: g=calfinales(R), donde la entrada será una matriz R que contenga en cada fila las calificaciones de cada estudiante. Además, por cada fila, se tendrán 8 columnas que representaran las calificaciones de los trabajos (las cinco primeras), la calificación de los dos exámenes parciales (las dos siguientes) y la calificación del examen final (la última columna) de cada estudiante. La salida de la función será un vector columna g con la calificación final del curso. Cada fila de este vector será la calificación final del estudiante cuyas calificaciones se relacionan con la correspondiente fila de la matriz R. La función debe usarse para calcular las calificaciones finales de cualquier número de estudiantes. Para el caso de un solo estudiante, la matriz R tendrá una sola fila. Aplique está función en los siguientes casos: a) Calcular la calificación final final de un estudiante con las siguientes calificaciones: 10, 5, 8, 7, 9, 75, 87, 69. b) Que el usuario capture las calificaciones de los estudiantes y las almacene en un array (cada estudiante en una fila) el programa debe calcular seguidamente las calificaciones finales utilizando la función calfinales. Calcular las calificaciones finales de los siguientes cuatro estudiantes: Estudiante A: 7, 9, 5, 8, 10, 90, 70, 85 Estudiante B: 6, 4, 7, 0, 7, 60, 71, 50 Estudiante C: 5, 9, 10, 3, 5, 45, 75, 80 Estudiante D: 8, 8, 7, 7, 9, 82, 81, 88 18.- cuando se conectan n resistencias en paralelo, su resistencia equivalente R eq viene determinada por:
1 1 1 1
Escriba una función que calcule Req. Utilice la siguiente definición: REQ=req(R), donde la entrada será un vector en el cual cada elemento representa un valor de la resistencia, y la salida será el valor de la resistencia Req. Utilice está función para calcular la resistencia equivalente de las siguientes resistencias conectadas en paralelo: 50 Ω, 75Ω, 300Ω, 60Ω, 500Ω, 180Ω, 200Ω
- 49 -
4. Graficación. 4.1 Elementos de los gráfi cos de Matlab. Matlab.
Con los comandos de Matlab se pueden crear distintos tipos de gráficos: estándares con ejes lineales, logarítmicos o semilogarítmicos, de barras y escaleras, polares, de malla y de superficies de contorno tridimensional, etc. Estos gráficos se pueden personalizar para que tengan la apariencia deseada. Así, se puede establecer el tipo, el color y el grosor de línea; se pueden añadir líneas de referencia y cuadriculas; y también títulos y comentarios. . Además se pueden superponer varios gráficos sobre un mismo sistema de ejes coordenados, o poner varios gráficos en una misma página. Cuando un grafico tiene varios tipos de datos, también se pueden añadir leyendas. 4.2 Generació Generació n de gráfico s 2D 4.2.1 4.2.1 El com ando Plot
Se utiliza para crear gráficos bidimensionales. 9 8
La primer grafica
7
La orden >> x=[1 2 3], y=[1 4 9], plot(x,y)
6 5
x= 1
2
4
3
3
y= 1
4
9
2 1
Realiza la representación grafica de los puntos (1; 1), (2; 4) y (3; 9) unidos por una línea recta.
1
1. 2
1. 4
1.6
1. 8
2
2. 2
2. 4
2. 6
2. 8
3
2. 4
2.6
2.8
3
9 8
Si la orden hubiera sido >>plot(x,y,’:r’)
7
Entonces habría pintado los puntos x; y como líneas punteadas rojas.
5
6
4 3
Para personalizar los gráficos, el comando admite en su sintaxis otros argumentos plot admite que se pueden utilizar para definir el color y estilo de líneas y marcadores.
2 1
1
1. 2
1.4
1.6
1.8
2
2.2
Plot (x,y, ’especificadores de línea’, ’Propiedades’, ’Valores’) - 50 -
4.2.2 4.2.2 Especi Especific fic adores d e línea
Son opcionales y se pueden utilizar para definir el color y estilo de línea, así como el tipo de marcadores: Especificador -: -. + * . o x
Estilo de línea Línea continua Línea continua Línea de guiones Línea punteada Línea de guiones y puntos Cruces asteriscos Puntos Círculos Equis
Especificador r y m c g b w k
Color de línea rojo amarillo magenta turquesa verde azul blanco negro
Introduciendo una a una en la ventana de comandos las siguientes ordenes obtener la representación grafica de la función f ( x x ) = sen xe-0.4 x en el intervalo [0, 10]. >> x=0:0.05:10; >> y=sin(x).*exp(-0.4*x); >> plot(x,y) >> axis([0,10,-1,1]) >> xlabel('eje x'), ylabel('eje y') >> title('La Primer Grafica') >> grid >> text(4,-0.1,'Minimo')
% Por que se utiliza la operación .*? % genera la gráfica % La x valora en [0; 10] y la y en [-1; 1] % Rótulos en los ejes x; y %Titulo de la grafica % Sitúa una rejilla en la grafica %Sitúa un comentario en el punto (4,-0.1) La Primer Grafica
1 0.8 0.6 0.4 0.2 y e j e
0 Minimo -0.2 -0.4 -0.6 -0.8 -1
0
1
2
3
4
5 eje x
- 51 -
6
7
8
9
10 10
4.2.2 4.2.2 Propiedades y Valor Valor es
Son opcionales, y se utilizan para concretar el grueso de la línea, el tamaño de los marcadores, así como los colores de relleno y del borde del marcador. prop iedad
Descr Descr ipci ón
Posible valor de la prop iedad
linewidth
Especifica el grosor de la línea
markersize
Especifica el tamaño de las marcas
markeredgecolor Especifica el color del marcador, o el color del borde de la línea para marcadores con relleno markerfacecolor Especifica el color de relleno de los marcadores
Un número representado en unidades de puntos (por defecto 0.5) Un número representado en unidades de puntos Especificadores de color, introducidos en forma de cadena Especificadores de color, introducidos en forma de cadena
Ejemplo: Plot(x,y, ‘-mo’, ‘linewidth ‘,2,’markersize’,12,’markeredgecolor’,’g’,’markerfacecolor’,’y’)
Crea un gráfico en el cual una línea sólida de color magenta une puntos que se representan mediante marcadores en forma círculo. El grosor de línea es de 2 puntos, y el tamaño de los círculos utilizados como marcadores es de 12 puntos. Los marcadores (círculos) tienen bordes de color verde, y amarillo como color relleno. Especific ador
prop iedad
Estilo de línea Color de línea Marcador
Linestyle Color marker
Posible valor para la prop iedad
Especificador de estilo de línea, introducidos en forma de cadena Especificador de color, introducidos en forma de cadena Especificador de marcador, introducido en forma de cadena
- 52 -
4.2.4 Generación de gráficos a partir de datos dados
Ventas de una compañía desde el año 1988 a 1994 Año Ventas (millones)
1988 8
1989 12
1990 20
- 53 -
1991 22
1992 18
1993 24
1994 27
3.5.cos 6
4.2.5 Generación de gráficos a partir de funciones
Representar gráficamente la función
en el intervalo
2 4
.
4.2.6 4.2.6 El El comand c omand o fplot
Representa gráficamente una función de la forma y=f(x) entre unos límites especificados por el usuario. El comando tiene la siguiente sintaxis: Fplot (‘función’, limites, especificadores de línea)
Representar una función del tipo >> fplot('x^2+4*sin(2*x)-1',[-3,3])
4 22 1 3 3
- 54 -
4.2.7 4.2.7 Representació Representació n gr áfica de varias f uncion unc iones es a la vez
La representación de varias funciones se puede realizar de tre formas diferentes. Una de ellas consiste en utilizar el comando plot , otra en utilizar los comandos hold on y hold off , y la tercera consiste en utilizar el comando line.
26 3 26 10 10, , 2 4.
Utilizando el comando plot
Dibujar la función intervalo gráfico.
así como su primera y segunda derivadas, en el Todas las funciones deben representarse juntas en el mismo
- 55 -
Utilizando los comandos hold on y hold off
Utilizando el comando line
4.3 4.3 Edición de atributo s d e los gráficos.
Los gráficos se pueden formatear o bien utilizando comandos matlab a continuación de los comandos plot o fplot , o bien utilizando el editor de gráficos de la ventana de gráficos. El primer método es útil cuando los comandos plot o fplot son parte de un programa (archivo script). Cuando un programa incluye comandos de formato, cada vez que se ejecuta crea un gráfico con formato. Por otra parte, el formato que se aplica mediante el editor de gráficos de la ventana de gráficos solo se mantiene para un gráfico en concreto, y se tendrá que volver a aplicar la próxima vez que se cree el gráfico. 4.3.1 4.3.1 Formateado de una representaci ón gráfica mediant e com andos
Los comandos de formato se introducen después de aquellos que crean o visualizan gráficos: plot y y fplot . Algunos de ellos son: Los comandos xlabel , ylabel :
Sirven para poner titulo, en forma de texto, a los ejes. Su sintaxis es: xlabel(‘texto’) ylabel(‘texto’) El comando title:
Añade un título (principal) al gráfico en la parte superior del mismo. Su sintaxis es: title(‘texto’) - 56 -
El comando text :
Permite situar una etiqueta de texto dentro del gráfico, tiene dos variantes: text(x,y,’texto’) gtext(‘texto’) El comando axis: Cuando el comando plot(x, y) se ejecuta, matlab crea los ejes correspondientes para la representación gráfica, basándose en los valores máximo y mínimo de los valores posibles que toman x e y . El comando axis permite cambiar el rango de los ejes, así como su apariencia. A continuación se muestran algunos de los posibles formatos que acepta el comando axis. axis([xmin,xmax,ymin,ymax]) establece los límites de ambos ejes, x e y, entre los
valores máximos y mínimos. axis equal Establece la misma escala en ambos ejes. axis square Establece la región de los ejes en un cuadrado. Establece los límites de los ejes en función del rango de los datos. axis tight El comando grid :
grid on grid off
Añade una cuadrícula a la representación gráfica. Elimina la cuadrícula de la representación gráfica.
Ejemplo:
- 57 -
4.3.2 4.3.2 Formateado de una representaci ón gráfica mediante el edito r gráfico
La apariencia de un gráfico generado en la ventana de gráficos se puede modificar de forma interactiva pulsando con el ratón sobre el gráfico y/o utilizando los menús. El editor gráfico se puede utilizar para añadir elementos nuevos o componentes en una representación gráfica, o para modificar el formato de los elementos previamente introducidos mediante comandos. 4.3. 4.3.3 3 Gráficos Gráficos con ejes ejes logarítmicos
Los comandos utilizados en matlab para representar gráficos con ejes logarítmicos son: Ejemplo:
2.. 0.1 60
Graficar la función de escalas logarítmicas y lineales.
utilizando distintas combinaciones
Nombre_variable=linspace(xi,xf,n) (xi=primer elemento, xf=último elemento, n=número de elementos)
- 58 -
4.3.4 4.3.4 Gráficos vario s
Gráfico de barras verticales Formato de la función: bar(x,y)
- 59 -
Gráfico de barras horizontales Formato de la función: barh(x,y)
Gráfico de escaleras Formato de la función: stairs(x,y)
Gráfico de tallo o líneas verticales Formato de la función: stem(x,y)
Gráfico circular Formato de la función Pie(x)
Más Más de un gráfico en l a misma página.
Con la orden subplot podemos representar una matriz con mxn subgráficas en una sola figura; la sintaxis es:
- 60 -
Gráfica 2,2,1
subplot(m,n,k) Donde k es un número natural que indica el orden en que aparece la gráfica: la primera, la segunda, ... Como ejemplo ejecutamos el siguiente listado:
Gráfica 2,2,2
1
40
0.5 ) t ( s o c
20 ) t ( s o c * . t
0
-0.5
-1
t=0:0.3:40; subplot(2,2,1), plot(t,cos(t)) title('Gráfica 2,2,1') xlabel('t'); ylabel('cos(t)') subplot(2,2,2), plot(t,t.*cos(t)) title('Gráfica 2,2,2') xlabel('t'); ylabel('t.*cos(t)') subplot(2,2,3), plot(t,cos(t).^2) title('Gráfica 2,2,3') xlabel('t'); ylabel('cos(t).^2') subplot(2,2,4), plot(t,(t.^2).*(cos(t).^2)) title('Gráfica 2,2,4') xlabel('t'); ylabel('t.^2.*cos(t).^2')
2
. ) t ( s o c
0
-20
0
10
20 t
30
-40
40
0
10
Gráfica 2,2,3
20 t
30
40
30
40
Gráfica 2,2,4
1
1500
0.8 2
. ) t ( s o c * . 2 . t
0.6 0.4
1000
500
0.2 0
0
10
20 t
30
0
40
0
10
20 t
Graficas Graficas de cu rvas
La representación de la curva de ecuaciones polares ρ(θ ) = sen(4θ )e-0.3 θ para θ Є θ Є [0, π ] se puede realizar con la orden polar y y con el siguiente listado: Coordenadas polares
t=0:.05:pi; r=sin(4*t).*exp(-.3*t); polar(t,r) title('Coordenadas polares') grid
90
1
120
60 0.8 0.6
150
30 0.4 0.2
180
0
210
330
240
300 270
- 61 -
4.4 Grabar y Expo rtar. •
Una vez completado un gráfico, puede ser almacenado almacenado de dos formas: o Guardarlo con un formato que permita abrirlo en una nueva sesión de MATLAB, abriendo una ventana de diálogo seleccionando File → Save, o bien, save grafico.fig en la ventana de comandos o en el Editor/Debugger. o Exportarlo, eligiendo el formato adecuado al programa donde lo vayamos a utilizar. Esto se consigue: Seleccionar File → Export... y elegir la extensión deseada en la ventana de diálogo o escribiendo » print grafico.ext en la ventana de comandos o en el Editor/Debugger.
4.5 4.5 Intr oducci ón a gráficos 3D
Los gráficos tridimensionales proporcionan una manera práctica de representar datos de más de dos variables. Matlab proporciona distintas opciones y funciones destinadas a la representación de gráficos tridimensionales. 4.5.1 Gráficos de línea
Está constituido por una línea que se obtiene uniendo una serie de puntos en un espacio tridimensional. La forma más sencilla y básica es mediante la función plot3. Plot3(x,y,z, ’Especificadores de línea’, ’propiedades’, ’Valores’)
Ejemplo:
√ 2 √ √ cos22 0.5
- 62 -
0 6
4.5.2 Gráficos de malla y superficie
Son gráficos tridimensionales utilizados para representar funciones que tiene la forma z=f(x,y), donde x e y son variables independientes, y z es la variable dependiente. Estos gráficos se generan n tres pasos: o El primer paso es crear una malla o rejilla en el plano x-y que cubra el dominio de la función. [x,y]=meshgrid(x,y) o El segundo paso es calcular el valor de z en cada punto de la rejilla. z=x.*y.^2./(x.^2+y.^2)
o El tercer paso es representar el gráfico. Mesh(x,y,z) o surf(x,y,z) Tipo de gráfico Gráfico de malla: mesh(x, y, z)
Gráfico
Gráfico de superficie: surf(x, y, z)
Gráfico de malla con cortina: meshz(x, y, z)
Gráfico de malla con contorno: meshc(x, y, z)
- 63 -
Tipo de gráfico Gráfico de superficie con contorno: surfc(x, y, z)
Gráfico de superficie con alumbrado: surfl(x, y, z)
Gráfico de cascada: waterfall(x, y, z)
Gráfico de contorno 3-D: contour3(x, y, z, n) n es el numero de niveles de contorno(opcional)
Gráfico de contorno 2-D: contour(x, y, z, n) n es el numero de niveles de contorno(opcional)
- 64 -
Gráfico
Problemas:
1.- Represente dos gráficos de forma separada, de la función f(x)=0.6x 5-5x3+9x+2; uno de los gráficos debe estar en el dominio -4≤x≤4, y el otro en el dominio -2.7 ≤x≤2.7
10 10 9 0.01 0.0.0303 0.0.44 . 2 6 5 5 4 6 10 10 10.0.1
2.- Represente la función
3.- utilice el comando fplot para representar la función:
4.- represente la función observe que esta función posee una asíntota vertical en el punto x=4. Represente la función mediante la creación de dos vectores para el dominio de x. el primer vector (llámelo x1) contendrá los elementos -10 a 3.7, y el segundo vector (llámelo x2) los elementos 4.3 hasta 10. Adicionalmente habrá que crear dos vectores v ectores y1 e y2 para los correspondientes valores de la función sobre los dos vectores anteriormente creados para el dominio de x. seguidamente represente la función mediante dos curvas en la misma región gráfica (y1 frente a x1, y2 frente a x2).
10 10.0.1
5.- Represente la función observe que esta función tiene dos asíntotas verticales. Represente la función dividiendo el dominio de x en tres partes; una que valla desde -10 hasta aproximadamente la asíntota izquierda, otra entre las dos asíntotas, y una tercera desde aproximadamente la asíntota derecha hasta 10. Establezca el rango del eje y entre -20 y 20. 6.- represente la función f(x)=3xsen(x)-2x y su derivada, ambas en la misma región gráfica, en el intervalo -2 π≤x≤2π. Represente la función con una línea solida, y su derivada con una línea discontinua. Añada una leyenda y etiquetas para los ejes. 7.- la magnitud M, en la escala Richter, de un terremoto viene dada por:
23 10 .
Donde E es la energía en julios liberada por el terremoto. Haga un gráfico de E (en ordenadas) frente a M (en abscisas) para 3 ≤M≤8. Utilice una escala logarítmica para E y una lineal para M. etiquete los ejes y añada un titulo al gráfico. 8.- la posición x en función del tiempo t de una partícula que se mueve a lo largo de una línea recta viene dada por: x(t)=0.4t3-2t2-5t+13 metros. La velocidad v(t) de la partícula se calcula mediante la derivada de x(t) con respecto al tiempo t, y la aceleración a(t) se calcula derivando v(t) con respecto al tiempo t. Deduzca las expresiones de la velocidad y la aceleración de la partícula y represente su posición, velocidad y aceleración en función del tiempo para 0 ≤t≤7 s. utilice el comando - 65 -
subplot para crear tres graficas en la misma ventana de gráficos, etiquete los ejes
apropiadamente con las unidades correctas. 5. La Interfaz Gráfica de Usuario (GUI (GUI). ). 5.1 El edito r de Interf ases Gráficas de us uario s (GUI). (GUI).
Una interfase gráfica es el vinculo entre el usuario y un programa computacional, constituida generalmente por un conjunto de comandos o menús, instrumentos y métodos por medio de los cuales el usuario se comunica con el programa durante las operaciones que se desean realizar, facilitando la entrada y salida de datos e información. Ejemplos de interfases gráficas son las ventanas de Word, Excel, la ventana de Matlab, entre otras. Existen diferentes lenguajes de programación que permiten crear GUIs tales como Visual C, Visual Basic, TK y Matlab, entre otros muchos. 5.2 Objetos y Propi edades dispo nib les para las GUI GUI..
La forma de implementar las GUI con Matlab es crear los objetos y definir las acciones que cada una va a realizar. Al usar GUIDE para crear un GUI obtendremos dos archivos: Un archivo FIG con la descripción de los componentes que contiene la interfase y. Un archivo M que contiene las funciones y los controles del GUI así como el callback . Un callback se define como la acción que lleva a cabo un objeto de la GUI cuando el usuario lo active. Suponga que en una ventana existe un botón que al presionarlo ejecutará una serie de instrucciones, a ese conjunto de instrucciones se le conoce como la función callback. Para crear una GUI se usa GUIDE, ya sea escribiendo guide en la ventana de comandos o ejecutando desde el menú principal File-New-GUI. - 66 -
Posteriormente se mostrará una ventana con opciones parea la creación de GUI o si se desea abrir una ya existente. En la parte superior se muestran los menús y opciones de GUIDE. En la parte izquierda los diferentes controles y en la parte central el área de diseño donde se irán poniendo los controles a usar. En la parte superior también se encuentra la barra de herramientas que contiene entre otras: Alineación de objetos, Editor de menú, Editor del orden del tabulador, Editor de archivos M, Inspector de propiedades, Navegador de objetos y Activación de GUI. se puede hacer que los controles aparezcan con su nombre mediante el menú File-Preferences-Guide y seleccionando Show names in component palette. Para ver las propiedades de un control primero se crea este, seleccionándolo y arrastrándolo a donde se desea que quede colocado, y luego se activa el inspector de propiedades (situados sobre el control creado se da clic al botón derecho del mouse y se selecciona Property Inspector ). ). Apareciendo la ventana de propiedades. Siendo las más usadas: BackgroundColor . Cambia el color del fondo del control. Callback . Le dice al control que hacer cuando este se active. Enable. Activa o desactiva un control. String . Es el texto que se muestra en el control. Tag. Identifica el control.
- 67 -
5.3 Ejemplos de GUI. Hola Mundo
Crear una nueva figura (GUI) y agregar un Static Text y un Push Button y guardarla como HolaMundo.fig ; la extensión fi g la da Matlab automáticamente. Después de guardar el archivo, GUIDE automáticamente mostrara una ventana nueva con el código del archivo HolaMundo.m generado por GUIDE. En la ventana de GUIDE seleccionar el Static Text y activar el inspector de Propiedades, modificar la propiedad String por Hola Mundo , repetir la misma operación para el Push Button en la propiedad String escribir Salir Editar el callback del botón Salir para que al ser activado cierre la ventana. Para hacer esto presionar el botón Salir con el botón derecho del mouse y seleccionar View Callback-Callback, se mostrara el editor de funciones del archivo HolaMundo.m donde se escribirá la instrucción: close (gcbf)
Lo cual indica que se cerrara una figura de tipo gráfico. A continuación se vuelve a guardar guard ar el archivo, se activa la figura con la herramienta activación de GUI y se mostrara la salida.
- 68 -
Convertir Temperaturas Temperaturas
Permite convertir entre las escalas de temperatura Celsius-kelvin-Fahrenheit. Ejecutar un nuevo GUIDE y colocar cuatro StaticText dándoles el tamaño indicado. Modificar a cada una la propiedad String escribiendo lo siguiente: Calculador de Temperaturas Celsius Kelvin Fahrenheit Debajo de las etiquetas Celsius , Kelvin , Fahrenheit. Agregar tres Edit Text, modificarles la propiedad String para que queden en blanco, modificarles la propiedad Tag a Celsius , kelvin y Fahrenheit , respectivamente. Y debajo de estos, cuatro Push Button , cambiándoles la propiedad String a Calcula para los tres primeros y a Salir para para el último. Cambiarles también la propiedad Tag a Boton_Celsius , Boton_Kelvin y Boton_Fahrenheit , respectivamente, y para el botón Salir cambiar cambiar su propiedad Tag a Boton_Salir Una vez realizado lo anterior guardar la interfase con File-Save As , y ponerle el nombre de conv_temp , esto abrirá una nueva ventana del editor en donde se pondrás el código necesario. Ahora se tienen dos archivos: conv_temp.fig y conv_temp.m
- 69 -
Agregar código al botón Salir , seleccionar la opción callback del botón y escribir close(gcbf)
En el control de Calcula que está debajo de Celsius poner el código para convertir de Celsius a kelvin y Fahrenheit, de acuerdo al siguiente algoritmo: o Recibir el dato de Celsius o Realizar conversión de Celsius a Kelvin o Realizar conversión de Celsius a Fahrenheit o Mostrar resultados Para esto seleccionar la opción callback del botón Calcula y añadir el código siguiente:
En el control de Calcula que está debajo de Kelvin poner el código para convertir de kelvin a Celsius y Fahrenheit. Seleccionar la opción callback del botón Calcula y añadir el código siguiente:
- 70 -
En el control de Calcula que está debajo de Fahrenheit poner el código para convertir de Fahrenheit a kelvin y Celsius. Seleccionar la opción callback del botón Calcula y añadir el código siguiente:
Guardar nuevamente el archivo, y ahora se puede ejecutar.
- 71 -
5.4 Planeació Planeació n y desarro llo de GUI. GUI.
Antes de empezar a programar es imprescindible hablar con el usuario final de la GUI. Es importante entender cuáles son las necesidades exactas que tienen que ser cubiertas por la aplicación. Para ello es necesario entender el tipo de datos y variables que son introducidas por el usuario, así como las excepciones que puedan producirse, los casos que ocurren pocas veces pero que hay que tener en cuenta, etc. También es necesario saber cómo quiere el usuario que se presenten los datos; si se necesitan gráficos o tablas, si va a imprimir, o cómo va a guardar los resultados, dónde se van a guardar y en qué formato. Para diseñar correctamente una GUI, lo lo mejor es hacer un bosquejo a papel y lápiz. Presentar al usuario para su discusión y corrección y así mejorarlo. De esta manera se consigue que no haya errores u omisiones y evita que después de haber avanzado en el trabajo sea necesaria la corrección de él, con lo cual retardaría la entrega y encarecería el proyecto. Las GUIs tienen que diseñarse de modo que los botones estén donde el usuario los requiere. Si nuestra GUI tiene varias páginas distintas y en cada una de ellas hay un botón que dice “Guardar” es conveniente que ese botón esté localizado en el mismo sitio siempre. Una vez que se tiene claro qué objetos tendrá la GUI, gráficos, textos, radio buttons, check boxes, edición de texto, entrada de valores, lectura de matrices, etc., y una vez que se tenga claro de qué forma aparecerán en la interfaz (el layout ) es necesario hacer un programa de tipo script que tenga la misma funcionalidad que la GUI que se quiere programar. Antes de incorporar el programa a la GUI, es necesario hacer todo tipo de pruebas con él hasta estar completamente seguros de que el programa que se va a incorporar en la GUI es el programa deseado.
- 72 -