Vous êtes sur la page 1sur 81

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

9 8 7
6 5 4
3 2 1

mn 2 m 1 m
n 2 22 21
n 1 12 11
a a a
a a a
a a a

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 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.

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!
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

Vous aimerez peut-être aussi