Curso Introductorio de MatLab
Nelio Pastor Gómez
Sistemas de Cómputo
• Hardware• Elementos físicos 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 diseñados
para operar una computadora.– Software de Sistema.– Software de Aplicaciones.
Programa: Conjunto de instrucciones que hacen funcional una computadora.
Lenguajes de Programación
• Lenguaje de máquina.– Instrucciones directas para la computadora
– se expresan en la unidad mas pequeña (bit 1 ó 0).
• Lenguaje ensamblador.– Conocido también como lenguaje de bajo nivel.
– Simplifican el proceso de programación en lenguaje máquina
– Las instrucciones se escriben en códigos alfabéticos conocidos como nemotécnicos.
• Lenguaje de alto nivel.– Las instrucciones se escriben con palabras similares a los lenguajes humanos
(generalmente en ingles).
Resolución de Problemas por Computadora
• Análisis del problema.-Se da una clara definición del problema, donde se contemple exactamente lo que debe hacer el programa y el resultado o solución deseada.
• Diseño del Algoritmo.- Aquí se determina como hara el programa la tarea solicitada.– El diseño se realiza aplicando el principio de modularidad.
• Codificación.- Es la escritura en lenguaje de programación de la representación del algoritmo diseñado.
• Compilación y ejecución.- Una vez que se ha codificado el algoritmo se introduce en memoria y se almacena en disco. Esta operación se realiza con un programa editor.
El programa fuente es traducido a lenguaje de máquina mediante un compilador
Introducción a MatLab
• Para visualizar MatLab podemos pensar en el como si fuera una calculadora totalmente equipada.
• Al igual que una calculadora básica puede realizar matemáticas simples tales como: sumas, restas, divisiones y multiplicaciones.
• Al igualque una calculadora científica, puede ralizar operaciones con números complejos, raices cuadradas, logaritmos y operaciones trigonométricas.
• Análogamente a una calculadora programamble puede almacenar y recuperar datos, puede crear, ejecutar y guardar secuencias de órdenes para automatizar el cálculo de ecuaciones importantes; puede hacer comparaciones 1ógicas y controlar el orden en el que se ejecutan las órdenes.
• permite representar gráficamente los datos en una gran variedad de formas.
• ejecuta álgebra matricial, manipula polinomios, integra funciones, manipula simbólicamente ecuaciones, etc.
Características Básicas
• Al ejecutarse, MATLAB crea una o más ventanas
La cadena de caracteres >> es el indicativo de petición de órdenes de MATLAB
Ejemplo.- Homero compra 4 manzanas por 25 centavos cada una, 6 plátanos por 22 centavos cada uno
y 2 melones por- 99 centavos cada uno. Cuando llega a casa, Marga le pregunta
¿ cuántas piezas de fruta ha comprado y cuánto gastó?
Si la sentencia es demasiado larga para que quepa en una línea, se le agrega una elipsis; una elipsis consistente en tres puntos seguido por Enter e indica que la sentencia continúa en la línea siguiente.
Operaciones básicas
Suma, a+b + 5+3Resta, a-b - 5-3Multiplicación, a*b * 5*3División, a/b / 5/3Potencia ^ 5^3
Operación Símbolo Ejemplo
Las expresiones se evalúan de izquierda a derecha.El orden de precedencia, es el siguiente:1.- Potencia.2.- Multiplicación y División.3.- Suma y Resta.
Almacenando y recuperando datos.
MatLab puede guardar y recuperardatos almacenados en discos.Para esto se usan las opciones LoadWorkspace ó Save Workspace.
Acerca de las Variables
Las Variables son sensibles a las mayúsculas.- fruta, Fruta, FruTa, FRUTALas Variables pueden contener hasta 19 caracteres.- Mas allá de 19 se ignoranLas variables deben comenzar con una letra seguida por cualquier número de letras, digitos ó guiones de subrayado r1234_ algoLos caracteres de puntuación no son válidos.
La ínstrucción 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!
Características CientíficasAl igual que las calculadoras científicas, MatLab ofrece muchas funciones cumunes a las matemáticas,a la Ingeniería y a las ciencias.•La mayoria de estas funciones se utilizan de igual forma en que se escriben matemáticamente.
22
Mientras que una calculadora puede trabajar en grados o radianesMatLab sólo opera en radianes, donde 2 es igual a 360 grados.
La orden help es la forma más simple de conseguir ayuda en MatLab Podemos escribir help seguido del tema que deseamos investigar ó bien una ayuda más general en caso de solo teclear help.
En este ejemplo se calcula el ángulo de donde la función Seno
tiene un valor de:
Características de Graficación 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 conun corchete de apertura, introducir los valores separados porespacios o comas y luego cerrar con un corchete de cierre.
Construcción de Arreglos y Matemática sencilla
Los argumentos de esta función se describen mediante:linspace(valor inicial, valor final, num. de elementos)
Las operaciones matemáticas sencillas entre escalares y arreglos siguen la misma interpretacion natural.
La suma, resta multiplicación y división por un escalar simplemente aplica la operación a todos los elementos delarreglo.
Separar elementos por puntos y comasespecifíca elementos en filas diferentes.
El operador transpuestade MatLab es: ‘Este operador intercambialos renglos y las columnas.
La orden plot genera una gráfica:plot(variable_independiente, varible dependiente, ‘puntos’)
Archivos script
MatLAb responde a cualquier instrucción en el
orden en que esta se le indique.
Para problemas simples, introducir las instrucciones
en la línea de ordenes de MatLab es rápido.
Sin embargo cuando aumenta el número de ordeneso se desea cambiar el valor de una ó más varianblesy reevaluar una serie de ordenes, escribir todo en la linea de ordenes de MAtLAb puede resultar tedioso.
MatLab Proporciona una solución para este problema. Permite colocar ódenes de
Matlab en un archivo de textoEl contenido de este archivo se evalúa como si se hubieraescrito en la linea de ordenes de MatLab.Estos archivos se conocen como scripts o archivos M.
Creación de archivos M
Para crear un archivo M escoja New deldel Menu File.Y seleccione M-file.
Guardando el script Para guardar el script en disco seelije Save en el menú File.
Ejecutando un script
Una vez que este script esta guardadoen disco como un archivo M .MatLab ejecutará las ordenes contenidasen este archivo simplemente escribiendoel 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 lasinstrucciones en el orden en que esten escritas.
Una cadena de caracteres es un texto delimitadopor comillas simples (‘)
Tomando Decisiones: Controles de Flujo
t=1 hasta n
Los Lenguajes de programación ofrecen características que permiten controlar el flujo de ejecución de ordenes basadas en estructuras de toma de decisiones.
El control de flujo es muy poderoso ya que permite que cálculosa 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 .-
n?
x(t)=sin(t*2pi/n)
plot(x)grid on
agrega titulos
Fin del programa
La sentencia 1:n es una sentencia de creación de
vectores. Cualquier vector válido en MatLab es
válido en el ciclo for
%otra forma de escribir el ciclo forvector=[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 rejillaagrega titulos
Fin del programa
Mientras num<20
num=num+1
num=0
F
V
F
V
Ciclos while
Mientras un bucle for evalúa un grupo de órdenes un número fijo de veces, unbucle while evalúa un grupo de órdenes un número idefinido de veces.El formato general para el ciclo while es:while expresión, sentencias;end
Ciclos for, while
expresión
sentencias
F
V
Fin del ciclo
while expresión,
:::
sentencias;:::
end
for var=expresión,
:::
sentencias;:::
end
ExpresiónUsualmente de la forma:
variable1 operador variable2
variable=expresiónEn la practica el formato es:
variable=val_ini:incremento:val_fin
Operadores:Relacion Lógicos == & < | > ~ =< => ~=
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 básandose en un test relacional. En MatLab esta lógica se proporciona por alguna variación de una estructura if-else-end:
no
si
Precio=$0.25
Cuantasmanzanas?
Costo=manzanas*0.25
Las sentencias entre el if y el elsese ejecutan si la expresión es verdadera. En otro caso se ejecutanlas que estan entre el else y el end
Son f(a)y f(b)del mismosigno?
No hay raicesHay una raiz
al menos
Fin
no
si
funcion?a,b?
Graficar la funcionevalua la funcion en los
limites a y b.Verifica los signos
de la funcion en a y en b
f(a)=0? no
sif(b)=0?
Raíz en a
Raíz en b
no
si
Anidamiento de la estructura IF-ELSE
Resumenfor x=array sentenciasend
Un bucle for en cada iteración asigna x a lacolumna i-ésima de array y ejecuta las sentencias. sentencias
while expresión sentenciasend
Un bucle while ejecuta las sentencias mientras todoslos elementos de Expresión son verdaderos.
sentencias
while
end
v
f
if expresión sentenciasend
Una estructura simple if-enddonde las sentenciasse ejecutan si todos los elementos en expresiónson verdaderos.
expresión
sentencias
sentecias2
If expresión sentecias1else sentencias2end
Una estructura if-else-end tienedos opciones. Elgrupo de ordenes1se ejecuta si expresión 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=sma=m
Sb=smb=m
Despliega la raíz
fin
2
bam
No hay raices entre a y b
si
no
si
no
Diagrama a bloques del programa para la búsqueda de raices usando el método de las bisecciones
Manejo de Matrices
Ejemplo:
Homero compra una manzana, dos plátanos, y tres melones y paga $3.66.Marga compra cuatro manzanas, cinco platanos y seis melones y paga $8.04A Bart no le gustan los melones así que compra siete manzanas, ocho platanos yningún melón 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 sentenciacomo una ecuación matemática. Haciendo x1 precio por manzana, x2 el precio por plátano y x3 el precio por melón
Historicamente, MatLab fue escrito para
simplificar los cálculos de álgebra líneal
que aparecen en muchas aplicaciones.
En el corazón de muchas aplicaciones
está el problema de resolver un conjunto
de ecuaciones lineales.
Al igual que la función para cálcular el rango deuna matriz.MatLab integra la funcion para calcular el Determinante de unaMatriz: por ejemplo: det(A)
Manipulación Matricial
Una vez que se forman las matrices, MatLab proporciona mecanismos poderosos para insertar, extraer y manipular subconjuntosde ellas identificando los subíndices de interés. 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 renglón de la matriz A
Aquí los dos puntos como argumento significa tomar todos los elementos de lacolumna ó del renglon según 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 tamaño de una matriz o vector, MatLab proporciona dos funciones de utilidad size y length.
Las variables del lado izquierdo de la expresión se conocencomo argumentos de salida.Las variables ó constantes entre parentesis del lado derechode una función ó comando se conocen como argumentos de entrada.
Consistencia de Ecuaciones y Existencia de Soluciones
El primer paso en la solución de Ecuaciones lineales es formar La Matriz aumentada.
Como Primer paso declaramos la matriz de coeficientes Aa continuación 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 solución por que la matriz de coeficientes es no singular
La solución es única por que los rangos de A y A’ son iguales
Ejercicio: Realizar el Script en archivo .m que relize las operaciones anteriores.
Algorítmo de la Eliminación Gaussiana
La eliminación Gaussiana se realiza a través de de una serie de operaciones elementales las cuales no alteranla solución del sistema de acuaciones.
El método esta basado en el principio de convertir el conjunto de n ecuaciones con n incognitas en una formatriangular superior, cuya solución es la misma del sistema original de ecuaciones.
'cUx Donde U es la matriz triangular superior
cAx
Una vez lograda la triangularización, la solución se lleva a cabo mediante la sustitución hacia atrás iniciandocon la n-esima variable y terminando con la variable 1.
En general el procedimiento de la eliminación de Gauss aplicada a la matriz aumentada de nx(n+1) se resumeen tres formulaciones matemáticas; Inicialización, Eliminación y Sustitución hacia atrás.
De esta forma, tenemos tres formulas matemáticas para programar:
Formula de Inicialización:
iij
ijij
ca
aa
)0(
)0( Con j=1,2,...,n
j=n+1
i=1,2,...,n
Formula de eliminación:
)1()1(
)1()1(
k
kjkkk
kikk
ijkij a
aa
aa
j=n+1, n, ... , k
k=1,2,...,n-1
i=k+1,k+2,...,n
0)1( kkka; ;
Formula de sustitucion hacia atrás:
ii
n
ijjijni
i
nn
nnn
a
xaa
x
a
ax
11,
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,(
),(
jkxkx
jkdjkdjkd
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 interpolación Utilizando polinomios de Newton
La forma para llamar la función es:(c)=inewton(x,y);donde X es el vector de valores para Xe 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
)()())((,(
jxkxjxpolyvconv
v
L(k,:)=v
c=y*L
fin
Cálculo de los coeficientes del polinomio deinterpolacion de Lagrange.
Se deben definir primeramente los vectores X,Y;como se muestra a continuación:
La figura Muestra la definición de los vectores de entrada y la sintaxis para ejecutar la función.
Los valores de los coeficientes del polinomio se guardan en la variable ‘c’ y están formados en orden descendente delas potencias del polinomio.
si
no
0
0*2
sp
sinab
delta
n)b,a,df,simpson(f,S
k 2:2:n-2
),(
*
xfevalspsp
kdeltaax
k 1:2:n-1
),(
*
xfevalsisi
kdeltaax
),(),(*16
2,(),(
*1415
bdfevaladfevaldeltasispbfevalafevaldelta
s fin
Integración Numérica
Regla de Simpson con corrección final
•En Shell Directories selec. General•En Shell Files Selec. Blank Document
•Seleccionamos New en el menu File..
Cómo crear un nuevo documento.
Para alternar la escritura entre texto y expresiones matematicasse puede presionar la combinación de teclas Ctrl+M o bien elboton de T (M) en la barra de botones.
Para evaluar una expresion matemáticautilizamos las opciones del menú Maple
Esta opción nos permite insertar matrices y vectores
Ejercicio.- Crear un vector columna yun vector renglón, de por lo menos 4 elementos.
Como introducir los datos
Se crea un vector de tamaño n+1, con n igual al número de Ecs. de restricción.En primer elemento del vector será la función objetivo, la cual se escribirá sin incluir la igualdad.Los elementos subsiguientes serán las ecuaciones derestricción escritas completamente.
Para encontrar la solucion Se ubica el cursor en la posición inmediata a la derecha del vector de datos.En el menú Maple seleccionamos el submenúSimplex.Dentro de este menú se elige la opción que resuelva cada caso particular.
Solución de problemas de Programación Lineal. (caso de dos variables).
Para graficar las ecuaciones de restriccionesubicamos en la posición inmediata a la derechade una de las ecuaciones que deseamos graficar; En el Menu Maple seleccionamos Plot 2D,dentro de este submenú elegimos implicit.
Para agregar las demás ecs.Hacemos un click en el recuadroinferior derecho dela gráfica.
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 deconfiguración de la gráfica, por ejemplo, definir el dominio de las variablesque se están graficando.
Evaluación
• Hacer un script que resuelva la ecuación de segundo orden de la forma
02 cbxaxCuya solución es:
aacbb
x2
42
El programa deberá pedir los datos correspondientes a las variables a,b y cy calcular el valor de x