500 likes | 798 Views
Curso Introductorio de MatLab. Nelio Pastor Gómez. 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
E N D
Curso Introductorio de MatLab Nelio Pastor Gómez
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. Sistemas de Cómputo 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 Operación Símbolo Ejemplo Suma, a+b + 5+3 Resta, a-b - 5-3 Multiplicación, a*b * 5*3 División, a/b / 5/3 Potencia ^ 5^3 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 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 mayúsculas.- 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 número de letras, digitos ó guiones de subrayado r1234_ algo Los caracteres de puntuación no son válidos.
¡clear no pide confirmacion de orden! ¡Las Variables no se pueden recuperar! 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.
Características Científicas • Al 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. En este ejemplo se calcula el ángulo de donde la función Seno tiene un valor de: Mientras que una calculadora puede trabajar en grados o radianes MatLab sólo opera en radianes, donde 2p 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.
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 con un corchete de apertura, introducir los valores separados por espacios 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 del arreglo.
Separar elementos por puntos y comas especifíca elementos en filas diferentes. El operador transpuesta de MatLab es: ‘ Este operador intercambia los 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 ordenes o se desea cambiar el valor de una ó más varianbles y 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 texto El contenido de este archivo se evalúa como si se hubiera escrito 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 del del Menu File. Y seleccione M-file.
Para guardar el script en disco se elije Save en el menú File. Guardando el script
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 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 .- 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 n? t=1 hasta n x(t)=sin(t*2pi/n) plot(x) grid on agrega titulos %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 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 evalúa un grupo de órdenes un número fijo de veces, un bucle 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 num=0 F Mientras num<20 V num=num+1 F Mientras t<=num V x(t)=sin(t*2pi/n) Graficar(x) crea la rejilla agrega titulos Fin del programa
Ciclos for, while variable=expresión En la practica el formato es: variable=val_ini:incremento:val_fin Expresión Usualmente de la forma: variable1 operador variable2 expresión F forvar=expresión, whileexpresión, : : : sentencias; : : : Operadores: Relacion Lógicos == & < | > ~ =< => ~= : : : sentencias; : : : V sentencias end Fin del ciclo end
Estructura if-else-end 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: Precio=$0.25 Cuantas manzanas? Costo=manzanas*0.25 Manzanas>5? no si Aplica un 5% de desc. Aplica un 20% de desc. Despliega el costo total Las sentencias entre el if y el else se ejecutan si la expresión es verdadera. En otro caso se ejecutan las que estan entre el else y el end
funcion? a,b? Anidamiento de la estructura IF-ELSE 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? no si si f(b)=0? no Raíz en a si Raíz en b No hay raices Hay una raiz al menos Fin
Resumen Un bucle for en cada iteración asigna x a la columna i-ésima de array y ejecuta las sentencias. for x=array sentencias end sentencias Un bucle while ejecuta las sentencias mientras todos los elementos de Expresión son verdaderos. while expresión sentencias end while f v sentencias end if expresión sentencias end Una estructura simple if-end donde las sentencias se ejecutan si todos los elementos en expresión son verdaderos. no expresión si sentencias expresion no Una estructura if-else-end tiene dos opciones. El grupo de ordenes1 se ejecuta si expresión es verdadera. En otro caso se ejecutan sentencia2. If expresión sentecias1 else sentencias2 end si sentencias1 sentecias2 fin
a,b,f Diagrama a bloques del programa para la búsqueda de raices usando el método de las bisecciones sa=signo(f(a) sb=signo(fb) no sa~=sb si f(m)>=0.01 f(m) sm=signo de f(m) Despliega la raíz No hay raices entre a y b sm==sa no fin si sa=sm a=m Sb=sm b=m
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. 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.04 A Bart no le gustan los melones así que compra siete manzanas, ocho platanos y ningú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. Al igual que la función para cálcular el rango deuna matriz. MatLab integra la funcion para calcular el Determinante de una Matriz: por ejemplo: det(A) Para resolver este problema, se escribe cada sentencia como una ecuación matemática. Haciendo x1 precio por manzana, x2 el precio por plátano y x3 el precio por melón
Manipulación Matricial Una vez que se forman las matrices, MatLab proporciona mecanismos poderosos para insertar, extraer y manipular subconjuntos de 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 la columna ó 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 conocen como argumentos de salida. Las variables ó constantes entre parentesis del lado derecho de 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 A a 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 alteran la 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 forma triangular superior, cuya solución es la misma del sistema original de ecuaciones. Donde U es la matriz triangular superior Una vez lograda la triangularización, la solución se lleva a cabo mediante la sustitución hacia atrás iniciando con 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 resume en 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: Con j=1,2,...,n i=1,2,...,n j=n+1
Formula de eliminación: j=n+1, n, ... , k ; ; k=1,2,...,n-1 i=k+1,k+2,...,n Formula de sustitucion hacia atrás: i=n-1,n-2,...,1
(c,d)=inewton(x,y) A n=length(x) d=zeros(n,n) d(:,1)=Y’ k (n-1):-1:1 c=conv(c,poly(x(k)) m=length(c) c(m)=c(m)+d(k,k) j 2:n k j:n fin Algoritmo de interpolación Utilizando polinomios de Newton c=d(n,n) La forma para llamar la función es: (c)=inewton(x,y); donde X es el vector de valores para X e Y son los correspondientes valores de f(x). A
[c,L]=lagrange(x,y) Cálculo de los coeficientes del polinomio de interpolacion de Lagrange. n1=length(x) n=n1-1 L=zeros(n1,n1) Se deben definir primeramente los vectores X,Y; como se muestra a continuación: k 1:n+1 v=1 j 1:n+1 k~=j no si La figura Muestra la definición de los vectores de entrada y la sintaxis para ejecutar la función. L(k,:)=v Los valores de los coeficientes del polinomio se guardan en la variable ‘c’ y están formados en orden descendente de las potencias del polinomio. c=y*L fin
Integración Numérica Regla de Simpson con corrección final k 2:2:n-2 k 1:2:n-1 fin
Cómo 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 combinación de teclas Ctrl+M o bien el boton de T (M) en la barra de botones. Para evaluar una expresion matemática utilizamos las opciones del menú Maple
Esta opción nos permite insertar matrices y vectores Ejercicio.- Crear un vector columna y un vector renglón, de por lo menos 4 elementos.
Solución de problemas de Programación Lineal. (caso de dos variables). 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 de restricció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.
Para graficar las ecuaciones de restricciones ubicamos en la posición 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 demás ecs. Hacemos un click en el recuadro inferior 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 de configuración de la gráfica, por ejemplo, definir el dominio de las variables que se están graficando.
Evaluación • Hacer un script que resuelva la ecuación de segundo orden de la forma Cuya solución es: El programa deberá pedir los datos correspondientes a las variables a,b y c y calcular el valor de x