Está en la página 1de 46

Curso Introductorio de

MatLab
Nelio Pastor Gmez
Sistemas de Cmputo
Hardware
Elementos fsicos que constituyen
una computadora.
Dispositivos de entrada.
Dispositivos de salida.
Unidad Central de
Procesamiento
Unidad Principal
Almacenamiento
Unidad Secundaria de
Almacenamiento
Software
Conjuto de programas diseados
para operar una computadora.
Software de Sistema.
Software de Aplicaciones.
Programa: Conjunto de instrucciones que hacen funcional una computadora.
Lenguajes de Programacin
Lenguaje de mquina.
Instrucciones directas para la computadora
se expresan en la unidad mas pequea (bit 1 0).
Lenguaje ensamblador.
Conocido tambin como lenguaje de bajo nivel.
Simplifican el proceso de programacin en lenguaje mquina
Las instrucciones se escriben en cdigos alfabticos conocidos como nemotcnicos.
Lenguaje de alto nivel.
Las instrucciones se escriben con palabras similares a los lenguajes humanos
(generalmente en ingles).

Resolucin de Problemas por
Computadora
Anlisis del problema.-Se da una clara definicin del
problema, donde se contemple exactamente lo que debe hacer el programa
y el resultado o solucin deseada.
Diseo del Algoritmo.- Aqu se determina como hara el
programa la tarea solicitada.
El diseo se realiza aplicando el principio de modularidad.
Codificacin.- Es la escritura en lenguaje de programacin de la
representacin del algoritmo diseado.
Compilacin y ejecucin.- Una vez que se ha
codificado el algoritmo se introduce en memoria y se almacena en disco.
Esta operacin se realiza con un programa editor.

El programa fuente es traducido a lenguaje de mquina
mediante un compilador

Introduccin a MatLab
Para visualizar MatLab podemos pensar en el como si
fuera una calculadora totalmente equipada.
Al igual que una calculadora bsica puede realizar matemticas simples
tales como: sumas, restas, divisiones y multiplicaciones.
Al igualque una calculadora cientfica, puede ralizar operaciones con
nmeros complejos, raices cuadradas, logaritmos y operaciones
trigonomtricas.
Anlogamente a una calculadora programamble puede almacenar y
recuperar datos, puede crear, ejecutar y guardar secuencias de rdenes
para automatizar el clculo de ecuaciones importantes; puede hacer
comparaciones 1gicas y controlar el orden en el que se ejecutan las
rdenes.
permite representar grficamente los datos en una gran variedad de
formas.
ejecuta lgebra matricial, manipula polinomios, integra funciones, manipula
simblicamente ecuaciones, etc.
Caractersticas Bsicas
Al ejecutarse, MATLAB crea una o ms ventanas
La cadena de caracteres >> es el indicativo de peticin de rdenes de
MATLAB
Ejemplo.- Homero compra 4 manzanas por 25 centavos cada una, 6 pltanos por 22 centavos cada uno
y 2 melones por- 99 centavos cada uno. Cuando llega a casa, Marga le pregunta
cuntas piezas de fruta ha comprado y cunto gast?

Si la sentencia es demasiado larga para que quepa en una lnea, se le agrega
una elipsis; una elipsis consistente en tres puntos seguido por Enter e indica
que la sentencia contina en la lnea siguiente.

Operaciones bsicas
Suma, a+b + 5+3
Resta, a-b - 5-3
Multiplicacin, a*b * 5*3
Divisin, a/b / 5/3
Potencia ^ 5^3
Operacin Smbolo Ejemplo
Las expresiones se evalan de izquierda a derecha.
El orden de precedencia, es el siguiente:
1.- Potencia.
2.- Multiplicacin y Divisin.
3.- Suma y Resta.
Almacenando y recuperando datos.
MatLab puede guardar y recuperar
datos almacenados en discos.
Para esto se usan las opciones Load
Workspace Save Workspace.
Acerca de las Variables
Las Variables son sensibles a las maysculas.- fruta, Fruta, FruTa, FRUTA
Las Variables pueden contener hasta 19
caracteres.- Mas all de 19 se ignoran
Las variables deben comenzar con una letra
seguida por cualquier nmero de letras,
digitos guiones de subrayado r1234_ algo
Los caracteres de puntuacin no son vlidos.
La nstruccin clear borra las varibles del espacio de trabajo.
Si se teclea seguido de un nombre de variable; simplemente
borra esa variable.
Si se teclea sin ningun nombre de variable borra todas las
variables del espacio de trabajo.
clear no pide confirmacion de orden!

Las Variables no se pueden recuperar!
Caractersticas Cientficas
Al igual que las calculadoras cientficas, MatLab ofrece muchas funciones cumunes a las matemticas,
a la Ingeniera y a las ciencias.
La mayoria de estas funciones se utilizan de igual forma en que se escriben matemticamente.
2
2
Mientras que una calculadora puede trabajar en grados o radianes
MatLab slo opera en radianes, donde 2t es igual a 360 grados.

La orden help es la forma ms simple de conseguir ayuda en MatLab
Podemos escribir help seguido del tema que deseamos investigar bien una
ayuda ms general en caso de solo teclear help.
En este ejemplo se calcula el ngulo de donde la funcin Seno
tiene un valor de:
Caractersticas de Graficacin de MatLab:
Se utiliza el comando plot(arg) y como argumento
la funcion que se desea graficar.
Array simples.-
Para crear un array todo lo que tiene que hacer es iniciar con
un corchete de apertura, introducir los valores separados por
espacios o comas y luego cerrar con un corchete de cierre.
Construccin de Arreglos y Matemtica sencilla
Los argumentos de esta funcin se describen mediante:
linspace(valor inicial, valor final, num. de elementos)
Las operaciones matemticas sencillas entre escalares y arreglos
siguen la misma interpretacion natural.
La suma, resta multiplicacin y divisin por un escalar
simplemente aplica la operacin a todos los elementos del
arreglo.
Separar elementos por puntos y comas
especifca elementos en filas diferentes.
El operador transpuesta
de MatLab es:
Este operador intercambia
los renglos y las columnas.
La orden plot genera una grfica:
plot(variable_independiente, varible dependiente, puntos)
Archivos script
MatLAb responde a cualquier instruccin en el
orden en que esta se le indique.
Para problemas simples, introducir las instrucciones
en la lnea de ordenes de MatLab es rpido.
Sin embargo cuando aumenta el nmero de ordenes
o se desea cambiar el valor de una ms varianbles
y reevaluar una serie de ordenes, escribir todo en la
linea de ordenes de MAtLAb puede resultar tedioso.
MatLab Proporciona una solucin para
este problema. Permite colocar denes de
Matlab en un archivo de texto
El contenido de este archivo se evala como si se hubiera
escrito en la linea de ordenes de MatLab.
Estos archivos se conocen como scripts o archivos M.
Creacin de archivos M
Para crear un archivo M escoja New del
del Menu File.
Y seleccione M-file.
Guardando el script
Para guardar el script en disco se
elije Save en el men File.
Ejecutando un script
Una vez que este script esta guardado
en disco como un archivo M .
MatLab ejecutar las ordenes contenidas
en este archivo simplemente escribiendo
el nombre de este archivo
Note que ejemplo no es una variable en el
espacio de trabajo de MatLab
MatLab abre el archivo, si lo encuentra, y ejecuta las
instrucciones en el orden en que esten escritas.
Una cadena de caracteres es un texto delimitado
por comillas simples ()
Tomando Decisiones: Controles de Flujo
t=1 hasta n
Los Lenguajes de programacin ofrecen caractersticas que permiten controlar
el flujo de ejecucin de ordenes basadas en estructuras de toma de decisiones.
El control de flujo es muy poderoso ya que permite que clculosa pasados influyan sobre operaciones futuras.
MatLab ofrece tres estructuras para la toma de decisiones o de control de flujo, y son:
bucles for, bucles whiley estructuras if-else- end.
Bucles for .-
n?
x(t)=sin(t*2pi/n)
plot(x)
grid on
agrega titulos
Fin del programa
La sentencia 1:n es una sentencia de creacin de
vectores. Cualquier vector vlido en MatLab es
vlido en el ciclo for
%otra forma de escribir el ciclo for
vector=[1 2 3 4 5 6 7 8 9 10];
for t=vector,
x(t)=sin(t*2*pi/10;
end
Anidamiento de Bucles
vec1=linspace(1,5,5)
vec2=linspace(5,1,5)
A(n,m)=n^2+m^2
n=vec1
m=vec2
disp(n)
Fin del programa
Mientras t<=num
x(t)=sin(t*2pi/n)
Graficar(x)
crea la rejilla
agrega titulos
Fin del programa
Mientras num<20
num=num+1
num=0
F
V
F
V
Ciclos while
Mientras un bucle for evala un grupo de rdenes un nmero fijo de veces, un
bucle while evala un grupo de rdenes un nmero idefinido de veces.
El formato general para el ciclo while es:
while expresin,
sentencias;
end
Ciclos for, while
expresin
sentencias
F
V
Fin del ciclo
while expresin,
:
:
:
sentencias;
:
:
:
end
for var=expresin,
:
:
:
sentencias;
:
:
:
end
Expresin
Usualmente de la forma:
variable1 operador variable2
variable=expresin
En la practica el formato es:
variable=val_ini:incremento:val_fin
Operadores:
Relacion Lgicos
== &
< |
> ~
=<
=>
~=

Estructura if-else-end
Manzanas>5?
Aplica un 20%
de desc.
Aplica un 5%
de desc.
Despliega el
costo total
Muchas veces, secuencias de ordenes
deben evaluarse condicionalmente
bsandose en un test relacional.
En MatLab esta lgica se proporciona
por alguna variacin de una estructura
if-else-end:
no
si
Precio=$0.25
Cuantas
manzanas?
Costo=manzanas*0.25
Las sentencias entre el if y el else
se ejecutan si la expresin es
verdadera. En otro caso se ejecutan
las que estan entre el else y el end
Son f(a)y f(b)
del mismosigno?
No hay raices
Hay una raiz
al menos
Fin
no
si
funcion?
a,b?
Graficar la funcion
evalua la funcion en los
limites a y b.
Verifica los signos
de la funcion en a y en b
f(a)=0?
no
si
f(b)=0?
Raz en a
Raz en b
no
si
Anidamiento de la estructura IF-ELSE
Resumen
for x=array
sentencias
end
Un bucle for en cada
iteracin asigna x a la
columna i-sima de array
y ejecuta las sentencias.
sentencias
while expresin
sentencias
end
Un bucle while ejecuta las
sentencias mientras todos
los elementos de Expresin
son verdaderos.
sentencias
while
end
v
f
if expresin
sentencias
end
Una estructura simple if-end
donde las sentencias
se ejecutan si todos los
elementos en expresin
son verdaderos.
expresin
sentencias
sentecias2
If expresin
sentecias1
else
sentencias2
end
Una estructura
if-else-end tiene
dos opciones. El
grupo de ordenes1
se ejecuta si
expresin es verdadera.
En otro caso se ejecutan
sentencia2.
expresion
sentencias1
fin
si
no
si
no
a,b,f
sa=signo(f(a)
sb=signo(fb)
sa~=sb
f(m)>=0.01

f(m)
sm=signo de f(m)
sm==sa
sa=sm
a=m
Sb=sm
b=m
Despliega la raz
fin
2
b a
m
+
=
No hay raices entre a y b
si
no
si
no
Diagrama a bloques del programa para la bsqueda
de raices usando el mtodo de las bisecciones
Manejo de Matrices
Ejemplo:
Homero compra una manzana, dos pltanos, y tres melones y paga $3.66.
Marga compra cuatro manzanas, cinco platanos y seis melones y paga $8.04
A Bart no le gustan los melones as que compra siete manzanas, ocho platanos y
ningn meln y paga $3.51. Cual es el precio individual de cada fruta?
Al igual que en la captura de vectores se utilizan los corchetes
rectangulares para capturar matrices. El punto y coma (;) se
utiliza para delimitar los renglones de la matriz.
Para resolver este problema,
se escribe cada sentencia
como una ecuacin matemtica.
Haciendo x
1
precio por manzana,
x
2
el precio por pltano y
x
3
el precio por meln
Historicamente, MatLab fue escrito para
simplificar los clculos de lgebra lneal
que aparecen en muchas aplicaciones.
En el corazn de muchas aplicaciones
est el problema de resolver un conjunto
de ecuaciones lineales.
Al igual que la funcin para clcular el rango deuna matriz.
MatLab integra la funcion para calcular el Determinante de una
Matriz: por ejemplo: det(A)
Manipulacin Matricial
Una vez que se forman las matrices, MatLab proporciona mecanismos poderosos para insertar, extraer y manipular subconjuntos
de ellas identificando los subndices de inters. Considere los siguientes ejemplos:
Cambia a nueve el elemento en la tercera fila y en la tercer columna
Crea una matriz uniendo la matriz A con el vector b
Despliega la segunda columna de la matriz A
Despliega el segundo rengln de la matriz A
Aqu los dos puntos como argumento significa tomar todos los elementos de la
columna del renglon segn corresponda.
Cuando se asigna a una parte de una matriz la matriz vacia, lo asignado se suprime,
originando que la matriz colapse a lo que permanece
En aquellos casos donde se desconoce el tamao de una matriz o vector, MatLab
proporciona dos funciones de utilidad size y length.
Las variables del lado izquierdo de la expresin se conocen
como argumentos de salida.
Las variables constantes entre parentesis del lado derecho
de una funcin comando se conocen como argumentos
de entrada.
Consistencia de Ecuaciones y Existencia de Soluciones
El primer paso en la solucin de Ecuaciones lineales es formar
La Matriz aumentada.

Como Primer paso declaramos la matriz de coeficientes A
a continuacin declaramos el vector de terminos independientes
Para generar la matriz aumentada se une la matriz de coeficientes
y el vector de terminos independientes como se muestra en el
ejemplo
Existencia de Soluciones
Existe solucin por que la matriz de coeficientes es no singular
La solucin es nica por que los rangos de A y A son iguales
Ejercicio: Realizar el Script en archivo .m que relize las operaciones anteriores.
Algortmo de la Eliminacin Gaussiana
La eliminacin Gaussiana se realiza a travs de de una serie de operaciones elementales las cuales no alteran
la solucin del sistema de acuaciones.
El mtodo esta basado en el principio de convertir el conjunto de n ecuaciones con n incognitas en una forma
triangular superior, cuya solucin es la misma del sistema original de ecuaciones.
' c Ux =
Donde U es la matriz triangular superior
c Ax=
Una vez lograda la triangularizacin, la solucin se lleva a cabo mediante la sustitucin hacia atrs iniciando
con la n-esima variable y terminando con la variable 1.
En general el procedimiento de la eliminacin de Gauss aplicada a la matriz aumentada de nx(n+1) se resume
en tres formulaciones matemticas; Inicializacin, Eliminacin y Sustitucin hacia atrs.
De esta forma, tenemos tres formulas matemticas para programar:
Formula de Inicializacin:
i ij
ij ij
c a
a a
=
=
) 0 (
) 0 (
Con j=1,2,...,n
j=n+1
i=1,2,...,n
Formula de eliminacin:
) 1 (
) 1 (
) 1 (
) 1 (

=
k
kj
k
kk
k
ik
k
ij
k
ij
a
a
a
a a
j=n+1, n, ... , k
k=1,2,...,n-1
i=k+1,k+2,...,n
0
) 1 (
=
k
kk
a
; ;
Formula de sustitucion hacia atrs:
ii
n
i j
j ij n i
i
nn
n n
n
a
x a a
x
a
a
x

+ =
+
+

=
=
1
1 ,
1 ,
i=n-1,n-2,...,1
(c,d)=inewton(x,y)
n=length(x)
d=zeros(n,n)
d(:,1)=Y
j 2:n
k j:n
) 1 ( ) (
) 1 , 1 ( ) 1 , (
) , (
+

=
j k x k x
j k d j k d
j k d
c=d(n,n)
k (n-1):-1:1
A
A
c=conv(c,poly(x(k))
m=length(c)
c(m)=c(m)+d(k,k)
fin
Algoritmo de interpolacin
Utilizando polinomios de Newton
La forma para llamar la funcin es:
(c)=inewton(x,y);
donde X es el vector de valores para X
e Y son los correspondientes valores de f(x).
[c,L]=lagrange(x,y)
n1=length(x)
n=n1-1
L=zeros(n1,n1)
k 1:n+1
v=1
j 1:n+1
k~=j
) ( ) (
)) ( ( , (
j x k x
j x poly v conv
v

=
L(k,:)=v
c=y*L
fin
Clculo de los coeficientes del polinomio de
interpolacion de Lagrange.
Se deben definir primeramente los vectores X,Y;
como se muestra a continuacin:
La figura Muestra la definicin de los
vectores de entrada y la sintaxis para
ejecutar la funcin.
Los valores de los coeficientes del
polinomio se guardan en la variable c
y estn formados en orden descendente de
las potencias del polinomio.
si
no
0
0
* 2

sp
si
n
a b
delta
n) b, a, df, simpson(f, S
k 2:2:n-2
) , (
*
x f eval sp sp
k delta a x
+
+
k 1:2:n-1
) , (
*
x f eval si si
k delta a x
+
+
( )
)
`

+ +
|
.
|

\
|
+
+
) , ( ) , ( * 16
2
, ( ) , (
* 14
15
b df eval a df eval delta si sp
b f eval a f eval delta
s
fin
Integracin Numrica
Regla de Simpson con correccin final

En Shell Directories selec. General
En Shell Files Selec. Blank Document
Seleccionamos New en el menu File..
Cmo crear un nuevo documento.
Para alternar la escritura entre texto y expresiones matematicas
se puede presionar la combinacin de teclas Ctrl+M o bien el
boton de T (M) en la barra de botones.
Para evaluar una expresion matemtica
utilizamos las opciones del men Maple
Esta opcin nos permite insertar
matrices y vectores
Ejercicio.- Crear un vector columna y
un vector rengln, de por lo menos
4 elementos.
Como introducir los datos

Se crea un vector de tamao n+1, con n igual al
nmero de Ecs. de restriccin.
En primer elemento del vector ser la funcin
objetivo, la cual se escribir sin incluir la igualdad.
Los elementos subsiguientes sern las ecuaciones de
restriccin escritas completamente.
Para encontrar la solucion
Se ubica el cursor en la posicin inmediata
a la derecha del vector de datos.
En el men Maple seleccionamos el submen
Simplex.
Dentro de este men se elige la opcin que
resuelva cada caso particular.
Solucin de problemas de Programacin Lineal. (caso de dos variables).
Para graficar las ecuaciones de restricciones
ubicamos en la posicin inmediata a la derecha
de una de las ecuaciones que deseamos
graficar;
En el Menu Maple seleccionamos Plot 2D,
dentro de este submen elegimos implicit.
Para agregar las dems ecs.
Hacemos un click en el recuadro
inferior derecho dela grfica.
Se despliega el men de propiedades, donde damos un click
en el boton de agregar elemento.
Dentro de esta ventana de dialogo podemos realizar varias operaciones de
configuracin de la grfica, por ejemplo, definir el dominio de las variables
que se estn graficando.
Evaluacin
Hacer un script que resuelva la ecuacin de segundo orden de la forma
0
2
= + + c bx ax
Cuya solucin es:
a
ac b b
x
2
4
2

=
El programa deber pedir los datos correspondientes a las variables a,b y c
y calcular el valor de x