-
Facultad: FAIN
Escuela: Ingeniera de Minas
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
SINTAXIS
M=[a11,a12,...,a1n;
a21,a22,...,a2n;...;am1,am2,...,amn]
En lugar de las comas se pueden utilizar espacios
987
654
321
mn2m1m
n22221
n11211
aaa
aaa
aaa
MSc. Javier Lozano Marreros
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(2,:)
ans =
5 -7 8
MSc. Javier Lozano Marreros
-
28
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 xy
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 (Mp)
.^ potencia de vectores
A.^B = [A(i,j)B(i,j)]
MSc. Javier Lozano Marreros
-
37
OPERADORES RELACIONALES
< menor que
> mayor 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 4d 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!
xx,1,
432
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.
SINTAXIS
cadena = sprintf(formato,variables)
EJEMPLO:
sprintf('x%d = %10.6f', 4, pi)
muestra el siguiente resultado: x4 = 3.141593
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!
xx,1,
432
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