Ao Acadmico: 2014 Ao de estudios: Tercero Docente: MSc. Javier Lozano Marreros Msc. Javier Lozano M. 1 Curso: Mtodos Numricos Aplicados a la Minera 2 MSc. Javier Lozano Marreros 3 MSc. Javier Lozano Marreros M A T L A B MATrix LABoratory Grficas Clculo numrico computacional Simulink Toolboxes Lenguaje de programacin 4 ENTORNO DE DESARROLLO MSc. Javier Lozano Marreros 5 MSc. Javier Lozano Marreros VENTANA DE COMANDOS Prompt Carpeta de trabajo por defecto
6 MSc. Javier Lozano Marreros >>instrucciones a ejecutar 7 MSc. Javier Lozano Marreros EDITOR DE CODIGO Se pulsa para ejecutar el programa 8 MSc. Javier Lozano Marreros VENTANA DE GRFICOS 9 VARIABLES No requiere declarar variables. La variable se crea mediante asignacin directa.
Las variables deben empezar con una letra, seguida por cualquier nmero de letras, dgitos o guiones de subrayado. Los caracteres de puntuacin no son permitidos en las variables.
Las variables son sensibles a las maysculas, por lo que las siguientes variables son diferentes: Minas , minas MSc. Javier Lozano Marreros 10 MATRICES Y ARREGLOS SINTAXIS (VECTOR FILA):
v = [v1,v2,v3, ,vn] v = [v1 v2 v3 vn]
SINTAXIS (VECTOR COLUMNA): v = [v1;v2;v3; ,vn] MSc. Javier Lozano Marreros Arreglo unidimensional (vector) 11 EJEMPLOS Vector fila
>> x=[1 2 3] x = 1 2 3
>> sin(x) ans = 0.8415 0.9093 0.1411 MSc. Javier Lozano Marreros 12 EJEMPLOS Vector columna >> y=[10; 20; 30] y = 10 20 30 >> sqrt(y) ans = 3.1623 4.4721 5.4772 MSc. Javier Lozano Marreros 13 OTRAS FORMAS DE CREAR UN VECTOR 1. Con el operador dos puntos(:)
SINTAXIS
Var = [Vinicial:Inc:Vfinal] Var = Vinicial:Inc:Vfinal
Donde: Var: variable Inc: incremento Vinicial: valor inicial Vfinal: Valor final MSc. Javier Lozano Marreros 14 OTRAS FORMAS DE CREAR UN VECTOR Ejemplos:
>> x=[0:0.2:1] x = 0 0.2000 0.4000 0.6000 0.8000 1.0000 >> y=-1:.5:3 y = -1.0000 -0.5000 0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 MSc. Javier Lozano Marreros 15 2. Con la funcin linspace()
SINTAXIS linspace(Vi, Vf, NE)
Donde: Vi : valor inicial Vf : valor final NE : numero de elementos OTRAS FORMAS DE CREAR UN VECTOR MSc. Javier Lozano Marreros 16 EJEMPLOS >> t=linspace(0,pi,5) t = 0 0.7854 1.5708 2.3562 3.1416 >> a=linspace(-1,2,6) a = -1.0000 -0.4000 0.2000 0.8000 1.4000 2.0000 MSc. Javier Lozano Marreros 17 v(n) Devuelve el n-simo elemento del vector v x(a:b) Devuelve los elementos del vector x situados entere el a-esimo y b-simo elemento, y ambos inclusive x(a:p:b) Devuelve los elementos del vector x situados entere el a-esimo y b-simo elemento, y ambos inclusive, pero separados de p en p unidades. x([1,3,5]) Devuelve el primero, tercero y quinto elemento. length(x) Devuelve el numero de elementos del vector. OTRAS OPCIONES MSc. Javier Lozano Marreros 18 EJEMPLO >> a=linspace(-1,2,6) a = -1.0000 -0.4000 0.2000 0.8000 1.4000 2.0000
>> a(4) ans = 0.8000 MSc. Javier Lozano Marreros 19 EJEMPLO >> a=linspace(-1,2,6) a = -1.0000 -0.4000 0.2000 0.8000 1.4000 2.0000
>> a(2:4) ans = -0.4000 0.2000 0.8000 MSc. Javier Lozano Marreros 20 EJEMPLO >> y=-1:.5:3 y = -1.0000 -0.5000 0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000
>> y(1:3:5) ans = -1.0000 0.5000 2.0000 MSc. Javier Lozano Marreros 21 EJEMPLO >> y=-1:.5:3 y = -1.0000 -0.5000 0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000
>> y([1,3,9]) ans = -1 0 3 MSc. Javier Lozano Marreros 22 EJEMPLO >> y=-1:.5:3 y = -1.0000 -0.5000 0 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000
>> length(y) ans = 9 MSc. Javier Lozano Marreros 23 MATRICES Para representar una matriz de mxn elementos
Arreglos bidimensionales 24 EJEMPLO Crea la matriz de 4 filas y 3 columnas
>> A=[1,4,-3;5,-7,8;2,5,1;5,6,2] A = 1 4 -3 5 -7 8 2 5 1 5 6 2 MSc. Javier Lozano Marreros 25 Opciones para manipular los elementos de una matriz A(i,j) Define (devuelve) el elemento de la matriz A que esta ubicado en la fila i y en la columna j.
A(i, :) Devuelve los elementos de la i-sima fila de la matriz A
A(:, j) Devuelve los elementos de la jsima columna de la matriz A MSc. Javier Lozano Marreros 26 EJEMPLO >> A=[1,4,-3;5,-7,8;2,5,1;5,6,2] A = 1 4 -3 5 -7 8 2 5 1 5 6 2 >> A(2,3) ans = 8 MSc. Javier Lozano Marreros 27 EJEMPLO >> A=[1,4,-3;5,-7,8;2,5,1;5,6,2] A = 1 4 -3 5 -7 8 2 5 1 5 6 2
>> A(:,3) ans = -3 8 1 2 MSc. Javier Lozano Marreros 29 EJEMPLO >> A=[1,4,-3;5,-7,8;2,5,1;5,6,2] A = 1 4 -3 5 -7 8 2 5 1 5 6 2
>> A([2:4],[2:3]) %muestra una submatriz
ans =
-7 8 5 1 6 2 MSc. Javier Lozano Marreros 30 MATRICES ESPECIALES diag(A) Devuelve los elementos de la diagonal de la matriz A como vector columna eye(n) Crea la matriz identidad de orden n. zeros(m,n) Crea la matriz de orden mxn, cuyos elementos son ceros.
MSc. Javier Lozano Marreros 31 ones(m,n) Crea la matriz de orden mxn, cuyos elementos son unos. rand(m,n) Crea la matriz aleatoria de orden mxn. size(A) Devuelve el orden(tamao) de la matriz A MSc. Javier Lozano Marreros 32 A Devuelve la matriz traspuesta de la matriz A det(A) Devuelve la determinante de una matriz. inv(A) Devuelve la matriz inversa de la matriz A MSc. Javier Lozano Marreros 33 VARIABLES CARCTER Una variable carcter es una cadena de caracteres incluidos entre comillas simples
SINTAXIS C = cadena de caracteres MSc. Javier Lozano Marreros 34 OPERADORES OPERACIONES ARITMTICAS x^y potencia x y
x/y divisin x/y x*y producto xy x-y diferencia x-y x+y suma x+y MSc. Javier Lozano Marreros 35 OPERADORES ARITMTICOS + Suma de escalares, vectores o matrices. - resta de escalares, vectores o matrices. * producto de escalares, vectores o matrices. / cociente escalar o B/A=B*inv(A). A y B son matrices MSc. Javier Lozano Marreros 36 OPERADORES ARITMTICOS .* producto de escalares o vectores (elemento a elemento). ./ A./B = [A(i,j)/B(i,j)] ^ potencia de escalares o potencia escalar de matriz (M p ) .^ potencia de vectores A.^B = [A(i,j) B(i,j) ] MSc. Javier Lozano Marreros 37 OPERADORES RELACIONALES < menor que > mayor que <= menor o igual que >= mayor o igual que == igualdad ~= diferente a MSc. Javier Lozano Marreros 38 OPERADORES LGICOS ~ negacin & conjuncin | disyuncin MSc. Javier Lozano Marreros 39 PROGRAMACIN EN MATLAB PROGRAMAS QUE SE EJECUTAN EN LA VENTANA DE COMANDOS MSc. Javier Lozano Marreros 40 Entrada de datos LA FUNCIN input MSc. Javier Lozano Marreros LEER variable variable = input(texto) variable = input(texto,'s') 41 MSc. Javier Lozano Marreros Ejemplos N = input('ingrese el numero de terminos: ') LEER N, f(x) txt=input ('Ingrese la funcion f(x):','s'); f = inline(txt); 42 Salida de datos LA FUNCION disp MSc. Javier Lozano Marreros ESCRIBIR variable disp(variable) 43 Salida de datos Escribe una cadena con formato.
SINTAXIS cadena = fprintf(formato,variables) MSc. Javier Lozano Marreros LA FUNCION fprintf 44 MSc. Javier Lozano Marreros Ejemplos Ejemplo1: disp(Mi primer programa');
Ejemplo2: s=sqrt(b^2-4*a*c); disp(s);
Ejemplo3: x = [2 3 4]; texto1=Los valores de x son: ; texto2=num2str(x); texto3=[texto1,texto2]; disp(texto3); 45 MSc. Javier Lozano Marreros Ejemplos Ejemplo1: s=sqrt(b^2-4*a*c); fprintf(' %12.8f ', s)
Ejemplo2: fprintf('%12.8f\n',pi)
Ejemplo3: >> x=[-3:.5:3]'; y=x.^2; z=[x y]; >>fprintf('\tX\t\tY\t\n'); >>fprintf('%8.4f %8.4f\n',z') 46 variable = expresion MSc. Javier Lozano Marreros INSTRUCCIN DE ASIGNACIN d=b^2-4*a*c; 2 4 d b ac 47 if condicion instrucciones o grupo de instrucciones end V F Condicion Instrucciones LA SENTENCIA if MSc. Javier Lozano Marreros SENTENCIAS CONDICIONALES 48 if condicion Instrucciones1 else Instrucciones2 end LA SENTENCIA if else V F Condicion Instrucciones1 Instrucciones2 MSc. Javier Lozano Marreros 49 LA SENTENCIA switch switch expresin case valor 1 Instrucciones1 case valor 2 instrucciones2 . . . oterwise Instruccin cuando no cumple ningn caso end valor 1 Expresion Inst 1 Inst 2 Inst n-1 Inst n valor 2 valor n-1 valor n MSc. Javier Lozano Marreros 50 LA SENTENCIA for for V=VI:I:VF instrucciones end F Instrucciones V = VI, VF, I MSc. Javier Lozano Marreros SENTENCIAS REPETITIVAS 51 LA SENTENCIA while while condicion instrucciones end V F Condicion Instrucciones MSc. Javier Lozano Marreros 52 EJEMPLOS DE PROGRAMAS EN MATLAB MSc. Javier Lozano Marreros 53 EJEMPLO
1. Disear el diagrama de flujo de programas, y escribir el programa en MATLAB, que calcule la suma de los n primeros trminos de la sucesin , 4! x , 3! x , 2! x x, 1, 4 3 2 MSc. Javier Lozano Marreros 54 DIAGRAMA DE FLUJO i = 1, n-1 INICIO LEER n , x P = 1 F = 1 S = 1 P = P*x F = F*i S = S + P/F ESCRIBIR S FIN MSc. Javier Lozano Marreros 55 Cdigo en MATLAB Un script es una secuencia de instrucciones de MATLAB guardada en un archivo con extensin .m MSc. Javier Lozano Marreros Scripts Para ejecutar el programa: Pulsar F5 Escribir el nombre del archivo en el prompt de la ventana de comandos. 56 Cdigo para la entrada de datos n=input(Ingrese n: ); x=input(Ingrese x: ); LEER n , x MSc. Javier Lozano Marreros 57 Cdigo para el proceso de datos P=1; F=1; S=1; for i=1:n-1 P=P*x; F=F*i; S=S+P/F; end i = 1, n-1 P = 1 F = 1 S = 1 P = P*x F = F*i S = S + P/F MSc. Javier Lozano Marreros 58 Cdigo para la salida de datos disp(S); ESCRIBIR S MSc. Javier Lozano Marreros 59 CODIGO COMPLETO DEL PROGRAMA MSc. Javier Lozano Marreros 60 Ventana de ejecucin del ejemplo MSc. Javier Lozano Marreros PROGRAMACIN VISUAL GUIDE CON MATLAB PROGRAMACIN VISUAL CON MATLAB MSc. Javier Lozano Marreros 62 GUIDE 63 ACCESO AL GUIDE DEL MATLAB MSc. Javier Lozano Marreros 64 EL GUIDE DEL MATLAB En el formulario se insertan los objetos que formaran parte de la interfaz de usuario Formulario Objeto MSc. Javier Lozano Marreros Paleta de componentes Run 65 Inspector de propiedades Para cambiar las propiedades de un objeto primero se debe de seleccionar el objeto MSc. Javier Lozano Marreros 66 Objeto static text Objeto edit text Objeto push button INTERFAZ DE USUARIO PARA EL EJEMPLO VENTANA DE DISEO MSc. Javier Lozano Marreros 67 PARA INGRESAR EL CODIGO EN EL BOTON ACEPTAR MSc. Javier Lozano Marreros 68 FUNCION DONDE SE INGRESARA EL CDIGO MSc. Javier Lozano Marreros 69 Entrada de datos LA FUNCION get Permite consultar y cambiar el valor de las propiedades de un objeto.
SINTAXIS get(handles.Nom_obj,'prop');
Donde: Nom_obj: nombre del objeto handles.Nom_obj: hace referencia al objeto de la interfaz grafica de usuario. 'prop.: es la propiedad del objeto. MSc. Javier Lozano Marreros 70 LA FUNCION get EJEMPLO: texto=get(handles.edit1,'string'); Esta instruccin captura el dato que se ha ingresado en el control Edit Text (edit1) y lo asigna a la variable texto.
x=str2double(get(handles.edit2,'string')); Esta instruccin captura el dato que se ha ingresado en el control Edit Text (edit2), lo convierte a numero real y lo asigna a la variable x. MSc. Javier Lozano Marreros 71 Salida de datos LA FUNCION set Muestra el valor de las propiedades de un objeto. SINTAXIS set(handles.Nom_obj, 'prop.',v_prop);
Donde: Nom_obj: Es el nombre del objeto handles.Nom_obJ: hace referencia al objeto que se encuentra en el formulario. 'prop.: es la propiedad del objeto, V_prop: es el nuevo valor de la propiedad. MSc. Javier Lozano Marreros 72 LA FUNCION set
EJEMPLOS:
set(handles.edit5,'string',120); Esta instruccin escribe el numero 120 en el control Edit Text (edit5).
set(handles.edit7,'string','No existe raiz'); Esta instruccin escribe el texto No existe raiz en el control Edit Text (edit7). MSc. Javier Lozano Marreros 73 LA FUNCION sprintf Escribe una cadena con formato. Retorna una cadena.
cad = sprintf('x%d = %10.6f', 4, pi) El resultado x4 = 3.141593 lo guarda en la cadena cad MSc. Javier Lozano Marreros 74 EJEMPLO Disear el diagrama de flujo de programas, y escribir el programa en MATLAB, que calcule la suma de los n primeros trminos de la sucesin: , 4! x , 3! x , 2! x x, 1, 4 3 2 MSc. Javier Lozano Marreros 75 DIAGRAMA DE FLUJO i = 1, n-1 INICIO LEER n , x P = 1 F = 1 S = 1 P = P*x F = F*i S = S + P/F ESCRIBIR S FIN MSc. Javier Lozano Marreros 76 Cdigo para la entrada de datos n=str2double(get(handles.edit1,string));
x=str2double(get(handles.edit2,string)); LEER n , x MSc. Javier Lozano Marreros 77 Cdigo para el proceso de datos P=1; F=1; S=1; for i=1:n-1 P=P*x; F=F*i; S=S+P/F; i = 1, n-1 P = 1 F = 1 S = 1 P = P*x F = F*i S = S + P/F MSc. Javier Lozano Marreros 78 Cdigo para la salida de datos set(handles.edit3,'string',S); ESCRIBIR S MSc. Javier Lozano Marreros 79 CODIGO COMPLETO DEL PROGRAMA MSc. Javier Lozano Marreros 80 Ventana de ejecucin del ejemplo MSc. Javier Lozano Marreros 81 Sigue Parte 2 MSc. Javier Lozano Marreros