Guia Matlab

46
Curso Introductorio de MatLab Nelio Pastor Gómez

description

recorrido para el uso adecuado del MatLab

Transcript of Guia Matlab

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