MATLAB : UNA BREVE INTRODUCCIÓN

Documentos relacionados
Fundamentos de Informática Parte II Análisis y Visualización de Datos mediante Matlab

Oriol R oca. M a t L a b FUNCIONES EN MATLAB

Formatos y Operadores

Guía de uso de MATLAB

FUNCIONES POLINÓMICAS

Herramientas computacionales para la matemática MATLAB: Arreglos

TUTORIAL BASICO DE MATLAB

LENGUAJE DE PROGRAMACIÓN SCILAB

Características básicas de Matlab

>> % suma de dos números reales, el resultado se asigna a ans

Introducción a MATLAB

MATLAB Prof. Lino Coria Mendoza

Práctica 0: Introducción a Matlab. Series Temporales. Diplomatura en Estadística. 2009/2010

Señales y Sistemas (66.74) Práctica 0 : Introducción a MATLAB/OCTAVE

Curso Básico de MATLAB para Microsoft Windows (Modulo I)

2º ITT SISTEMAS ELECTRÓNICOS 2º ITT SISTEMAS DE TELECOMUNICACIÓN 3º INGENIERÍA DE TELECOMUNICACIÓN AUTÓMATAS Y SISTEMAS DE CONTROL

MANUAL BÁSICO DE OCTAVE Y QTOCTAVE

UNIVERSIDAD AUTÓNOMA DE NUEVO LEÓN

PRÁCTICA NÚMEROS REALES Y COMPLEJOS CURSO Práctica 1

Práctica 1: Introducción a matlab

Nociones Básicas de Octave

Introducción a MATLAB

Álgebra Lineal Tutorial básico de MATLAB

Práctica 1: Introducción al entorno de trabajo de MATLAB *

Introducción a MATLAB

Introducción. Maxima se puede obtener de la página web:

Una introducción a MATLAB

Introducción a MATLAB

Ingeniería Eléctrica y Electrónica Introducción a Matlab

Procesado de datos con MATLAB

Introducción a MATLAB

En esta práctica aprenderemos a entrar en MATLAB y utilizarlo como una potente calculadora. También veremos cómo representar pares de puntos.

Cursada Segundo Cuatrimestre 2012 Guía de Trabajos Prácticos Nro. 1

UNIVERSIDAD AUTÓNOMA DE NUEVO LEÓN FACULTAD DE INGENIERÍA MECÁNICA Y ELÉCTRICA DEPARTAMENTO DE CONTROL

Tema 7: Programación con Matlab

Curso de GNU Octave y L A TEXpara el apoyo a la investigación en ingeniería

En esta sección se explica cómo usar Matlab a modo de calculadora. Empecemos con algo sencillo: las operaciones matemáticas elementales.

Introducción a MATLAB y LabVIEW

Órdenes y funciones básicas (segunda parte) Práctica 2.

Facultad de Ciencias Experimentales Universidad de Almería PRÁCTICA 1

Introducción a Matlab

GUÍA PARA EL USO DE MATLAB PARTE 1

DOCENTE: JESÚS E. BARRIOS P.

PRÁCTICA No. 2 FORMA POLAR DE UN NUMERO COMPLEJO. Otra forma de expresar un número complejo es la forma polar o forma módulo-argumento,

Tema 4: Empezando a trabajar con ficheros.m

Clase 2: Operaciones con matrices en Matlab

facilidades para cálculo matemático y Dispone de toolboxes especializados: Control Systems, Neural Netword, Optimization, etc.

Métodos Numéricos utilizando Scilab

Prácticas Matlab. Práctica 1. Objetivos

GUIA BÁSICA DEL PROCEDIMIENTO MATRIX END MATRIX

INTRODUCCIÓN a DERIVE 6. PANTALLA DE EXPRESIONES ALGEBRAICAS

DEFINICIONES TIPOS DE MATRICES DETERMINANTES Y PROPIEDADES OPERACIONES MATRICIALES INVERSA DE UNA MATRIZ SISTEMAS DE ECUACIONES

Una ecuación puede tener ninguna, una o varias soluciones. Por ejemplo: 5x 9 = 1 es una ecuación con una incógnita con una solución, x = 2

Manual de Introducción a MATLAB

1. Sistemas de ecuaciones lineales

N = {1, 2, 3, 4, 5,...}

Práctica 1: Introducción a MATLAB.

CLASE 1 INTRODUCCIÓN A MATLAB

Introducción a MATLAB/ OCTAVE. Fundamentos Físicos de la Informática, 2006

TEMA 4: Sistemas de ecuaciones lineales II

IES Fco Ayala de Granada Junio de 2012 (Común Modelo 4) Soluciones Germán-Jesús Rubio Luna

ESCALARES, VECTORES Y MATRICES

Guía de uso de DERIVE. 2) Botones de acceso rápido Al colocar el cursor sobre el botón aparece un recuadro con su función

Lo rojo sería la diagonal principal.

DERIVE también representa superficies en el espacio.

Herramientas computacionales para la matemática MATLAB:Introducción

1. MANUAL - INTRODUCCIÓN AL USO DE DERIVE.

Tema 3 Álgebra Matemáticas I 1º Bachillerato. 1

Matemáticas Empresariales I. Funciones y concepto de ĺımite

NÚMEROS COMPLEJOS: C

Introducción a la Programación en MATLAB

I. Operaciones con matrices usando Mathematica

CREACIÓN DE MATRICES DESDE LA APLICACIÓN PRINCIPAL

Métodos Numéricos. Métodos Numéricos Cap 1: Introducción a Métodos Numéricos, Matlab 1/10. Métodos Numéricos. Ultima actualización 11/03/2015

Introducción a Matlab.

Teoría: MATLAB. Control de los formatos de salida:

Programación en MATLAB

Manual de Iniciación de Scilab. Manual de Scilab. Pág -1-

Ficheros conceptos. Manejo de ficheros en C. Apertura del fichero Función fopen: nombre del fichero. Apertura del fichero Función fopen

MATEMÁTICA D INTRODUCCIÓN A SCILAB. Por: Dr. Javier Francesconi

Definición: Dos matrices A y B son iguales si tienen el mismo orden y coinciden los elementos que ocupan el mismo lugar.

1. INTRODUCCIÓN A MATLAB 7.0

Todo programa en 'C' consta de una o más funciones, una de las cuales se llama main.

UNIVERSIDADES DE ANDALUCÍA PRUEBA DE ACCESO A LA UNIVERSIDAD

Resultado matriz a matriz b

Mapa Curricular: Funciones y Modelos

Práctica I: Breve Introducción a Matlab

Práctica 3: Funciones

Práctica 1ª: Introducción a Matlab. 1er curso de Ingeniería Industrial: Ingeniería de Control

Herramientas computacionales para la matemática MATLAB: Scripts

Herramientas computacionales para la matemática MATLAB: Funciones definidas por el usuario (parte II)

Tema 2 Cálculos básicos con wxmaxima

Práctica 1. Introducción al matlab

CURSO CERO DE MATEMATICAS. Apuntes elaborados por Domingo Pestana Galván. y José Manuel Rodríguez García

DISEÑO DE DIAGRAMAS DE FLUJO MEDIANTE LA HERRAMIENTA SOFTWARE DFD

Capítulo 1. Introducción al C Mi primer programa

Tutorial de MATLAB Curso Intensivo sobre Asimilación de Datos

Número, algoritmo y errores

MÓDULO SE: SISTEMAS DE ECUACIONES

funciones printf scanf

Transcripción:

MATLAB : UNA BREVE INTRODUCCIÓN CÁLCULO IV Curso 2005-06 1 Cómo nombrar variables Los nombres de variables son sensibles a las mayúsculas y a las minúsculas. Ejemplo 1.1 Items, ITEMS son dos variables distintas. Los nombres de variables deben comenzar por una letra seguida por cualquier número de letras, dígitos o barras de subrayado. Ejemplo 1.2 A 16 x597 2bA S3Lib1 Los caracteres de puntuación no están permitidos pues tienen un significado especial en MATLAB. Existen algunos nombres de variables reservados por MATLAB: ans: resultado pi : número pi eps: el número más pequeño tal que añadido a 1 crea un número mayor que 1 en el ordenador flops: contador de operaciones de punto flotante inf: que tiende a NaN: no es un número i (y) j : i = j = 1 nargin: número de argumentos de entrada para una función nargout: número de argumentos de salida para una función realmin: número real más pequeño utilizable realmax: número real más grande utilizable Ejemplo 1.3 Creación de una variable: >> items = 12 items = 1 12

2 Comentarios y puntuación MATLAB ignora lo que está detrás de % Ejemplo 2.1 >> items = 4% número de items items = 4 Pueden escribirse varios comandos separados por comas o puntos y coma en una misma línea. Si se pone una coma se escribe el resultado del comando en pantalla pero si se pone un punto y coma el resultado no aparece en pantalla. Ejemplo 2.2 >> valor1 = 4, valor2 = 3; valor3 = 7 valor1 = 4 valor3 = aunque para la variable valor2 el valor almacenado es 3. Una sucesión de tres puntos indica que el resto del comando se continúa en otra línea: Ejemplo 2.3 >> cociente = valor1/... >> valor2 7 cociente = 1.3333 Esto es cierto siempre que no partamos nombres de variables: Ejemplo 2.4 >> cociente = valor1/va... >> lor2 Missing operator, comma o semicolon???ente = valor1/valor2 Tampoco pueden continuarse los comentarios: Ejemplo 2.5 >> valor1 = 3%primer... >> valor???undefined function or variable valor 2

3 Números complejos Ejemplo 3.1 Ejemplo 3.2 Ejemplo 3.3 Ejemplo 3.4 >> c1 = 1 2i c1 = 1.0000 2.0000i >> c1 = 1 2j% j significa lo mismo que i c1 = 1.0000 2.0000i >> c2 = 3 (2 sqrt( 1) 3) c2 = 6.0000 9.0000i >> c3 = sin(.5) i c3 = 0.0000 + 0.4794i Observemos que en este caso al ser una expresion no podemos añadir la i a sin(.5). Otra observación importante es que MATLAB trabaja en radianes. 4 Funciones matemáticas más comunes abs(x): valor absoluto o módulo de x asin(x) : arcoseno acos(x) : arcocoseno asinh(x) : arcoseno hiperbólico acosh(x) : arcocoseno hiperbólico angle(x) : ángulo de un complejo ( ( π, π] ) atan(x): arcotangente ( ( π, π] ) 3

atanh(x): arcotangente hiperbólico conj(x): complejo conjugado conj(x): complejo conjugado cos(x): coseno cosh(x): coseno hiperbólico sin(x): seno sinh(x): seno hiperbólico exp(x): exponencial real(x): parte real imag(x): parte imaginaria log(x): logaritmo natural log10(x): logaritmo en base 10 sign(x): función signo sqrt(x): raíz cuadrada tan(x): tangente tanh(x): tangente hiperbólica 5 Matrices Para definirlas: >> A = [ 1 3 5 ; 1 0 1 ; 5 0 9] A = 1 3 5 1 0 1 5 3 9 Para sumar matrices el comando es + y para multiplicar el comando es * siempre que las sumas y productos tengan sentido. Por ejemplo para multiplicar dos vectores fila con el mismo número de elementos el comando será: >> x = d p ; 4

aquí p representa el vector traspuesto de p y x el resultado del producto escalar de d y p. Para dividir dos escalares x1 y x2 el comando es: >> g = x1/x2; El comando x1\x2 representa x2/x1 y entonces tiene sentido que para resolver el sistema Ad = b donde A es una matriz y b y d son vectores utilicemos el comando \. La expresión >> d = A \ b; resuelve el sistema Ad = b a través de una factorización LU. Podría hacerse de la forma >> d = inv(a) b; pero es más caro. Si el sistema posee más ecuaciones que incógnitas el uso del operador \ da como resultado el vector d que minimiza el error cuadrático en Ad b. Esta es la llamada solución en mínimos cuadrados. Ejemplo 5.1 >> A = [1 2 3 ; 4 5 6 ; 7 8 0 ; 2 5 8] A = 1 2 3 4 5 6 7 8 0 2 5 8 >> b = [366 804 351 514] b = 366 804 351 514 >> d = A \ b % cálcula la solución mínimo cuadrática d = 247.9818 173.1091 114.9273 5

En MATLAB los elementos de una matriz pueden ser manipulados individualmente o en bloques: >> X(1, 3) = C(4, 5) + V (9, 1) A(:, 3) representa la tercera columna de A y A(5, :) la quinta fila. Veamos distintos ejemplos de manipulación de matrices en MATLAB: Ejemplo 5.2 >> A = [2 3 4 5 6 ; 4 5 6 7 8 ; 3 5 7 9 1 ; 4 6 8 10 12 ; 2 3 4 5 6] A = 2 3 4 5 6 4 5 6 7 8 3 5 7 9 1 4 6 8 10 12 2 3 4 5 6 >> v = [1 3 5]; >> b = A(v, 2) es decir b está compuesto por los elementos 1, 3 y 5 de la segunda columna de A. Si ejecutamos: b = 3 5 3 >> C = A(v, :) C = 2 3 4 5 6 3 5 7 9 1 2 3 4 5 6 es decir C está formado por las filas 1, 3 y 5 de A 6

Otro ejemplo: >> D = zeros(3); >> D(:, 1) = A(v, 2); Aquí primero hemos construido una matriz 3 3 de ceros y despues hemos sustituido su columna 1 por los elementos 1, 3 y 5 de la columna 2 de A. Ejecutando: >> E = A(1 : 2, 4 : 5) E = 5 6 7 8 Si A es una matriz compleja A es la matriz traspuesta conjugada y A. es la traspuesta. Si la matriz es real los dos operadores coinciden. Para generar matrices con valores especificados hay distintos modos, pero vemos solo algunos ejemplos: >> a = 10 : 10; crea un vector fila a empezando en -10 sumando 1 cada vez hasta 10. >> b = 2 : 0.2 : 2; crea un vector fila b empezando en -2 sumando 0.2 cada vez hasta 2. 6 Algunas matrices especiales [ ]: matriz vacía eye(n) : matriz identidad de dimensión nxn ones(n): matriz de unos de dimensión nxn rand(n): matriz aleatoria con coeficentes entre 0 y 1 zeros(n): matriz de ceros de dimensión nxn 7

En agunas aplicaciones aparecen matrices que tienen solo un pequeño número de elementos distintos de cero (matrices huecas): este es el caso en simulación de circuitos y programas de elementos finitos. Si una matriz de este tipo es grande es conveniente eliminar el almacenamiento de ceros. Además existen algoritmos adaptados a este tipo de matrices. En MATLAB para convertir una matriz hueca en escritura normal en una matriz almacenada como hueca se utiliza el comando sparse. >> B = eye(200); >> BS = sparse(b); En este caso B es la matriz identidad en escritura llena y BS la matriz identidad almacenada como hueca. 7 Funciones de matrices size(a): dos escalares conteniendo el número de filas y columnas de A chol(a) : factorización Cholesky cond(a): condicionamiento de A d = eig(a): autovalores de A [V, D] = eig(a): autovectores y autovalores de A expm(a): exponencial de A funm(a, fun ): función general de A inv(a): inversa de A norm(a, 1): norma 1 de A norm(a, 2): norma 2 de A norm(a, inf): norma infinito de A null(a): núcleo de A poly(a): polinomio característico de A qr(a): descomposición triangular ortogonal de A trace(a): traza de A Hay comandos y funciones especiales para matrices huecas pero no las nombraremos aquí 8

8 Operaciones elemento por elemento Las operaciones elemento por elemento difieren de las operaciones habituales con matrices pero suelen ser muy útiles. Se indican con un punto que precede al operador. Por ejemplo X. Y, X. Y, X. \ Y. Si en estas sentencias X e Y son matrices o vectores los elementos de X son elevados, multiplicados o divididos por los correspondientes de Y. Ejemplo 8.1 >> A = [ 1 2 ; 3 4 ] A = 1 2 3 4 >> B = [ 5 6 ; 7 8 ] B = 5 6 7 8 >> A B ans = 19 22 43 50 >> A. B ans = 5 12 21 32 9

9 Programando con MATLAB Para conocer que variables estan definidas el comando es whos. Si se desea conocer el valor actual de una variable el comando es disp, en la respuesta no aparece el nombre de la variable. Los operadores de relación en MATLAB son <: menor que <=: menor o igual >: mayor que >=: mayor o igual ==: igual a =: distinto de Para repetir la ejecución de uno o varios comandos se utiliza un ciclo for Ejemplo 9.1 Conocidos A, B, n y m : Ejemplo 9.2 >> for i = 1 : n >> for j = 1 : m >> C(i, j) = A(i, j) + cos(i + j) pi/(m + n) B(i, j); >> for k = n + 2 : 1 : n/2 >> a(k) = sin(pi k); Cuando la repetición se continua siempre que se satisfaga una cierta condición se utiliza la sentencia while Ejemplo 9.3 >> dif = 1; >> while dif > 0.0005 >> x1 = x2 cos(x2)/(1 + x2); >> dif = abs(x2 x1); >> x2 = x1; 10

A veces los comandos deben ser condicionalmente evaluados de acuerdo con un test de relación. Para ello se utiliza la sentencia if Ejemplo 9.4 Ejemplo 9.5 >> for k = 1 : n >> for p = 1 : m >> if k == p >> z(k, p) = 1; >> total = total + z(k, p); >> elseif k < p >> z(k, p) = 1; >> total = total + z(k, p); >> else >> z(k, p) = 0; >> if(x = 0)&(x < y) >> b = sqrt(y x)/x; 10 Funciones definidas por el usuario Se definen en los ficheros.m y la forma más simple es: function parámetros de salida= nombre de la función (parámetros de entrada) El nombre de la función y el nombre del fichero deben ser idénticos. Ejemplo 10.1 Ejemplo 10.2 >> functionp = fun1(x) >> x = x/2.4; >> p = x 3 2 x + cos(pi x); >> f unction[x1, x2] = rootquad(a, b, c) >> % resuelve ax 2 + bx + c = 0 dados a, b, c 11

>> d = b b 4 a c; >> x1 = ( b + sqrt(d))/(2 a); >> x2 = ( b sqrt(d))/(2 a); Otra forma de transmitir la información es hacerlo en global. parámetros. Esto es útil para los Ejemplo 10.3 >> global alpha; >> alpha = 7; >> [f] = prim(x, it) donde prim define una función f que incluye alpha como parámetro, por ejemplo: f(x) = cos(x alpha). Una forma de evaluar la función es utilizando el comando feval 11 Ficheros >> [r1, r2] = feval( rootquad, (1, 2, 3)) Los ficheros con la extensión.mat se utilizan con los comandos save y load para almacenar datos en binario. Los ficheros con la extensión.m son reconocidos por MATLAB como ficheros de ejecución. Dentro de ellos se pueden teclear una serie de comandos que luego se ejecutaran al teclear en MATLAB el nombre del fichero. Desde dentro de un programa función puede interesarnos abir un fichero para recuperar o almacenar información: Abrir un fichero para escritura con el comando fopen, mediante el cual el fichero queda identificado por un número. Para cerrarlos el comando es fclose. Si los datos son binarios, se puede utilizar la siguiente sentencia: >> fid = fopen( nombre.de.fichero, wt ) Si se quieren leer datos binarios de un archivo se utiliza el comando fread y para escribirlos el comando fwrite. Si se quieren leer datos formateados de un archivo se utiliza el comando fgetl o fgets y para escribirlos el comando fprintf. Algunos comandos de gestión de ficheros : cd: muestra el directorio de trabajo 12

cd path: cambia al directorio path chdir: como cd delete nombre: borra el fichero nombre.m dir: lista los ficheros del directorio de trabajo ls: lo mismo que dir path: muestra o modicifca el directorio de búsqueda de MATLAB type nombre: muestra el fichero nombre.m en la ventana de comandos what: devuelve una lista de ficheros.m y ficheros.mat 12 Gráficos La función plot permite dibujar una curva en el plano xy. Ejemplo 12.1 >> x = 0 : pi/100 : 2 pi; >> y = sin(x); >> plot(x, y); >> title( Dibujo 1 ); Este ejemplo dibuja la función seno en el intervalo [0, 2π]. MATLAB permite elegir el trazado y el color de las curvas y poner un rótulo sobre los ejes: >> plot(x, y, r ); >> xlabel( x ) >> ylabel( y ) >> title( Dibujo 2 ); El ejemplo siguiente corresponde a una superficie en 3D. En concreto es una imagen original que se utilizará en el problema de restauración de imágenes: Ejemplo 12.2 >> z = ones(80); z(13 : 68, 13 : 68) = 2 ones(size(z(13 : 68, 13 : 68))); >> for i = 25, 56 >> z(i, 25 : i) = z(i, 25 : i) + ones(1, i 24); >> mesh(z); ; >> title( Dibujo 3 ); 13

13 Bibliografiía Introducción a MATLAB y sus aplicaciones: P. Quintela Estévez. Servicio de Publicaciones de la Universidad de Santiago, 1997. Numerical Methods Using MATLAB: G. Linfield y J. Penny. Ellis-Horwood, 1995. Mastering MATLAB: D. Hanselman y B. Littlfield. Prentice-Hall, 1996. The Student Edition of MATLAB: Prentice-Hall, 1995. 14