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
Operacin

Suma,
a+b
Resta, a-b
Multiplicacin, a*b
Divisin, a/b
Potencia

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.

5+3
5-3
5*3
5/3
5^3

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.Las Variables pueden contener hasta 19
caracteres.Las variables deben comenzar con una letra
seguida por cualquier nmero de letras,
digitos guiones de subrayado
Los caracteres de puntuacin no son vlidos.

fruta, Fruta, FruTa, FRUTA


Mas all de 19 se ignoran
r1234_ algo

clear no pide confirmacion de orden!


Las Variables no se pueden recuperar!

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.

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.

En este ejemplo se calcula el ngulo de donde la funcin Seno


tiene un valor de:

2
2

Mientras que una calculadora puede trabajar en grados o radianes


MatLab slo opera en radianes, donde 2 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.

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


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 while y estructuras if-else- end.

Bucles for .-

La sentencia 1:n es una sentencia de creacin de


vectores. Cualquier vector vlido en MatLab es
vlido en el ciclo for

n?

t=1 hasta n

x(t)=sin(t*2pi/n)

%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

plot(x)
grid on
agrega titulos

Fin del programa

Anidamiento de Bucles

vec1=linspace(1,5,5)
vec2=linspace(5,1,5)

n=vec1

m=vec2

A(n,m)=n^2+m^2

disp(n)

Fin del programa

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

num=0
F
Mientras num<20
V
num=num+1

Mientras t<=num
V
x(t)=sin(t*2pi/n)

Graficar(x)
crea la rejilla
agrega titulos

Fin del programa

Ciclos for, while


Expresin

variable=expresin

Usualmente de la forma:
variable1 operador variable2

En la practica el formato es:


variable=val_ini:incremento:val_fin

for var=expresin,
:
:
:
sentencias;
:
:
:
end

expresin

sentencias

Fin del ciclo

while expresin,
Operadores::
Relacion
Lgicos
:
==
: &
<
|
sentencias;
>
: ~
=<
:
=>
:
~=
end

Estructura if-else-end
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:

Precio=$0.25

Cuantas
manzanas?

Costo=manzanas*0.25

Manzanas>5?

si
Aplica un 20%
de desc.

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

Despliega el
costo total

no

Aplica un 5%
de desc.

Anidamiento de la estructura IF-ELSE

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

Son f(a)y f(b)


del mismosigno?

no

f(a)=0?
si

no

si

no
f(b)=0?

Raz en a

si
Raz en b

No hay raices

Fin

Hay una raiz


al menos

Resumen

while expresin
sentencias
end

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

Un bucle while ejecuta las


sentencias mientras todos
los elementos de Expresin
son verdaderos.

f
v
sentencias

end
if expresin
sentencias
end

If expresin
sentecias1
else
sentencias2
end

Una estructura simple if-end


donde las sentencias
se ejecutan si todos los
elementos en expresin
son verdaderos.

Una estructura
if-else-end tiene
dos opciones. El
grupo de ordenes1
se ejecuta si
expresin es verdadera.
En otro caso se ejecutan
sentencia2.

no

expresin
si

sentencias
expresion

no

si

sentencias1
fin

sentecias2

Diagrama a bloques del programa para la bsqueda


de raices usando el mtodo de las bisecciones

a,b,f
sa=signo(f(a)
sb=signo(fb)

sa~=sb

no

si
f(m)>=0.01

ab
2
f(m)
sm=signo de f(m)
m

sm==sa

Despliega la raz

no
fin

si
sa=sm
a=m

No hay raices entre a y b

Sb=sm
b=m

Historicamente, MatLab fue escrito para

Manejo de Matrices

simplificar los clculos de lgebra lneal


que aparecen en muchas aplicaciones.

Ejemplo:

En el corazn de muchas aplicaciones

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?

est el problema de resolver un conjunto


de ecuaciones lineales.

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 x1 precio por manzana,
x2 el precio por pltano y
x3 el precio por meln

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.

Ax c

Ux c'

Donde U es la matriz triangular superior


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:

aij( 0 ) aij
(0)
ij

ci

Con j=1,2,...,n
j=n+1

i=1,2,...,n

Formula de eliminacin:

aijk aij( k 1)

( k 1)
ik
( k 1)
kk

a
a

j=n+1, n, ... , k

akj( k 1)

akk( k 1) 0

k=1,2,...,n-1
i=k+1,k+2,...,n

Formula de sustitucion hacia atrs:

xn

an ,n 1
ann
ai ,n 1

xi

a x

j i 1

aii

ij

i=n-1,n-2,...,1

(c,d)=inewton(x,y)

n=length(x)
d=zeros(n,n)
d(:,1)=Y

2:n

j:n

d ( k , j 1) d ( k 1, j 1)
d (k , j )
x(k ) x(k j 1)

(n-1):-1:1

c=conv(c,poly(x(k))
m=length(c)
c(m)=c(m)+d(k,k)

fin

Algoritmo de interpolacin
Utilizando polinomios de Newton

c=d(n,n)

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)
Clculo de los coeficientes del polinomio de
interpolacion de Lagrange.

n1=length(x)
n=n1-1
L=zeros(n1,n1)
k

Se deben definir primeramente los vectores X,Y;


como se muestra a continuacin:

1:n+1
v=1

1:n+1

no

k~=j
si
v

conv(v, poly ( x( j ))
x (k ) x( j )

L(k,:)=v

c=y*L

fin

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.

S simpson(f, df, a, b, n)

delta

ba
2*n

si 0
sp 0

Integracin Numrica

Regla de Simpson con correccin final

k 2:2:n-2

x a delta * k
sp sp eval ( f , x )

k 1:2:n-1

x a delta * k
si si eval ( f , x)

delta
eval ( f , a ) eval ( f , b

sp 16 * si delta eval (df , a ) eval (df , b)


14 *
15
2

fin

Cmo crear un nuevo documento.


Seleccionamos New en el menu File..

En Shell Directories selec. General


En Shell Files Selec. Blank Document

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.

Solucin de problemas de Programacin Lineal. (caso de dos variables).

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.

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

ax bx c 0
2

Cuya solucin es:

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

También podría gustarte