Unidad
01
Lenguaje de programacin MATLAB
El software de MATLAB se desarroll originalmente como un Laboratorio de
Matrices. (MATrix LABoratory-Laboratorio de matrices).
MATLAB es un sistema interactivo y lenguaje de programacin para cmputo
cientfico y tcnico en general, con un gran desempeo para el clculo numrico y
tratamiento de datos. Su elemento bsico es una matriz.
MATLAB contiene muchas herramientas y utilidades que permiten adems diversas
funcionalidades, como la presentacin grfica en 2 y 3 dimensiones.
MATLAB es un programa command-driven, es decir, que se introducen las rdenes
escribindolas una a una a continuacin del smbolo >> (prompt) que aparece en una
interfaz de usuario (ventana de comandos).
MATLAB es un lenguaje de programacin amigable al usuario con caractersticas ms
avanzadas y mucho ms fciles de usar que los lenguajes de programacin como Pascal
o C, y cuenta con paquetes de funciones especializadas llamadas toolboxes y un entorno
Visual similar al Visual Basic o al C++ Builder.
1. INICIO DEL MATLAB
LAVENTANA DE COMANDOS
Para iniciar MATLAB localice el icono de MATLAB, en su escritorio y haga doble clic
en l. Ante Ud. debera abrirse una ventana como la de la siguiente figura. Esta ventana
(ventana de comandos), es la que Ud. emplear para transmitir rdenes a MATLAB.
Curso: Calculo Numrico
Carpeta de
trabajo por
defecto
Prompt
Fig. Ventana de Comandos
En esta ventana, a continuacin del prompt
ordenes o comandos.
>>, se puede ingresar directamente las
>> Comando o instruccin a ejecutar
Ejemplo 1:
Para calcular la expresin matemtica
2 , escribimos sqrt(2),y pulsamos la tecla entrar
>> sqrt(2)
ans =
1.4142
El resultado es desplegado y se guarda en la variable por defecto ans (answer).
MSc. Javier Lozano Marreros
Curso: Calculo Numrico
Ejemplo 2:
Para calcular la expresin matemtica 52 -7 3+4 escribimos 5^2-7*3+4 y pulsamos
la tecla entrar
>> 5^2-7*3+4
ans =
8
El resultado es desplegado y se guarda en la variable por defecto ans (answer).
LA VENTANA DE EDITOR DE CDIGO
Cuando la orden u rdenes son de varias lneas de texto, ya no es conveniente
ingresarlos en la ventana de comandos, por eso MATLAB incorpora otra ventana
denominada Editor de cdigo. En esta ventana se puede ingresar el cdigo de un
programa ya sea de una lnea o de cientos de lneas de texto. Adems, esta ventana
interacciona con el resto del entorno.
Para acceder a esta ventana hacer clic en el icono
. (nuevo archivo .m).
Estos archivos son los archivos programa del MATLAB. Para correr el programa hacer
un clic en el icono
. El programa se ejecutar si el archivo .m ha sido previamente
grabado. Por defecto el archivo .m se graba en el directorio donde se encuentra el
programa MATLAB en la carpeta work.
El programa tambin se puede ejecutar directamente desde la ventana de comandos.
Para ello, activar la ventana de comandos y en ella digitar el nombre del archivo a
continuacin del prompt >> y pulsar la tecla Enter.
Se pulsa para ejecutar el
programa
Fig. Ventana Editor de Cdigo
VENTANA DE GRAFICOS
Esta ventana se activa por defecto, y muestra el grafico definido previamente mediante
algn cdigo.
MSc. Javier Lozano Marreros
Curso: Calculo Numrico
Ejemplo 3:
Para graficar la funcin
comandos
f ( x) x 2e x
escribir el siguiente cdigo en la ventana de
>> ezplot('x^2*exp(-x^2)'),grid on
El resultado muestra la siguiente ventana con la grafica de dicha funcin. El dominio de
esta funcin es por defecto: [2 , 2 ] .
x 2 exp(-x 2)
0.4
0.35
0.3
0.25
0.2
0.15
0.1
0.05
0
-2.5
-2
-1.5
-1
-0.5
0
x
0.5
1.5
2.5
Ejemplo 4:
Para graficar la funcin f ( x) xSinx escribir el siguiente cdigo en la ventana de
comandos.
>> ezplot('x*sin(x)'), grid on
x sin(x)
2
1
0
-1
-2
-3
-4
-5
-6
MSc. Javier Lozano Marreros
-4
-2
0
x
Curso: Calculo Numrico
Ejemplo 5:
f ( x, y ) x 2e1 x
Para graficar la funcin
de comandos
y2
escribir el siguiente cdigo en la ventana
>> ezmesh('x^2*exp(1-x^2-y^2)')
sin(x 2+y 2)
1
0
-1
2
1
2
0
1
0
-1
-1
y
-2
-2
2. ESTRUCTURAS BSICAS DE DATOS.
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 y minsculas, por lo que las siguientes
variables dolar = 0 y Dolar = 1 son diferentes:
>>dolar=0
dolar
=0
>>Dolar=1
Dolar
=1
Si escribimos un punto y coma al final de la instruccin, MATLAB omite el desplegado
de informacin. Por ejemplo :
>>x=5;
Si se quiere saber el valor de alguna variable capturada slo se tiene que escribir el
nombre de la variable y pulsar la tecla <ENTER> y MATLAB lo despliega. Por
ejemplo:
>>x
MSc. Javier Lozano Marreros
Curso: Calculo Numrico
CARACTERES ESPECIALES
[ ]
Son usados para formar vectores y matrices
[1 2 3; 4 5 6]
( )
Usados para expresiones matemticas
sqrt(2)
Usado para hacer asignaciones
x=5
'
Transpuesta de una matriz
A'
'
Usado para escribir texto en un programa
'Ingrese a: '
Punto decimal
3.1415
...
Al final de una lnea indican que continua en el sgte rengln
2,3,4,5,6 ....
7,8,9,10 ]
Para separar elementos
[1,2,3,4]
Para separar filas en las matrices y para evitar que se
despliegue la informacin
[ 1 2; 3 4]
Para escribir comentarios
%fecha:12/10/11
3. ARREGLOS (ARRAYS)
VECTORES
Para representar un vector fila con n elementos:
SINTXIS:
v = [v1,v2,v3, ,vn]
o tambin
v = [v1
v2
v3
vn]
Por ejemplo, para calcular el seno de " 1 a 4 " con incrementos de 1, se deben capturar
los valores y asignarlos en la variable x, y despus aplicar el seno al vector. MATLAB
opera en radianes, donde = 180.
>> x=[ 1
4]
x=
1
>> sin(x)
ans =
0.8415
0.9093
MSc. Javier Lozano Marreros
0.1411
-0.7568
Curso: Calculo Numrico
MATRICES
Para representar una matriz de mxn elementos
SINTAXIS
M=[a11, a12,a13, ... ,a1n; a21, a22,a23, ... ,a2n; ... ;am1, am2,am3, ... ,amn]
En lugar de las comas se pueden utilizar espacios
>> A=[1,4,-3;5,-7,8;2,5,1;5,6,2] %crea la matriz de 4 por 3
A =
1
-3
-7
OPCIONES PARA MANIPULAR LOS ELEMENTOS DE UNA MATRIZ
A(m,n)
Define (devuelve) el elemento (m,n) de la matriz.
m es el numero de filas y n el numero de columnas
A(m, :)
Devuelve la msima fila de la matriz A
A(:, n)
Devuelve la nsima columna de la matriz A
MATRICES ESPECIALES
diag(A)
Devuelve la diagonal de la matriz A como vector columna
eye(n)
Crea la matriz identidad de orden n.
zeros(m,n) Crea la matriz nula de orden mxn.
ones(m,n)
Crea la matriz de orden mxn, cuyos elementos son unos.
rand(m,n)
Crea la matriz aleatoria de orden mxn.
fliplr(A)
Devuelve la matriz cuyas columnas estn colocadas en orden inverso (de
izquierda a derecha) a las de A.
size (A)
Devuelve el orden(tamao) de la matriz A
length(v)
Devuelve el nmero de elementos del vector v
inv (A)
Devuelve la matriz inversa de la matriz A
Devuelve la matriz traspuesta de la matriz A
det(A)
Devuelve la determinante de una matriz.
MSc. Javier Lozano Marreros
Curso: Calculo Numrico
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
OPERADORES ARITMTICOS
+
Suma de escalares, vectores o matrices.
resta de escalares, vectores o matrices.
producto de escalares, vectores o matrices.
divisin escalar o B/A. A y B son matrices
.*
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)]
4. PROGRAMACIN EN MATLAB
Scripts
Un script es una secuencia de instrucciones de MATLAB guardada en un archivo con
extensin .m. Se utiliza la ventana de editor de cdigo
Ejemplo 6:
MSc. Javier Lozano Marreros
Curso: Calculo Numrico
Para ejecutar el programa se hace un clic en el cono Save and Run o pulsar la tecla F5.
La ejecucin del programa se visualiza en la ventana de comandos luego de haber
grabado el archivo. Para volver a ejecutar este programa, en la ventana de comandos se
escribe el nombre del archivo tal como se muestra a continuacin.
>> esic2011_p1_1
Ingrese x1: 0
Ingrese y1: 0
Ingrese x2: 4
Ingrese y2: 0
Ingrese x3: 2
Ingrese y3: 2
4
SENTENCIAS DE CONTROL
SENTENCIAS CONDICIONALES
SENTENCIA if
Esta sentencia permite ejecutar una instruccin o grupo de instrucciones si la condicin
es verdadera.
SINTXIS
V
condicion
if
condicion
Instruccin o grupo de instrucciones
end
Instrucciones
condicin: expresin lgica
SENTENCIA if - else
Si la condicin es verdadera se ejecuta la instruccin o grupo de instrucciones 1, si la
condicin es falsa se ejecuta la instruccin o grupo de instrucciones 2.
SINTXIS
V
condicion
Instrucciones 1
Instrucciones 2
if condicion
Instruccin o grupo de instrucciones1
else
Instruccin o grupo de instrucciones2
end
condicin: expresin lgica
MSc. Javier Lozano Marreros
Curso: Calculo Numrico
SENTENCIA switch
La sentencia switch ejecuta ciertas instrucciones basados en el valor de una variable o
de una expresin.
SINTXIS
expresion
Valor 1
Valor 2
Inst. 1
Valor n
Valor 3
Inst. 2
Inst. 3
Inst. n
expresin:
variable que toma uno de los valores
switch expresion
case Valor 1
instrucciones1
case Valor 2
instrucciones2
case Valor 3
instrucciones3
...
oterwise
instruccin cuando no
cumple ningn caso
end
SENTENCIAS REPETITIVAS
EL BUCLE for
Esta sentencia permite ejecutar en forma repetitiva una instruccin o grupo de
instrucciones varias veces.
SINTXIS
v vi, inc, vf
for v = vi : inc: vf
Instruccin o grupo de instrucciones
end.
Instrucciones
vi: valor inicial
inc: incremento
vf: valor final
EL BUCLE while
Esta sentencia permite ejecutar en forma repetitiva una instruccin o grupo de
instrucciones bajo el control de una condicin lgica.
SINTXIS
condicion
while
condicion
Instruccin o grupo de instrucciones
end.
Instrucciones
condicin: expresin lgica
MSc. Javier Lozano Marreros
10
Curso: Calculo Numrico
FUNCIONES CREADAS POR EL USUARIO. DEFINICIN DE FUNCIONES
SINTXIS
function [parmetros de salida] = nombre de la funcin (parmetros de entrada)
Cuerpo de la funcin
Una vez definida la funcin se guarda en un archivo .m para su uso posterior. Escriba
comentarios entre % , al cual se acceden con el comando help
Si los parmetros de salida son mas de uno se sitan entre corchetes y separados por
comas. Si los parmetros de entrada son ms de uno, se separan por comas.
Cada comando o instruccin en el cuerpo de la funcin suele ir en una lnea que finaliza
con una coma o punto y coma o una coma seguida de tres puntos sucesivos.
LLAMADA DE FUNCIONES
SINTXIS
[variables de retorno] = nombre de la funcin (parmetros actuales)
EJEMPLO:
Crear la funcin f(x)=x3-2x+cosx
Cdigo de la funcin
function y = f(x)
%la funcion evalua f(x)=x^3-2*x+cos(x)
y=x^3-2*x+cos(x);
Grabar el archivo con extensin .m. El nombre del archivo es el mismo nombre que el
de la funcin. Este archivo se graba por defecto en la carpeta work del directorio del
MATLAB. Se puede utilizar la funcin desde la ventana de comandos o desde cualquier
programa en MATLAB
>> f(2)
ans =
3.5839
EVALUACIN DE UNA FUNCIN
FUNCION feval
SINTXIS
feval(fun, arg1, arg2, arg3, ... ,arg N)
donde fun viene a ser el nombre de la funcin (archivo .m)
EJEMPLO:
Evaluar la funcin f(x)=x3-2x+cosx
>> feval('f',3)
%f.m es el nombre de la funcin
ans =
20.0100
MSc. Javier Lozano Marreros
11
Curso: Calculo Numrico
FUNCION inline
Convierte una cadena en una funcin
SINTXIS
f = inline (expresion, arg1, arg2, arg3, ... ,arg N)
EJEMPLOS:
>>g = inline('t^2')
g =
Inline function:
g(t) = t^2
>> w=inline('x^2+y^2+z^2','x','y','z')
w =
Inline function:
w(x,y,z) = x^2+y^2+z^2
PROGRAMAS QUE SE EJECUTAN EN LA VENTANA DE COMANDOS
ENTRADA DE DATOS
Para la entrada de datos se utiliza la funcin input
variable = input (texto);
Donde variable es un identificador vlido, en la que se va a almacenar el valor que se va
a ingresar por teclado.
EJEMPLO:
a=input('ingrese el coeficiente a: ')
SALIDA DE DATOS
Para la salida de datos se utiliza la funcin disp
disp(expresion);
Donde expresin puede una variable o cadena de caracteres.
EJEMPLO:
disp('La suma es: ');
disp(s);
FUNCION sprintf
Escribe una cadena con formato. Retorna una cadena de caracteres.
SINTXIS
cadena = sprintf(formato,variables)
Por ejemplo, cad = sprintf('%8.6f',x) muestra la variable x con 6 decimales
MSc. Javier Lozano Marreros
12