Documente Academic
Documente Profesional
Documente Cultură
INTRODUCCIÓN
ENTONCES,
¿CUÁL ES LA DIFERENCIA?,
¿DÓNDE ESTÁN LAS VENTAJAS DE EMPLEAR UNO U OTRO LENGUAJE
DE PROGRAMACIÓN?
2
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
AMBIENTE MATLAB
OBJETIVOS:
INICIALIZAR MATLAB,
IDENTIFICAR Y USAR LAS VENTANAS DE MATLAB,
NOMBRAR Y USAR VARIABLES,
COMPRENDER EL USO DE MATRICES,
DEFINIR MATRICES SIMPLES,
COMPRENDER EL ORDEN DE OPERACIÓN DE MATLAB,
DIFERENCIAR ENTRE CÁLCULO ESCALAR, DE ARREGLOS Y
MATRICIAL EN MATLAB,
EXPRESAR NÚMEROS EN NOTACIÓN CIENTÍFICA Y PUNTO
FLOTANTE,
GUARDAR EL VALOR DE LAS VARIABLES USADAS EN UNA
SESIÓN DE MATLAB,
GUARDAR UN NÚMERO DE COMANDOS EN UN ARCHIVO punto m.
INICIALIZACIÓN DE MATLAB
PARA INICIALIZAR MATLAB SE DEBE HACER CLIC EN EL ICONO DEL
ESCRITORIO. UNA VEZ ABIERTO APARECEN VARIAS VENTANAS DE
INFORMACIÓN Y DE TRABAJO DEL USUARIO.
VENTANAS DE MATLAB
EL AMBIENTE DE MATLAB SE MUESTRA EN LA FIG. 1. EN ELLA SE
MUESTRAN 4 VENTANAS DE MATLAB, LAS MISMAS QUE APARECEN
POR DEFECTO CUANDO SE INICIALIZA MATLAB.
3
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
ESTAS VENTANAS SON, DE IZQUIERDA A DERECHA:
DIRECTORIO ACTUAL (CURRENT FOLDER WINDOW)
VENTANA DE COMANDOS (COMMAND WINDOW)
ESPACIO DE TRABAJO (WORKSPACE WINDOW)
HISTORIA DE COMANDOS (COMMAND HISTORY WINDOW)
4
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
FIGURA 1 VENTANAS PRINCIPALES DE MATLAB
5
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
FIGURA 2
6
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
FIGURA 3
7
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
CUANDO SEA NECESARIO SE ABREN AUTOMÁTICAMENTE OTRAS
VENTANAS, POR EJEMPLO LA VENTANA DE GRÁFICOS, LA VENTANA
DEL EDITOR DE TEXTO, ETC. LAS QUE APARECEN EN LAS FIGS. 2 Y 3,
RESPECTIVAMENTE. PARA PERSONALIZAR EL ESCRITORIO LAS
VENTANAS PUEDEN SER DIMENSIONADAS POR EL USUARIO. LA
DESTINACIÓN DE LAS VENTANAS PRINCIPALES ES (DE IZQUIERDA A
DERECHA Y DE ARRIBA HACIA ABAJO):
8
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
FIGURA
9
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
HISTORIA DE COMANDOS (COMMAND HISTORY WINDOW)
REGISTRA LOS COMANDOS QUE SE ESCRIBEN EN LA VENTANA DE
COMANDOS. CUANDO SE SALE DE MATLAB O SE ESCRIBE clc SE
LIMPIA LA VENTANA DE COMANDOS PERO LA VENTANA HISTORIA DE
COMANDOS CONSERVA UNA LISTA DE ESTOS COMANDOS. LA
UTILIDAD RADICA EN QUE ELLO SIRVE PARA REVISAR LAS SESIONES
ANTERIORES DE TRABAJO O PARA TRANSFERIR COMANDOS A LA
VENTANA DE COMANDOS
EJERCICOS RESUELTOS
1. EMPLEAR MATLAB COMO CALCULADORA
a) ESCRIBIR EN LA VENTANA DE COMANDOS:
>> 5^2
Y MATLAB RESPONDE>
ans =
25
>>
b) EN LA VENTANA DE COMANDOS ESCRIBIR
>> cos(pi)
Y MATLAB RESPONDE
ans =
-1
>>
EJERCICIOS PROPUESTOS A RESOLVER EN LA CLASE.
>> 5+2
>> 5*2
>> 5/2
>> 3+2*(4+3)
>> 2.54*8/2.6
>> 6.3-2.1045
>> 3.6^2
>> sqrt(9)
>> sqrt(2)
10
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
ESTÁNDARES EN EL ORDEN DE LAS OPERACIONES MATEMÁTICAS
CON MATLAB.
USO DE VARIABLES
EN LOS EJERCICIOS ANTERIORES SE REALIZARON DISÍMILES
OPERACIONES, DIRECTAMENTE, EN LA VENTANA DE COMANDOS. SIN
EMBARGO, ES RECOMENDABLE ASIGNAR LOS RESULTADOS DE LAS
OPERACIONES A VARIABLES.
EXISTEN REGLAS PARA EL USO DE VARIABLES EN MATLAB. TAMBIÉN
SE TIENEN CIERTAS RECOMENDACIONES FORMULADAS POR LOS
PROGRAMADORES EXPERIMENTADOS DE MATLAB, ELLAS SE DAN A
CONTINUACIÓN.
11
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
EJERCICIOS
>> isvarname agua-fria
ans=?
>> isvarname velocidad
ans=?
>> wich sin
ans=?
12
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
EJEMPLO: RESOLVER LA SUMA DE a=3 CON b=5.
SOLUCIÓN:
>> a=3; b=5;%el signo = indica asignación de valor a variable
>> sum=a+b % las variables a, b y sum son localizaciones de memoria en
% la PC
EJEMPLO:
>>x=3; x=x+5 %esto demuestra que una asignación no es una igualdad
ORDEN DE LAS OPERACIONES MATEMÁTICAS
MATLAB SIGUE LAS REGLAS ALGEBRAICAS ESTÁNDARES PARA EL
ORDEN DE OPERACIONES:
- CUANDO HAY PARÉNTESIS, REALIZA LOS CÁLCULOS DE
ADENTRO HACIA AFUERA
- SEGUNDO, REALIZA OPERACIONES DE EXPONENCIACIÓN,
- TERCERO, REALIZA LAS OPERACIONES DE SUMA Y RESTA DE
IZQUIERDA A DERECHA.
EJEMPLO
CALCULAR EL ÁREA DE LA SUPERFICIE DE UN CILÍNDRO CIRCULAR
RECTO COMO EL DADO EN LA FIG. 5, con r=5 y h=10
FIGURA 5
SOLUCIÓN 1
>> radio=5; altura_cil=10;
13
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
>> S_cil=2*pi*radio^2+2*pi*radio*altura_cil
S_cil=
471.2389
SOLUCIÓN 2
>> radio=5; altura_cil=10;
>> S_cil=2*pi*radio*(radio +altura_cil)
S_cil=
471.2389
DISCUTIR EL RESULTADO SI NO SE ESCRIBE EL SIGNO DE
MULTIPLICACIÓN DELANTE DEL PARÉNTESIS.
¿CÓMO TRABAJA MATLAB EN CADA FORMA DE SOLUCIÓN DEL
PROBLEMA?
DECLARACIÓN DE MATRIZ
EJEMPLO. TECLEAR LAS SIGUIENTES MATRICES Y OBSERVAR LOS
RESULTADOS QUE PROPORCIONA MATLAB.
>> X = [1 2 5 7]
>> Y = [1; 2; 3; 4]
>> A = [1 2 3 4; 4 5 6 7; 1 4 8 9]
NOTA: LAS MATRICES CON INTERVALOS REGULARES SE INGRESAN
COMO SIGUE:
>> b= 1:5
Y MATLAB DEVUELVE
b= 1 2 3 4 5
QUE SON NÚMEROS CON INCREMENTO IGUAL A UNO. SI SE DESEA
OTRO INCREMENTO DIFERENTE DE UNO ENTONCES SE INTRODUCE LA
INSTRUCCIÓN SIGUIENTE:
>> b= 1:3:10
Y MATLAB DEVUELVE
14
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
b= 1 4 7 10
15
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
ENTONCES PARA EFECTUAR LA MULTIPLICACIÓN PUNTO DE ESTAS
DOS MATRICES (VECTORES) SE EMPLEA LA SINTAXIS DE MATLAB
SIGUIENTE:
C= A.*B
DESARROLLANDO TENDREMOS:
C=[1*6 2*7 3*8]= [6 14 24]
IGUAL SINTAXIS SE EMPLEA PARA LA DIVISIÓN PUNTO Y LA
EXPONENCIACIÓN PUNTO:
C= A./B
C= A.^2
NOTACIÓN CIENTÍFICA
SUPÓNGASE QUE SE REQUIERE REALIZAR ALGÚN CÁLCULO QUE
INVOLUCRE EL DIÁMETRO DEL NÚCLEO DE HIERRO, EL CUAL ES
IGUAL A 140 picómetros o dFe= 0.00000000014 m. EN NOTACIÓN
CIENTÍFICA ES d=1.4x10-10
EN MATLAB SE ESCRIBE EMPLEANDO LA LETRA e, DE LA SIGUIENTE
MANERA
d=1.4e-10
OBSÉRVESE QUE NO SE DEJA ESPACIO ENTRE EL NÚMERO, LA LETRA
e Y EL SIGNO MENOS.
16
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
CONVENCIONES DE NOMENCLATURA PARA LAS VARIABLES DE
MATLAB.
TAMBIÉN SE PUEDE ELEGIR OTRA VÍA, A SABER:
File → Save Workspace As…
DE LA BARRA DE MENÚ INGRESANDO UN NOMBRE PARA EL ARCHIVO
DE DATOS. ESE ARCHIVO SE GUARDA O ALMACENA EN EL
DIRECTORIO ACTUAL.
PARA RESTAURAR UN ÁREA DE TRABAJO SE ESCRIBE:
load<nombre_achivo>
ARCHIVOS punto m
ESTOS ARCHIVOS RECIBEN EL NOMBRE DE GUIONES (MATLAB script).
ES UN ARCHIVO DE TEXTO ASCII, SIMILAR A LOS ARCHIVOS DE
CÓDIGOS FUENTE DE C O FORTRAN. SON PROGRAMAS ESCRITOS CON
CÓDIGOS O INSTRUCCIONES DE MATLAB.
17
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
SOLUCIÓN
EN LA VENTANA DE TEXTO DE MATLAB SE TECLEAN LAS SIGUIENTES
INSTRUCCIONES Y COMENTARIOS:
%este es un programa para calcular la fuerza %DE
%GRAVITACIÓN UNIVERSAL ENTRE LA TIERRA Y LA LUNA
%empleando la Ley de Gravitación Universal de
Newton
G=6.67e-11;%constante de gravitación universal
m1=6.0e24;%masa de la Tierra
m2=7.4e22;%masa de la Luna
dist=3.9e8;%distancia media / la Tierra y la Luna
F=G*m1*m2/dist^2%magnitud de la fuerza
2) CREAR UN ARCHIVO punto m QUE PERMITA SOLUCIONAR EL
CÁLCULO DE LA FUERZA DE GRAVITACIÓN UNIVERSAL
EMPLEANDO LA LEY DE NEWTON CONSIDERANDO QUE LA
DISTANCIA ENTRE AMBOS CUERPOS CELESTES NO ES
CONSTANTE Y VARÍA ENTRE LOS LÍMITES (3.8 ; 4)x108.
CALCULAR LOS VALORES PARA 20 INTERVALOS IGUALES
DENTRO DEL INTERVALO DE DISTANCIA DADO.
𝒎𝟏 ∗ 𝒎𝟐
𝑭=𝑮
𝒓𝟐
DONDE: G=6.673x10-11 Nm^2/kg^2
m1=6x1024 kg
m2=7.4x1022 kg
SOLUCIÓN
%Programa para calcular la fuerza entre dos masas
%empleando Ley de Gravitación Universal de Newton
%para 20 intervalos de distancia
G=6.67e-11;%constante de gravitación universal
m1=6.0e24;%masa de la Tierra
m2=7.4e22;%masa de la Luna
dmin=3.8e8;%límite inferior de distancia
dmax=4e8;%límite superior de distancia
interv=1.0e6;dist=dmin:interv:dmax;
F=(G*m1*m2)./ dist.^2;%magnitud de la fuerza
18
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
19
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
DEBER 1.
1) OBTENER LOS RESULTADOS DE LAS SIGUIENTES OPERACIONES
EMPLEANDO A MATLAB COMO UNA CALCULADORA DIGITAL.
>> 5+2
>> 5*2
>> 5/2
>> 3+2*(4+3)
>> 2.54*8/2.6
>>6.3-2.1045
>>3.6^2
>>sqrt(9)
>>sqrt(2)
2) RESOLVER MEDIANTE PROGRAMACIÓN MATLAB LA SIGUIENTE
EXPRESIÓN:
𝒍𝒐𝒈(𝒂𝒙𝟐 + 𝒃𝒙 + 𝒄) − 𝒔𝒊𝒏(𝒂𝒙𝟐 + 𝒃𝒙 + 𝒄)
𝒇=
𝟒𝝅𝒙𝟐 + 𝒄𝒐𝒔(𝒙 − 𝟐)(𝒂𝒙𝟐 + 𝒃𝒙 + 𝒄)
SI SE CONOCE QUE a=1, b=3 y c=5. REALIZAR LOS CÁLCULOS EN EL
INTERVALO DE VALORES DE x (4; 10). ELIJA SU INTERVALO.
INVESTIGAR LAS FUNCIONES log; sin y cos DE MATLAB.
3) RESUELVA LOS SIGUIENTES EJERCICIOS:
𝟓+𝟑
𝟗−𝟏
𝟕
𝟓+𝟔∗𝟓−𝟐𝟐
𝟐 𝟒
∗
𝟑 𝟗∗𝟓
4) INVESTIGAR:
- EMPLEO DEL COMANDO linspace
- EMPLEO DEL COMANDO logspace
- CÓMO EMPLEAR EL COMANDO format?
20
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
ACTIVIDAD 2
OBJETIVOS:
21
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
Tabla de contenido
1 ENTRADA Y SALIDA DE DATOS CONTROLADAS POR EL USUARIO ... 23
22
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
1 ENTRADA Y SALIDA DE DATOS CONTROLADAS POR EL USUARIO
Ejemplo:
x=1:10; disp(x)
TIPO DE FORMATO
%f Notación decimal
%e Notación exponencial(científica)
%g Como sea más corto
%c Información tipo carácter
%s Cadena de caracteres
FORMATO ESPECIAL
\n Salto de línea
EJEMPLO DE USO:
x=1:5;fprintf('%8.2f \n',x);
23
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
2 FUNCIONES TRIGONOMÉTRICAS Y OTRAS FUNCIONES PARA EL
ANÁLISIS DE DATOS
sin(x) seno
cos(x) coseno
tan(x) tangente
asin(x) arco seno
acos(x) arco coseno
atan(x) arco tangente (devuelve un ángulo entre -
π/2 y +π/2)
atan2(x) arco tangente (devuelve un ángulo entre -
π y +π);
3 GRÁFICOS TRIDIMENSIONALES
Figura 1
%solución de problemas de la Física
clear, clc
%======================================================
%solicitar del usuario entrada por teclado
g=input('Ingrese valor aceleración de la gravedad ');
start=input('Tiempo de inicio del análisis ');
fin=input('Tiempo final del análisis ');
incr=input('¿Qué incremento de tiempo desea aplicar? ');
t=start:incr:fin;
d=0.5*g*t.^2;
plot(t,d)
title('Variación de la distancia en caída libre')
xlabel('Tiempo caida libre [s]')
ylabel('distancia, [m]')
final_dist=max(d)
%=======================================================
%=======================================================
%crea matriz datos de salida
tabla=[t;d];
%=======================================================
%muestra la tabla en la ventana de comandos
fprintf('Para la aceleración de la gravedad de %5.1f
segundos\n se calcularon los siguientes datos\n',g)
28
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
disp('Distancia recorrida en caída libre')
disp('tiempo, s, distancia, m')
fprintf('%8.0f %10.2f\n',tabla)
[a,b]=ginput
%=======================================================
Figura 2
𝑭𝒚 = 𝒀 + 𝑭𝒗 ∗ 𝒔𝒊𝒏(𝜽) − 𝑷
Figura 3
EL VALOR DE LA FUERZA RESULTANTE ES ENTONCES:
𝟐
𝑭𝑹 = √(𝑭𝒙 )𝟐 + (𝑭𝒚 )
30
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
LA PRESENTACIÓN DE LOS DATOS EN FORMA DE TABLA SE
ENCUENTRA RESUELTA EN EL ÚLTIMO BLOQUE DE INSTRUCCIONES
DEL PROGRAMA PARA RESOLVER LOS DATOS DE UN CUERPO EN
CAÍDA LIBRE (página 8).
Figura
LA FÓRMULA PARA EL CÁLCULO DE DICHA ENERGÍA POTENCIAL
GRAVITACIONAL ES:
𝒎𝟏 𝒎𝟐 𝒎𝟏 𝒎𝟑 𝒎𝟐 𝒎𝟑
𝑼𝑻𝑶𝑻𝑨𝑳 = −𝑮 ( + + )
𝒓𝟏𝟐 𝒓𝟏𝟑 𝒓𝟐𝟑
31
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
2) HAGA UN PROGRAMA INTERACTIVO CON EL USUARIO DE
MANERA QUE SE PUEDA CALCULAR LA ENERGÍA POTENCIAL
GRAVITACIONAL PARA CUALQUIER VALOR DE LAS MASAS DE
LAS PARTÍCULAS Y DISTANCIAS ENTRE ELLAS.
32
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
EL OBJETO DE 4.00 kg, SI SUPONE QUE LAS ESFERAS ESTÁN
AISLADAS DEL RESTO DEL UNIVERSO.
33
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
PROGRAMACIÓN CON MATLAB
34
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
Tabla de contenido
FUNCIONES DEFINIDAS POR EL USUARIO ................................................ 36
35
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
FUNCIONES DEFINIDAS POR EL USUARIO
OBJETIVOS
37
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
Figura
LA INSTRUCCIÓN QUE ACABAMOS DE DISCUTIR ES LA PRIMERA LÍNEA
DENTRO DEL script TIPO function DEFINIDA POR EL USUARIO.
function valor=eval_polinomio(x);
%Esta función calcula el valor de un polinomio
%dado el vector x
%eval_polinomio(x) evalúa un polinomio de tercer
%orden en los puntos
%dados por el vector x
valor=3*x.^3+5*x.^2-2*x+1;
OTROS EJEMPLOS
EN EL EDITOR DE MATLAB ESCRIBIR LOS GUIONES (SCRIPTS):
function conv1=grad2rad(a)
conv1=a*pi/180;
function conv2=rad2grad(a)
conv2=a*180/pi;
Y GUARDARLOS.
AHORA, EN LA VENTANA DE COMANDOS LLAMAR A LAS FUNCIONES
GUARDADAS COMO SE INDICA A CONTINUACIÓN:
>> rad2grad(1.57079)
40
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
ans =
89.9996
>> grad2rad(89.9996)
ans =
1.5708
function printresults(x)
function [] = printresults(x)
EJEMPLO
SIENDO
function []=printresults(x,valor)
%grafica los resultados de la evaluación de un
%polinomio
plot(x,valor)
grid
xlabel('Valor de x')
41
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
ylabel('Valor del polinomio y')
ENTONCES:
PROGRAMACIÓN.
ELIMINACIÓN DE ERRORES.
COMO LA EFICIENCIA.
44
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015
FINALMENTE, EL CÓDIGO DEBE SER ESCRITO DE UNA MANERA
ETC.
PROGRAMAR ES … PROGRAMANDO .
45
Ms. C. ARÍSTIDES REYES BACARDÍ
MILAGRO ABRIL 2015