Apuntes MatlabDic2009
Apuntes MatlabDic2009
Verifique que dicha identidad es correcta calculando ambos miembros de la ecuacin,
sustituyendo el valor de x por
2. Transferencia de calor
Un objeto con una temperatura inicial T
0
se introduce en el instante t=0 dentro de una
cmara que tiene una temperatura constante T
3
. Entonces, el objeto experimenta un
cambio de temperatura que se corresponde con la ecuacin:
Donde T es la temperatura del objeto en el instante t, y k es una constante.
Una lata de refresco, con una temperatura de 120F, se introduce en un refrigerador
que tiene en su interior una temperatura de 38F. Calcular, redondeando el resultado al
grado ms prximo, la temperatura de la lata despus de 3 horas. Considerar k=0.45.
3. Creacin de una matriz
Utilizando los comando 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. Creacin de una matriz
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.
5. Manipulacin 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
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
6. Resolucin de tres ecuaciones lineales
Resolver el siguiente sistema de ecuaciones lineales.
El sistema anterior se puede representar de forma matricial AX=B
7. Experimento de friccin (procesamiento de arrays elemento a elemento)
El coeficiente de friccin se puede calcular experimentalmente midiendo la fuerza F
requerida para mover una masa m. a partir de estos parmetros, el coeficiente de
friccin se puede calcular de la forma:
En la tabla siguiente se presentan los resultados de seis experimentos en los cuales se
midi F. Determinar el coeficiente de friccin 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
Problemas:
1. Calcule:
a)
b)
2. Calcule:
a)
b)
3. Calcule:
a)
b)
4. Calcule:
a)
b) Cos
5. Defina la variable x=13.5 y calcule:
a)
b)
c)
6. Defina 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 trigonomtricas:
a) cos
b)
Verifique que ambas son correctas calculando para ello cada lado de la
identidad, sustituyendo el valor de
9. Dadas las siguientes identidades trigonomtricas:
c)
d)
Verifique que ambas son correctas calculando para ello cada lado de la
identidad, sustituyendo el valor de
10. Defina dos variables:
11. Cuando se suman fracciones debe calcularse el mnimo comn mltiplo para
poder realizar la operacin correctamente. Por ejemplo en minimo comn
mltiplo de y 1/10 es 20. Encuentre una funcin apropiada que calcule el
m nimo comn mltiplo de dos nmeros, por ejemplo demuestre que:
a) El minimo comn mltiplo de 4 y 10 es 20
b) El minimo comn mltiplo 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
=10
4.4
julios es una constante
(energ a de un terremoto ms pequeo de referencia). Determine cuantas veces
ms 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,e
2.5
, cos(/3), 14, 12
14. Cree un vector columna que contenga los elementos: 55, 14, ln(51), 987, 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).
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 transposicin 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 sern los primeros cuatro
elementos del vector Aprimero, y los cuatro ltimos sern los cuatro ltimos
elementos del vector Aprimero.
20. Cree una matriz como la que se muestra utilizando la notacin de vectores para
crear vectores con distancia constante, y/o el comando linspace para crear las
filas.
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 contenga los elementos
de la segunda a la quinta columna de A.
22. Cree la siguiente matriz: C=
Utilice la matriz C para:
a) Crear un vector columna de tres elementos llamado ua, que contenga los
elementos de la tercera columna de C.
b) Crear un vector columna de cinco elementos llamado ub, que contenga los
elementos de la segunda fila de C.
c) Crear un vector columna de nueve elementos llamado uc, que contenga los
elementos de la primera, tercera y quinta columna de C.
d) Crear un vector columna de diez elementos llamado ud, que contenga los
elementos de la primera y segunda fila de C.
23. Cree la siguiente matriz
a) Cree una matriz B de 3x4 a partir de la primera, tercera y cuarta fila, y de la
primera, tercera, quinta y sptima 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 sptima columna de la matriz A.
24. Utilizando las funciones zeros, ones y eye, cree los siguientes arrays:
25. Utilizando el comando eye, cree un array A. a continuacin, 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 nmeros: 1 2 3 4 5
6 7, y la segunda fila contenga: 8 9 10 11 12 13 14, la tercera fila contenga los
nmeros del 15 al 21, y as sucesivamente. A partir de esta matriz, cree otra
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 tambin una
matriz B de 2x2 donde todos los elementos sean 5. A continuacin, aada
nuevos elementos a la matriz A a base de aadir la matriz B, de manera que A
quede finalmente de la siguiente forma:
29. Sea la funcin
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.
33. Demuestre que lim
Para hacer esto cree un vector n que tenga los elementos: 1, 10, 100, 500, 1000,
2000, 4000, 8000. Despus 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 el valor de e (teclee exp(1) para el valor de e)
34. Demostrar que la serie numrica
converge a
. 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/n
2
. Finalmente utilice la funcin sum para sumar los trminos de la serie.
Compare los valores obtenidos en los incisos a, b, c con el valor
35. demostrar que la serie
Ejecutar el archivo para n=4 y para n=20.
Modificacin 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
3.3.4 Sentencia While:
La sintaxis de la estructura while es la siguiente.
while condicion
sentencias
end
donde condicion puede ser una expresin vectorial o matricial. Las sentencias se
siguen ejecutando mientras haya elementos distintos de cero en condicion, es decir,
mientras haya algn o algunos elementos true. El bucle termina cuando todos los
elementos de condicion son false (es decir, cero).
Ejemplo de uso de while:
Ejemplo de uso de while con break (corta el bucle):
3.3.5 Funciones (Function)
Los scripts aportan a Matlab la manera de realizar tareas de una manera ms rpida.
Las funciones permiten definir funciones enteramente anlogas 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 es un script que eleva un nmero al cuadrado
nro = input('Ingrese un nmero positivo: ');
nro = nro * nro;
disp('El nmero ingresado elevado al cuadrado es: ');
disp(nro);
Y cuando escribimos en el Workspace:
>> help cuadrado
este es un script que eleva un nmero al cuadrado
Construccin de funciones:
La primera lnea de un archivo llamado ejemplo.m que define una funcin tiene la
forma:
function [lista de valores de retorno] = ejemplo (lista de argumentos)
donde ejemplo es el nombre de la funcin. Entre corchetes y separados por coma van
los valores de retorno (siempre que haya ms de uno), y entre parntesis tambin
separados por comas los argumentos. Puede haber funciones sin valores de retorno y
tambin sin argumentos. Si no hay valores de retorno se omiten los corchetes. Y el
signo igual (=); si slo hay un valor de retorno no hacen falta poner corchetes. Tampoco
hace falta poner parntesis si no hay argumentos.
Las variables definidas dentro de una funcin 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 funcin 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 funcin, los valores de retorno deben ser calculados en algn momento (no
hay sentencia return). Se utiliza return slo para salir forzosamente del cuerpo de la
funcin.
Ejemplos de funciones:
Escribir un archivo de funcin (llamado ecuacin) para la funcin
. La
entrada de la funcin es x y la salida f(x). Escribir la funcin tal que x sea un vector.
Utilizar la funcin pata calcular:
3.4 Aplicaciones
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 inters anual. Esta persona planea sacar dinero de su
cuenta una vez al ao. Empieza sacando 25,000 pesos despus del primer ao.
Posteriormente en el futuro, incrementara la cantidad retirada en funcin de la tasa
inflacin anual. Por ejemplo, si la inflacin es del 3%, retirara 25750 pesos al final del
segundo ao. Calcular el nmero de aos que esta persona tardara en sacar todo el
dinero de su cuenta. Suponiendo para ello una inflacin 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 aos.
Generacin de nmeros para el sorteo de la lotera.
En un sorteo de loter a el jugador debe elegir varios nmeros de entre una lista dada.
Escribir una funcin que genere una lista n de nmeros enteros, distribuidos
uniformemente entre un rango a y b. todos los nmeros seleccionados de la lista deben
ser distintos.
a) Utilizar la lista para generar una lista de 6 nmeros que var en entre 1 y 49
b) Utilizar la lista para generar una lista de 8 nmeros que var en entre 60 y 75
c) Utilizar la lista para generar una lista de 9 nmeros que var en entre -15 y 15
Problemas:
1.- la temperatura mxima 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 nmero de d as que estuvo la temperatura de cada ciudad por debajo de la
media.
c) El nmero de d as, y a que d as de mes corresponden, en los cuales la
temperatura fue igual en ambas ciudades.
d) El nmero 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.
2.- represente la siguiente funcin de dos formas distintas:
a) Escribiendo un fichero script que utilice bucles y sentencias condicionales.
b) Escribiendo una funcin f(x) para utilizarla posteriormente en un archivo script
3.- escriba un programa script que calcule las ra ces reales de una funcin cuadrtica
ax
2
+bx+c=0.
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
ecuacin, el programa calculara el discriminante D=b2-4ac
Si D>0, el programa visualizara un mensaje del tipo: La ecuacin 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 ecuacin 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 ecuacin no tiene ra ces
reales.
Calcule las soluciones de las siguientes ecuaciones:
2x
2
+8x-3=0
15x
2
+10x+5=0
18x
2
+12x+2=0
4.- utilice bucles para crear una matriz A de dimensin 4x7, en la cual el valor de cada
elemento sea la suma de sus ndices (el nmero de la fila y el nmero 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 dimensin 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
trminos de la serie:
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 nmero 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 nmero que cumpla las condiciones anteriores.
Finalmente el programa visualizara el mensaje: El nmero pedido es: , y visualizara
seguidamente el nmero calculado.
9.- escriba una funcin que ordene los elementos de un vector de cualquier longitud, de
mayor a menor. Utilice la siguiente l nea de definicin de funcin: y=ordenar(x). la
entrada de la funcin 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
funcin predefinida Sort para este ejercicio. Cree su propia funcin y prubela con un
vector de 14 elementos (enteros) generados aleatoriamente y distribuidos entre -30 y
30.utilice la funcin rand para generar el vector inicial.
10.- escriba una funcin que ordene los elementos de una matriz. Utilice la siguiente
l nea de definicin de funcin: B = ordenarmatriz(A), donde A ser una matriz de
cualquier tamao, y B ser otra matriz del mismo tamao con los elementos de A
ordenados de forma ascendente, fila por fila. De esta forma, los elementos B(1,1) y
B(m,n) sern respectivamente, los elementos menor y mayor de la matriz ordenada.
pruebe posteriormente esta funcin en una matriz de 4x7, con nmeros enteros
generados aleatoriamente y distribuidos entre -30 y 30. Utilice la funcin rand para
generar la matriz inicial.
11.- escriba un programa que calcule el costo de enviar un paquete en funcin de la
siguiente tabla de precios:
Tipo de
servicio
Peso
(0-2 libras)
Peso (2-10 libras) Peso (10-50 libras)
Tierra $ 15 $15 + $5 adicionales por cada
libra o fraccin de libra, a partir
de las 2 libras de peso
$55 + $3 adicionales por cada
libra o fraccin de libra, a partir
de las 10 libras de peso
Aire $ 30 $30 + $5 adicionales por cada
libra o fraccin de libra, a partir
de las 2 libras de peso
$102 + $6 adicionales por cada
libra o fraccin de libra, a partir
de las 10 libras de peso
Nocturno $ 180 $180 + $60 adicionales por
cada libra o fraccin de libra, a
partir de las 2 libras de peso
No se realizarn entregas para
paquetes que pesen ms 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 ms 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.
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 funcin con dos argumentos de entrada y dos de salida. La funcin
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 definicin de
funcin 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 funcin 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 funcin para la siguiente funcin matemtica:
y(x)=0.9x
4
-12x
2
-5x
la entrada de la funcin ser x, y la salida ser y, escriba la funcin de forma que x x
pueda ser un vector, y util cela para:
a) Calcular y(-3) e y(5)
b) Representar grficamente la funcin y(x) para -4x4
15.- el valor P de una cuenta de ahorros, con un capital inicial P
0
y una tasa de inters
anual r (en %) despus de t aos, viene dado por:
Escriba una funcin que calcule el valor futuro de una cuenta de ahorros. Utilice para
ello la siguiente l nea de definicin de funcin: P=saval(PO,r,t). las entradas de la
funcin sern el capital inicial, la tasa de inters y el nmero de aos. La salida ser el
valor de la cuenta a partir de los datos especificados en la entrada. Utilice
posteriormente esta funcin para calcular el valor de un capital inicial de 10000 pesos a
un inters anual del 6%, despus de 13 aos.
16.- escriba una funcin que convierta las unidades de un par de torsin (fuerza que
causa la rotacin de un objeto) de libras-pulgada a newton-metro. Utilice la siguiente
l nea de definicin para la funcin: 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 funcin para convertir 500 libras-pulgada a newton-metro.
17.- escriba una funcin que calcule la calificacin final de un estudiante a partir de la
calificacin de su examen final, sus dos parciales y de los cinco trabajos realizados
durante el curso. Los exmenes parciales puntan de 0 a 100, y cada uno es un 20%
de la calificacin final. El examen final tiene la misma escala de puntuacin, y es un
40% de la calificacin final. Los trabajos, sin embargo, puntan de 0 a 10, y todos ellos
en conjunto representan un 20% de la calificacin final.
La funcin debe tener la siguiente definicin: g=calfinales(R), donde la entrada ser una
matriz R que contenga en cada fila las calificaciones de cada estudiante. Adems, por
cada fila, se tendrn 8 columnas que representaran las calificaciones de los trabajos
(las cinco primeras), la calificacin de los dos exmenes parciales (las dos siguientes) y
la calificacin del examen final (la ltima columna) de cada estudiante. La salida de la
funcin ser un vector columna g con la calificacin final del curso. Cada fila de este
vector ser la calificacin final del estudiante cuyas calificaciones se relacionan con la
correspondiente fila de la matriz R.
La funcin debe usarse para calcular las calificaciones finales de cualquier nmero de
estudiantes. Para el caso de un solo estudiante, la matriz R tendr una sola fila. Aplique
est funcin en los siguientes casos:
a) Calcular la calificacin 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 funcin 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:
Escriba una funcin que calcule Req. Utilice la siguiente definicin: 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 funcin para calcular la
resistencia equivalente de las siguientes resistencias conectadas en paralelo: 50, 75,
300, 60, 500, 180, 200
4. La Graficacin.
4.1 Elementos de los grficos de Matlab.
Con los comandos de Matlab se pueden crear distintos tipos de grficos: estndares
con ejes lineales, logar tmicos o semilogar tmicos, de barras y escaleras, polares, de
malla y de superficies de contorno tridimensional, etc. Estos grficos 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 aadir l neas de referencia y cuadriculas; y
tambin t tulos y comentarios. . Adems se pueden superponer varios grficos sobre un
mismo sistema de ejes coordenados, o poner varios grficos en una misma pgina.
Cuando un grafico tiene varios tipos de datos, tambin se pueden aadir leyendas.
4.2 Generacin de grficos 2D
4.2.1 El comando Plot
Se utiliza para crear grficos bidimensionales.
La primer grafica
La orden
>> x=[1 2 3], y=[1 4 9], plot(x,y)
x =
1 2 3
y =
1 4 9
Realiza la representacin grafica de los
puntos (1; 1), (2; 4) y (3; 9) unidos por una
l nea recta.
Si la orden hubiera sido
>>plot(x,y,:r)
Entonces habr a pintado los puntos x; y
como l neas punteadas rojas.
Para personalizar los grficos, el comando
plot admite en su sintaxis otros argumentos
que se pueden utilizar para definir el color y
estilo de l neas y marcadores.
Plot (x,y, especificadores de lnea, Propiedades, Valores)
1 1.2 1.4 1.6 1.8 2 2.2 2.4 2.6 2.8 3
1
2
3
4
5
6
7
8
9
1 1. 2 1. 4 1. 6 1. 8 2 2. 2 2. 4 2. 6 2. 8 3
1
2
3
4
5
6
7
8
9
4.2.2 Especificadores de lnea
Son opcionales y se pueden utilizar para definir el color y estilo de l nea, as como el
tipo de marcadores:
Especificador Estilo de l nea Especificador Color de l nea
L nea continua r rojo
- L nea continua y amarillo
-- L nea de guiones m magenta
: L nea punteada c turquesa
-. L nea de guiones y puntos g verde
+ Cruces b azul
* asteriscos w blanco
. Puntos k negro
o C rculos
x Equis
Introduciendo una a una en la ventana de comandos las siguientes ordenes obtener la
representacin grafica de la funcin f(x) = sen xe
-0.4x
en el intervalo [0, 10].
>> x=0:0.05:10;
>> y=sin(x).*exp(-0.4*x); % Por que se utiliza la operacin .*?
>> plot(x,y) % genera la grfica
>> axis([0,10,-1,1]) % La x valora en [0; 10] y la y en [-1; 1]
>> xlabel('eje x'), ylabel('eje y') % Rtulos en los ejes x; y
>> title('La Primer Grafica') %Titulo de la grafica
>> grid % Sita una rejilla en la grafica
>> text(4,-0.1,'Minimo') %Sita un comentario en el punto (4,-0.1)
0 1 2 3 4 5 6 7 8 9 10
-1
-0. 8
-0. 6
-0. 4
-0. 2
0
0. 2
0. 4
0. 6
0. 8
1
ej e x
e
j
e
y
La Pri mer Grafi ca
Mi ni mo
4.2.3 Propiedades y Valores
Son opcionales, y se utilizan para concretar el grueso de la l nea, el tamao de los
marcadores, as como los colores de relleno y del borde del marcador.
propiedad Descripcin Posible valor de la propiedad
linewidth Especifica el grosor de la l nea Un nmero representado en
unidades de puntos (por defecto 0.5)
markersize Especifica el tamao de las marcas Un nmero representado en
unidades de puntos
markeredgecolor Especifica el color del marcador, o
el color del borde de la l nea para
marcadores con relleno
Especificadores de color,
introducidos en forma de cadena
markerfacecolor Especifica el color de relleno de los
marcadores
Especificadores de color,
introducidos en forma de cadena
Ejemplo:
Plot(x,y, -mo, linewidth ,2,markersize,12,markeredgecolor,g,markerfacecolor,y)
Crea un grfico en el cual una l nea slida 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 tamao 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.
Especificador propiedad Posible valor para la propiedad
Estilo de l nea Linestyle Especificador de estilo de l nea, introducidos en forma de cadena
Color de l nea Color Especificador de color, introducidos en forma de cadena
Marcador marker Especificador de marcador, introducido en forma de cadena
4.2.4 Generacin de grficos a partir de datos dados
Ventas de una compa a desde el ao 1988 a 1994
Ao 1988 1989 1990 1991 1992 1993 1994
Ventas (millones) 8 12 20 22 18 24 27
4.2.5 Generacin de grficos a partir de funciones
Representar grficamente la funcin
cos en el intervalo .
4.2.6 El comando fplot
Representa grficamente una funcin de la forma y=f(x) entre unos l mites
especificados por el usuario. El comando tiene la siguiente sintaxis:
Fplot (funcin, limites, especificadores de lnea)
Representar una funcin del tipo
>> fplot('x^2+4*sin(2*x)-1',[-3,3])
4.2.7 Representacin grfica de varias funciones a la vez
La representacin 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.
Utilizando el comando plot
Dibujar la funcin
3.- utilice el comando fplot para representar la funcin:
4.- represente la funcin
Donde E es la energ a en julios liberada por el terremoto.
Haga un grfico de E (en ordenadas) frente a M (en abscisas) para 3M8. Utilice una
escala logar tmica para E y una lineal para M. etiquete los ejes y aada un titulo al
grfico.
8.- la posicin x en funcin del tiempo t de una part cula que se mueve a lo largo de una
l nea recta viene dada por: x(t)=0.4t
3
-2t
2
-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 aceleracin a(t) se calcula derivando v(t) con respecto al tiempo t.
Deduzca las expresiones de la velocidad y la aceleracin de la part cula y represente su
posicin, velocidad y aceleracin en funcin del tiempo para 0t7 s. utilice el comando
subplot para crear tres graficas en la misma ventana de grficos, etiquete los ejes
apropiadamente con las unidades correctas.
5. La Interfaz Grfica de Usuario (GUI).
5.1 El editor de Interfases Grficas de usuarios (GUI).
Una interfase grfica es el vinculo entre el usuario y un programa computacional,
constituida generalmente por un conjunto de comandos o mens, instrumentos y
mtodos 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
informacin.
Ejemplos de interfases grficas son las ventanas de Word, Excel, la ventana de Matlab,
entre otras.
Existen diferentes lenguajes de programacin que permiten crear GUIs tales como
Visual C, Visual Basic, TK y Matlab, entre otros muchos.
5.2 Objetos y Propiedades disponibles para las 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 descripcin 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 accin que lleva a cabo un objeto de la GUI cuando el
usuario lo active. Suponga que en una ventana existe un botn que al presionarlo
ejecutar una serie de instrucciones, a ese conjunto de instrucciones se le conoce
como la funcin 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.
Posteriormente se mostrar una ventana con opciones parea la creacin de GUI o si se
desea abrir una ya existente.
En la parte superior se muestran los
mens y opciones de GUIDE. En la
parte izquierda los diferentes controles
y en la parte central el rea de diseo
donde se irn poniendo los controles a
usar.
En la parte superior tambin se
encuentra la barra de herramientas
que contiene entre otras: Alineacin de
objetos, Editor de men, Editor del
orden del tabulador, Editor de archivos
M, Inspector de propiedades,
Navegador de objetos y Activacin 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,
seleccionndolo y arrastrndolo
a donde se desea que quede
colocado, y luego se activa el
inspector de propiedades
(situados sobre el control creado
se da clic al botn derecho del
mouse y se selecciona Property
Inspector). Apareciendo la
ventana de propiedades.
Siendo las ms 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.
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 extensin fig la
da Matlab automticamente.
Despus de guardar el archivo,
GUIDE automticamente mostrara
una ventana nueva con el cdigo 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 operacin para el
Push Button en la propiedad String
escribir Salir
Editar el callback del botn Salir
para que al ser activado cierre la
ventana. Para hacer esto presionar
el botn Salir con el botn derecho
del mouse y seleccionar View
Callback-Callback, se mostrara el editor de funciones del archivo HolaMundo.m donde
se escribir la instruccin:
close (gcbf)
Lo cual indica que se cerrara una figura de tipo grfico.
A continuacin se vuelve a guardar el archivo, se activa
la figura con la herramienta activacin de GUI y se
mostrara la salida.
Convertir Temperaturas
Permite convertir entre las escalas de temperatura Celsius-kelvin-Fahrenheit. Ejecutar
un nuevo GUIDE y colocar cuatro StaticText dndoles el tamao 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, cambindoles la propiedad String a Calcula
para los tres primeros y a Salir para el ltimo. Cambiarles tambin la propiedad Tag a
Boton_Celsius, Boton_Kelvin y Boton_Fahrenheit, respectivamente, y para el botn
Salir 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 pondrs el cdigo
necesario. Ahora se tienen dos archivos: conv_temp.fig y conv_temp.m
Agregar cdigo al botn Salir, seleccionar la opcin callback del botn y escribir
close(gcbf)
En el control de Calcula que est debajo de Celsius poner el cdigo para convertir de
Celsius a kelvin y Fahrenheit, de acuerdo al siguiente algoritmo:
o Recibir el dato de Celsius
o Realizar conversin de Celsius a Kelvin
o Realizar conversin de Celsius a Fahrenheit
o Mostrar resultados
Para esto seleccionar la opcin callback del botn Calcula y aadir el cdigo siguiente:
% Leer el Dato
micelsius=eval(get(handles.Celsius,'String'));
% Convertir de Celsius a Kelvin y a Fahrenheit
mikelvin=micelsius+273.15;
mifahrenheit=1.8*micelsius+32;
% Mostrarlos en Pantalla
set(handles.kelvin,'String',mikelvin);
set(handles.Fahrenheit,'String',mifahrenheit);
En el control de Calcula que est debajo de Kelvin poner el cdigo para convertir de
kelvin a Celsius y Fahrenheit.
Seleccionar la opcin callback del botn Calcula y aadir el cdigo siguiente:
En el control de Calcula que est debajo de Fahrenheit poner el cdigo para convertir
de Fahrenheit a kelvin y Celsius.
Seleccionar la opcin callback del botn Calcula y aadir el cdigo siguiente:
Guardar nuevamente el archivo, y ahora se puede ejecutar.
5.4 Planeacin y desarrollo de GUI.
Antes de empezar a programar es imprescindible hablar con el usuario final de la
GUI. Es importante entender cules son las necesidades exactas que tienen que ser
cubiertas por la aplicacin. 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. Tambin es necesario saber cmo quiere el usuario que se presenten los datos;
si se necesitan grficos o tablas, si va a imprimir, o cmo va a guardar los
resultados, dnde se van a guardar y en qu formato.
Para disear correctamente una GUI, lo mejor es hacer un bosquejo a papel y lpiz.
Presentar al usuario para su discusin y correccin y as mejorarlo.
De esta manera se consigue que no haya errores u omisiones y evita que despus
de haber avanzado en el trabajo sea necesaria la correccin de l, con lo cual
retardar a la entrega y encarecer a el proyecto.
Las GUIs tienen que disearse de modo que los botones estn donde el usuario los
requiere. Si nuestra GUI tiene varias pginas distintas y en cada una de ellas hay un
botn que dice Guardar es conveniente que ese botn est localizado en el mismo
sitio siempre.
Una vez que se tiene claro qu objetos tendr la GUI, grficos, textos, radio buttons,
check boxes, edicin de texto, entrada de valores, lectura de matrices, etc., y una
vez que se tenga claro de qu forma aparecern 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.
Una vez probada, revisada, corregida y ya terminada la GUI y estando
completamente seguros de su correcto funcionamiento, puede ser entregada al
usuario final.