Vous êtes sur la page 1sur 75

Universidad de Antioquia Facultad de Ciencias Exactas y Naturales Departamento de Matemticas a

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Introduccin a Matlab o

Pgina de Abertura a

Este documento fue escrito por profesores del Departamento de Matemticas de la Universidad de Antioquia y generado a partir de un a A A archivo LTEX compilado con pdfLTEX, utilizando el paquete pdfscreen.sty .
Pgina 1 de 75 a

Copyleft c 2006. Departamento de Matemticas, Universidad de Antioquia. a Este documento puede ser distribuido y/o modicado bajo los trminos de la e Licencia de Documentacin Libre GNU, Versin 1.2 o cualquier otra versin o o o posterior publicada por la Free Software Foundation. Documentacin completa o de la licencia es incluida en GNU Free Documentation License.

Regresar

Pantalla Completa

Cerrar

Abandonar

Acerca de Introduccin a Matlab o


(Bajo construccin) o

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Pgina 2 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

1.
1.1.

Introduccin o
El nombre
Introduccin o Variables y Formatos

Matlab, acrnimo en ingls de Matrix laboratory, es un sistema inteo e ractivo de programacin para realizar clculos numricos con vectores y o a e matrices. Como su nombre lo sugiere, Matlab est diseado para la a n resolucin de problemas que pueden ser enunciados en trminos de matrices, o e como lo son la solucin numrica de sistemas de ecuaciones lineales, el o e clculo de autovalores y autovectores, la factorizacin de matrices, etc. a o Matlab incorpora un sencillo y eciente lenguaje de programacin o que, junto con sus capacidades grcas, hacen de l una herramienta muy a e util para el desarrollo de experimentos numricos. Muchos de estos pro e gramas vienen con el sistema, son funciones internas (built-in functions) diseadas para resolver problemas generales y otros conforman librer n as especializadas (toolboxes) para resolver problemas ms concretos. a Una ventaja de Matlab es la sencillez de su lenguaje de programacin: o muchos programas que resultan dif ciles de implementar en lenguajes como C, Fortran, etc, se implementan con relativa facilidad en Matlab. Por supuesto, un programa en C resulta ser generalmente mucho ms eciente a que en Matlab. Una desventaja de Matlab es su alto valor comercial: Matlab R es una marca registrada de The MathWorks, Inc. y por ejemplo el costo de una licencia comercial de Matlab 7.1 Service Pack 3 (sin ningn toolbox ) oscila en torno de los US$2000. u

Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Pgina 3 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

1.2.

Descripcin del software o


Introduccin o Variables y Formatos Vectores y Matrices Grcos a
Clculos a

El usuario puede iniciar Matlab haciendo doble clic sobre el cono de Matlab o invocando la aplicacin desde el men de Inicio de Windows. Al o u ejecutarse Matlab, deber aparecer una ventana como la que se muestra a a continuacin. o

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Pgina 4 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

Partes a destacar del entorno de trabajo de Matlab: 1. Ventana de Comandos o Consola (Command Windows) Es la ventana principal por medio de la cual el usuario se comunica con Matlab. El prompt (>>) indica que matlab est listo para a recibir comandos, desde realizar operaciones bsicas entre nmeros a u (ver seccin 2, Variables y Formatos) hasta invocar programas que o el propio usuario realice (ver seccin 6, Programacin). o o
Introduccin o Variables y Formatos Vectores y Matrices Grcos a
Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Pgina 5 de 75 a

Regresar

2. Directorio Actual de Trabajo (Current Directory) El directorio actual de trabajo es una ruta que Matlab utiliza como punto de referencia. Cualquier archivo de Matlab que el usuario
Pantalla Completa

Cerrar

Abandonar

desee ejecutar debe estar ubicado en el directorio de trabajo excepto en la situacin descrita en 3. Una manera rpida de ver o cambiar el o a directorio de trabajo es por medio del campo mostrado en la gura.

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

Por defecto, el directorio de trabajo es C:\MATLAB7\work donde el 7 hace referencia a la versin de Matlab. En este ejemplo, los archivos o del Current Directory aparecen listados en la gura.

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Pgina 6 de 75 a

Regresar

Tres de ellos son archivos de Matlab (M-les), archivos con extensin .m y pueden ser invocados desde la linea de comandos. o

Pantalla Completa

Cerrar

Abandonar

3. Camino de bsqueda (Search Path) u El Search Path es una lista de directorios que Matlab utiliza para buscar archivos relacionados con Matlab (M-les entre ellos). Si un archivo de Matlab no se encuentra en el directorio actual, pero el directorio donde se encuentra ubicado el archivo hace parte del Search Path, entonces el usuario puede ejecutarlo sin problemas desde consola. Finalmente, escriba el comando demo en la ventana de comandos y oprima la tecla enter:
>> demo
Pgina de Abertura a

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Deber aparecer una ventana con ejemplos de las funcionalidades de a Matlab. La columna de la izquierda contiene un men con varias deu mostraciones. Elija alguna de las opciones y haga clic donde crea necesario.
Pgina 7 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

2.
2.1.

Variables y Formatos
Operadores Aritmticos e
Introduccin o Variables y Formatos

El primer uso bsico que le podemos dar a la ventana de comandos de a Matlab es el de una calculadora, ingresamos los valores a operar y oprimimos la tecla enter:
>> 3+4 ans = 7

Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Las operaciones aritmticas son realizadas en el siguiente orden de prie oridad: potenciacin (), divisin (/), producto (), y suma (+) y resta o o (). As por ejemplo
>> 5/10*2+5 ans = 6

Pgina de Abertura a

Pgina 8 de 75 a

Regresar

mientras que

Pantalla Completa

Cerrar

Abandonar

>> 5/(10*2+5) ans = 0.2000

Introduccin o Variables y Formatos Vectores y Matrices

Adicional a la operacin de divisn (/), existe en Matlab una opeo o racin de divisin por izquierda (\), como muestra el siguiente ejemplo. o o
>> 4\3 ans = 0.7500

Grcos a
Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Observemos que los resultados de los clculos son almacenados por dea fecto en la variable ans (del ingls, answer ). Si queremos ver el contenido e de la variable, escribimos ans en la linea de comandos y oprimimos enter:
>> ans ans = 0.7500
Pgina 9 de 75 a

Regresar

Pantalla Completa

Podemos utilizar ans en clculos posteriores a


Cerrar Abandonar

>> 3^2 + 4*ans ans = 12

Introduccin o Variables y Formatos Vectores y Matrices

Como consecuencia de esta ultima operacin, el contenido de la variable o ans es modicado nuevamente.

Grcos a
Clculos a

Avanzados

Programacin o

2.2.

Operadores de Comparacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Existen en Matlab seis operadores de comparacin: igual a (==), difeo rente de (=), menor que (<), mayor que (>), menor o igua a (<=) y mayor o igual a (>=). Por ejemplo
>> 1 == 2 ans = 0

Pgina de Abertura a

produce como resultado ans = 0 (falso) mientras que


>> 1 < 2 ans = 1

Pgina 10 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

produce como resultado ans = 1 (verdadero). Observemos que al igual que con los operadores aritmticos, para los operadores de relacin el orden e o importa:
>> 1>2==2<3 ans = 1

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

produce 1 (verdadero) mientras que


>> 1>2==(2<3) ans = 0

Pgina de Abertura a

produce 0 (falso).
Pgina 11 de 75 a

2.3.

Operadores Lgicos o
Regresar Pantalla Completa

Los operadores lgicos son el Y (&), el O ( | ) y la negacin (). Matlab o o le da prioridad primero a , luego a & y nalmente a |. Asi por ejemplo

Cerrar

Abandonar

>> 0&11 ans = 1

Introduccin o Variables y Formatos Vectores y Matrices

da verdadero (cualquier valor distinto de cero es considerado verdadero) y


>> 0&(11) ans = 0

Grcos a
Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

da falso. Otra operacin lgica es el O excluyente (xor). La tabla de o o verdad para todos estos operadores es mostrada a continuacn o A 0 0 1 1 B 0 1 0 1 A&B 0 0 0 1 A|B 0 1 1 1 A 1 1 0 0 xor(A, B) 0 1 1 0

Pgina 12 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

2.4.

Formato de Variables
Introduccin o Variables y Formatos Vectores y Matrices Grcos a

Adems de ans, existen otro tipo de variables en Matlab cuyo contenido a se encuentra pre determinado. Por ejemplo la variable pi almacena el valor 3.14159 . . .
>> pi ans = 3.1416

Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

y la variable i almacena el valor de


>> i ans = 0 + 1.0000i

1.

Pgina de Abertura a

En el caso de variables numricas, Matlab presenta por defecto los e contenidos de las variables aproximados a 4 cifras decimales. El usuario puede modicar el formato con el que se presentan los contenidos de tales variables con el comando format, como se muestra en el siguiente ejemplo, sin olvidar que esto no modica los contenidos de las variables ni la manera como Matlab ejecuta internamente los computos.

Pgina 13 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

>> format long >> pi ans = 3.14159265358979

Introduccin o Variables y Formatos Vectores y Matrices Grcos a

Otros tipos de formatos se presentan en la siguiente tabla. Tipo short long short e long e short g long g short eng long eng Formato punto jo, 5 d gitos punto jo, 15 d gitos punto otante, 5 d gitos punto otante, 15 d gitos punto jo o otante, 5 d gitos punto jo o otante, 15 d gitos 5 d gitos, potencias mltiplos de 3 u 16 d gitos, potencias mltiplos de 3 u Ejemplo 3.1416 3.14159265358979 3.1416e+000 3.141592653589793e+000 3.1416 3.14159265358979 3.1416e+000 3.14159265358979e+000

Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Pgina 14 de 75 a

Para regresar al formato estndar ejecutamos simplemente el comando a format:


>> format

Regresar

Pantalla Completa

Cerrar

Abandonar

2.5.

Denicin de Variables o
Introduccin o Variables y Formatos Vectores y Matrices Grcos a
Clculos a

El usuario puede denir su propias variables. Mientras que el operador == nos permite determinar cuando el contenido de dos variables es el mismo, como se mostr en la seccin Operadores de Comparacin, el operador = o o o nos permite asignarle un valor a una variable: lo que se encuentre al lado derecho del igual es asignado a lo que se encuentre al lado izquierdo del igual. Por ejemplo
>> a = 2 a = 2

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

asigna el valor de 2 a la variable a o tambin e


>> x = 2*3; >>
Pgina 15 de 75 a

asigna a la variable x el valor de 6. El punto y coma (;) al nal de la denicin de x previene que Matlab muestre el contenido de la variable. o Si queremos ver su contenido

Regresar

Pantalla Completa

Cerrar

Abandonar

>> x x = 6

Introduccin o Variables y Formatos Vectores y Matrices

Tambin podemos modicar variables propias de Matlab: e


>> pi = 3.14 pi = 3.1400

Grcos a
Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Cmo recuperar pi? El comando clear borra el contenido de una o variable, en este caso la asignacin que hicimos: o
>> clear pi >> pi ans = 3.1416

Pgina de Abertura a

Pgina 16 de 75 a

Regresar

Si estamos interesados en borrar todas las variables que hemos denido, entonces debemos usar el comando clear all. Otro comando de gran utilidad es who, el cual lista todas las variables que hemos denido:

Pantalla Completa

Cerrar

Abandonar

>> who Your variables are: a x

Introduccin o Variables y Formatos Vectores y Matrices

Si queremos informacin ms detallada de nuestras variables utilizamos o a el comando whos:


>> whos Name a x

Grcos a
Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Size 1x1 1x1

Bytes 8 8

Class double array double array

Pgina de Abertura a

Grand total is 2 elements using 16 bytes

La utilidad de varios comandos se puede inferir fcilemente a partir de a su nombre como es el caso de clear o who; para otros comandos, como pwd, cuya utilidad quiz no es inmediatamente, el comando help nos puede ser a de gran ayuda. Por ejemplo

Pgina 17 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

>> help pwd PWD Show (print) current working directory. PWD displays the current working directory. S = PWD returns the current directory in the string S. See also cd. Reference page in Help browser doc pwd

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

nos da informacin del comando en cuestin: pwd (del ingls, present o o e working directory) nos muestra el directorio actual de trabajo. Para acceder a un listado de comandos de carcter general a
>> help general

Pgina de Abertura a

Pgina 18 de 75 a

2.6.

Funciones Elementales

Regresar

Adems de las cuatro operaciones aritmticas bsicas y de de los comana e a dos ya vistos, Matlab incorpora una serie de funciones internas (built-in

Pantalla Completa

Cerrar

Abandonar

functions) como lo son las funciones matemticas bsicas seno, coseno, a a tangente, exponecial y logar tmo entre otras. As por ejemplo, para la funcin coseno , o
>> cos(pi) ans = -1

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

para la funcin exponencial o


>> exp(1) ans = 2.7183

Pgina de Abertura a

y para la funcin arcotangente o


Pgina 19 de 75 a

>> 4*atan(1) ans = 3.1416

Regresar

Pantalla Completa

Cerrar

Abandonar

Si deseamos informacin de alguna funcin interna de Matlab, por o o ejemplo seno, utilizamos el comando help:
>> help sin SIN Sine. SIN(X) is the sine of the elements of X. See also asin, sind. Overloaded functions or methods (...) help sym/sin.m Reference page in Help browser doc sin

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Para acceder a un listado con informacin detallada de las funciones o elementales (elementary functions) implementadas en Matlab
>> help elfun

Pgina 20 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

2.7.

Ejercicios
Introduccin o Variables y Formatos

Resuelva los siguientes ejercicios. 1. 2. 3. 4. 5.

Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Pgina 21 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

3.
3.1.

Vectores y Matrices
Edicin de Vectores o
Introduccin o Variables y Formatos

Las instrucciones para editar vectores por componentes en Matlab son:


>> x = [1 4 6 8] x = 1 4 6 8 % vector fila

Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

>> y = [3;6;9;1] y = 3 6 9 1

% vector columna

Pgina de Abertura a

Pgina 22 de 75 a

Otra forma de ingresar un vector columna (la transpuesta de un vector la)

Regresar

Pantalla Completa

Cerrar

Abandonar

>> w = [13 45 32 1] y = 13 45 32 1

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

Si deseamos editar vectores de ms componentes, tenemos las siguientes a instrucciones:


>> z = 1:2:18 z = 1 3

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

11

13

15

17

Esta intruccin genera un vector de componentes del 1 al 18 por increo mento de a 2 mientras que
Pgina 23 de 75 a

>> zz = 35:-1:1;

Regresar

genera un vector de componentes 35, 34, . . . , 1. La sintaxis de la instruccin es: o

Pantalla Completa

Cerrar

Abandonar

>> variable = valor inicial:incremento:valor final


Introduccin o Variables y Formatos Vectores y Matrices Grcos a

Tambin podemos emplear la instruccin linspace cuya sintaxis es e o


>> linspace(valor inicial, valor final, nmero de puntos) u

Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

>> v = linspace(1,2,5) v = 1.0000 1.2500

1.5000

1.7500

2.0000

Pgina de Abertura a

3.2.

Comandos Especiales con Vectores

Existen instrucciones que permiten generar vectores especiales y que realizan tareas sobre los vectores, entre ellos tenemos:
Pgina 24 de 75 a

>> b = ones(1,4) v = 1 1 1

Regresar

Pantalla Completa

Cerrar

Abandonar

que genera un vector la de unos de 4 componentes y


Introduccin o

>> a = ones(4,1) a = 1 1 1 1

Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

que genera un vector columna de unos de 4 componentes. Si queremos generar vectores de ceros en lugar de unos:
>> c = zeros(1,5) c = 0 0 0

Pgina de Abertura a

0
Pgina 25 de 75 a

Para generar vectores con entradas aleatorias

Regresar

Pantalla Completa

Cerrar

Abandonar

>> d = rand(3,1) d = 0.2311 0.6068 0.4860

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

>> max(d) ans = 0.6068

extrae la mayor componente

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

>> min(d) ans = 0.2311

extrae la menor componente

Pgina 26 de 75 a

>> length(d) ans = 3

nos da el numero de componentes de d


Regresar

Pantalla Completa

Cerrar

Abandonar

Si queremos extraer simplemente una entrada o varias entradas de un vector empleamos las siguientes instrucciones
>> d(3) ans = 0.4860

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

>> d([1 3]) ans = 0.2311 0.4860

extrae la primera y tercera componente

Pgina de Abertura a

3.3.

Operaciones con Vectores

Para realizar las operaciones con vectores es necesario que ellos tengan el mismo numero de elementos, consideremos los vectores:
>> x=[4 6 3 3]; y=[2 6 -2 -3];

Pgina 27 de 75 a

Regresar

Pantalla Completa

Podemos sumarlos y restarlos


Cerrar

Abandonar

>> x+y ans = 6

Introduccin o

12

Variables y Formatos Vectores y Matrices Grcos a

>> x-y ans = 2

Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

>> 3*x ans = 12

Pgina de Abertura a

18

Para multiplicarlos componente a componente, es decir x(i) y(i), empleamos las operaciones punto, esto es:
Pgina 28 de 75 a

>> x.*y ans = 8

Regresar

36

-6

-9

Pantalla Completa

Cerrar

Abandonar

>> x./y ans = 2.0000

Introduccin o

1.0000

-1.5000

-1.0000

Variables y Formatos Vectores y Matrices Grcos a

>> x.^2 ans = 16

Clculos a

Avanzados

Programacin o

36

EDO Numrica e EDP Numrica e


Pgina Web a

Si queremos multiplicar directamente se produce un error ya que la multiplicacin (como matrices) no est denida o a
>> x*y ??? Error using == mtimes Inner matrix dimensions must agree.

Pgina de Abertura a

mientras que
>> x*y ans = 29

Pgina 29 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

3.4.

Edicin de Matrices o
Introduccin o Variables y Formatos

Una matriz se edita por las, asi:


>> A = [2 -1 3;4 6 -1;2 -1 -3] A = 2 -1 3 4 6 -1 2 -1 -3

Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Si tenemos el vector
>> h=[2 3 4];
Pgina de Abertura a

podemos construir la siguiente matriz


>> B=[A;h] B = 2 -1 4 6 2 -1 2 3

Pgina 30 de 75 a

3 -1 -3 4

Regresar

Pantalla Completa

Cerrar

Abandonar

3.5.

Comandos Especiales con Matrices


Introduccin o Variables y Formatos Vectores y Matrices

Tambin existen instrucciones en Matlab que construyen matrices simie lares a las de los vectores:
>> C=ones(2) C = 1 1 1 1 % genera una matriz 2x2 de unos

Grcos a
Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

>> D=zeros(2,3) C = 0 0 0 0

% genera una matriz 2x3 de ceros 0 0

Pgina de Abertura a

>> E=rand(3,2) % genera una matriz 3x2 aleatoria E = 0.9501 0.4860 0.2311 0.8913 0.6068 0.7621

Pgina 31 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

>> F=eye(3) F = 1 0 0 1 0 0

% genera la matriz identidad de orden 3


Introduccin o

0 0 1

Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

>> diag(F) F = 1 1 1

% extrae la diagonal principal de F

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

>> diag([1 F = 1 0 0

2 3]) 0 2 0 0 0 3

% genera una matriz diagonal


Pgina 32 de 75 a

Regresar

Pantalla Completa

Si tenemos la matriz
Cerrar

Abandonar

>> G = [2 -5 8;-2 6 -7;5 7 -6] G = 2 -5 8 -2 6 -7 5 7 -6

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

>> tril(G) G = 2 0 -2 6 5 7

% obtiene la triangular inferior de G 0 0 -6

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

>> triu(G) G = 2 -5 0 6 0 0

% obtiene la triangular superior de G 8 -7 -6


Pgina 33 de 75 a

Regresar

Pantalla Completa

Qu obtenemos con la instruccin diag(diag(G))? e o


Cerrar

Abandonar

>> size(G) ans = 3 3

% obtiene el orden de la matriz


Introduccin o Variables y Formatos Vectores y Matrices Grcos a

>> H=G H = 2 -5 8

% obtiene la transpuesta de G -2 6 -7 5 7 -6

Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

>> H(2,:) ans = -5

% extrae la segunda fila de H 6 7

Pgina de Abertura a

>> H(:,3) ans = 5 7 -6

% extrae la tercera columna de H

Pgina 34 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

En general, la sintaxis para extraer componentes, las y columnas son: A(i,j) = extrae la componente de la la i columna j de la matriz A A(i,:) = extrae la la i de la matriz A A(:,j) = extrae la columna j de la matriz A
Introduccin o Variables y Formatos Vectores y Matrices Grcos a
Clculos a

Avanzados

3.6.

Operaciones con Matrices

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Siempre que est denida la operacin podemos sumar, restar, multiplicar e o matrices, resolver sistemas de ecuaciones Ax = b, etc.
>> A=[1 3 4; 6 8 -2]; B=[2 -1 -3;-5 -2 -4]; F=[2 3;5 -1];

Pgina de Abertura a

>> C=A+B C = 3 1

2 6

1 -6

Pgina 35 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

>> D=A-B D = -1 11

Introduccin o

4 10

7 2

Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

>> E=A*B E = -13 -27 10 -38

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

>> A.^2 ans = 1 36

Pgina de Abertura a

9 64

16 4
Pgina 36 de 75 a

>> A.*B ans = 2 -30

Regresar

-3 -16

-12 8

Pantalla Completa

Cerrar

Abandonar

>> det(F) ans = -17

% obtiene el determinante de F
Introduccin o Variables y Formatos Vectores y Matrices Grcos a

>> inv(F) ans = 0.0588 0.2941

% obtiene la inversa de F 0.1765 -0.1176

Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Para resolver el sistema F x =

17 : 34

Pgina de Abertura a

>> F\[17;34] ans = 7.0000 1.0000

Pgina 37 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

4.

Grcos a
Introduccin o Variables y Formatos Vectores y Matrices Grcos a
Clculos a

Cada vez que Matlab realiza un grco se abre una nueva ventana llamada a Figure 1, para activarla y ver los resultados es necesario dar clic sobre ella ya que esta se minimiza al volver a la ventana del Command Windows. Si queremos tener mas de una ventana de gracos abierta es necesario emplear la instrucc figure. on

Avanzados

Programacin o

4.1.

Graca Simple

EDO Numrica e EDP Numrica e


Pgina Web a

Una primer forma de gracar en Matlab es tomando un conjunto de pares ordenados (xi , yi ) y representarlos empleando el comando plot, para ello es necesario crear dos vectores x y y de igual longitud. Por ejemplo graquemos y = exp (x) sen (2x) , para 0 x 10. Las instrucciones en Matlab son
>> x=0:0.1:10; >> y=sin(x).*exp(x/10); >> plot(x,y)

Pgina de Abertura a

Pgina 38 de 75 a

Regresar

Pantalla Completa

y la gura obtenida se muestra a continuacin o


Cerrar

Abandonar

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Para representar dos grcas en el mismo plano coordenado empleamos a


>> z=cos(x).*exp(x/10); >> plot(x,y,x,z)

Pgina 39 de 75 a

Regresar

En este caso, el resultado obtenido es

Pantalla Completa

Cerrar

Abandonar

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

En forma similar podemos representar mas de una grca dentro del a mismo plano coordenado.
Pgina 40 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

4.2.
>> >> >> >>

Etiquetas y T tulo
plot(x,y,x,z) xlabel(x) % coloca una etiqueta al eje x ylabel(y) % coloca una etiqueta al eje y title(Ejemplos iniciales) % coloca titulo al grfico a
Introduccin o Variables y Formatos Vectores y Matrices Grcos a
Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Pgina 41 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

Si queremos colocar t tulos sobre cada curva empleamos la instruccin o text. La sintaxis es text(x,y,texto). Para las curvas anteriores
>> plot(x,y,x,z) >> text(8,2.3,exp(x)sin(2x)) >> text(8,-2.8,cos(x)exp(x/10))

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Pgina 42 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

4.3.

Estilos y Colores
Introduccin o Variables y Formatos Vectores y Matrices

Para especicar los colores y los estilos de l` nea damos un argumento adicional al plot. A continuacin gracamos y en rojo y z con signo +. o
>> plot(x,y,r,x,z,+)

Grcos a
Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Pgina 43 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

Los argumentos opcionales adicionales al plot despus de cada pareja e de vectores son: Simbolo y m c r g b w k Color amarillo magenta cien rojo verde azul blanco negro Simbolo . o x + * : -. -Estilo de l nea punto c rculo marca x ms a estrella l nea slida o l nea punteada l nea punto raya l nea de trazos

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Tenga en cuenta que puede utilizar al mismo tiempo s mbolo y color, es decir
Pgina 44 de 75 a

>> plot(x,z,m*)

Regresar

Pantalla Completa

Cerrar

Abandonar

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Si queremos aproximar ceros de una funcin es necesario tener una o cuadricula que nos lo permita, para ello se emplea la instruccin grid on o despues del plot as
Pgina 45 de 75 a

>> plot(x, sin(x)-x/10), grid on

Regresar

Pantalla Completa

Cerrar

Abandonar

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

y si queremos especicar un rango para los ejes para la bsqueda de ceros u empleamos la instruccin axis([xmin,xmax,ymin,ymax]). o Para tener mas opciones para los ejes tenemos la ayuda en linea
Pgina 46 de 75 a

>> help axis

Regresar

Pantalla Completa

Cerrar

Abandonar

4.4.

Manipulacin de Grcos o a
Introduccin o Variables y Formatos Vectores y Matrices

Para incluir ms de una grca en una ventana sin tener que listar todos a a los vectores en una misma l nea empleamos hold on:
>> >> >> >> >> >> x=-2:0.1:2; y=sin(x); z=cos(x).*exp(x); plot(x,y,r*) hold on plot(x,z,c+) hold off figure % activa una nueva ventana de grafico

Grcos a
Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Pgina 47 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

La instruccin subplot(m,n, p) subdivide la ventana de la gura aco tual en una matriz m n planos coordenados activando el p esimo plano. Las subgracas se numeran de izquierda a derecha por medio de las las. a Consideremos el siguiente ejemplo:
>> >> >> >> >> >> >> >> >> >> >> x=linspace(0,2*pi,100); y=sin(2*x); z=cos(3*x); w=sin(x).*cos(x); subplot(2,2,1) % selecciona la subgrafica plot(x,y); title(sin(2x)) subplot(2,2,2) % selecciona la subgrafica plot(x,z); title(cos(3x)) subplot(2,2,3) % selecciona la subgrafica plot(x,w); title(sin(x)cos(x)) subplot(2,2,4) % selecciona la subgrafica plot(x,q); title(tan(x)) figure % activa una nueva ventana de

Introduccin o Variables y Formatos Vectores y Matrices Grcos a

q=tan(x); superior izquierda

Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

inferior izquierda
Pgina de Abertura a

inferior derecha grafico

El resultado obtenido es

Pgina 48 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

La instruccin fplot permite gracar funciones en forma simblica, es o o decir, sin necesidad de crear las parejas de puntos.
>> fplot(sin(x)/x,[-10 10])

Pgina 49 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Tambin es posible dar un rango en y, es decir, emplear la instruccin e o fplot(fun,[xmin xmax ymin ymax]).

4.5.

Grcos 3D a

Pgina 50 de 75 a

Matlab proporciona una variedade de funciones para visualizar datos 3D. Empleamos la instruccin plot3(x,y,z) donde x, y y z son vectores. o

Regresar

Pantalla Completa

Cerrar

Abandonar

>> t=0:pi/50:10*pi; >> plot3(sin(t),cos(t),t) >> title(Helix),xlabel(sin(t)),ylabel(cos(t)),zlabel(t)

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Pgina 51 de 75 a

Regresar

El primer paso para generar una grca de malla de una funcin z = a o f (x, y), es generar matrices X y Y formadas respectivamente por las

Pantalla Completa

Cerrar

Abandonar

y columnas repetidas, en algn rango de las variables x y y. Con la inu struccin [X,Y]=meshgrid(x,y) se crean X y Y matrices que representan o una rejilla ractangular de puntos en el plano xy. Para generar las imagenes empleamos X y Y con z = f (X, Y ) y nalmente empleamos la instruccin o mesh(X,Y,z)
>> >> >> >> x=-2:0.1:2; y=x; [X,Y]=meshgrid(x,y); z=sqrt(4-X.^2-Y.^2); mesh(X,Y,z)

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Pgina 52 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

>> figure,w=sqrt(4-X.^2+Y.^2); >> mesh(X,Y,w)

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Pgina 53 de 75 a

Una graca de supercie se obtiene por medio de la instruccin surf o que tienen los mismos argumentos de mesh

Regresar

Pantalla Completa

Cerrar

Abandonar

>> surf(X,Y,z)
Introduccin o Variables y Formatos Vectores y Matrices Grcos a
Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Pgina 54 de 75 a

Regresar

>> surf(X,Y,w)
Pantalla Completa

Cerrar

Abandonar

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Pgina 55 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

5.

Clculos Avanzados a
Introduccin o Variables y Formatos Vectores y Matrices Grcos a
Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Pgina 56 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

6.
6.1.

Programacin o
La idea detrs . . . a
Introduccin o Variables y Formatos

Un programa en Matlab es bsicamente un archivo plano sin formato a (archivo ASCII) con extensin (.m) que contiene una serie de comandos de o Matlab. Existen dos clases de programas en Matlab: archivos de comandos (scripts) y funciones (functions). Estos archivos se pueden generar y editar con cualquier editor de textos. Nosotros utilizaremos el editor de textos que viene por defecto en Matlab y que puede ser invocado con el comando edit desde la consola
>> edit

Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

o haciendo doble clic sobre el cono de la hoja en blanco que aparece debajo de File, en la ventana principal de Matlab.
Pgina 57 de 75 a

Regresar

Deber entonces emerger una ventana como la que se muestra a cona tinuacin. o

Pantalla Completa

Cerrar

Abandonar

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

6.2.

Archivos de comandos (Scripts)


Pgina 58 de 75 a Regresar

Un script es un archivo con extensin (.m) que contiene comandos de o Matlab. El usuario puede invocar el programa desde la linea de comandos, escribiendo el nombre del programa sin la extensin (.m) y oprio miendo la tecla enter. Al ser invocado, Matlab ejecutar los comandos a contenidos en el archivo en el orden en que aparecen.

Pantalla Completa

Cerrar

Abandonar

Como un primer ejemplo, y para seguir la tradicin, consideremos el o programa Hola Mundo cuyo cdigo aparece a continuacin o o
close all; clear all; clc; disp(hola mundo); % cierra todas las ventanas % borra todas las variables % limpia la pantalla % muestra el mensaje

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Copiemos el cdigo en el editor de Matlab y salvemos el archivo como, o por ejemplo, holamundo.m. El script lo ejecutamos desde la ventana de comandos
>> holamundo

Pgina de Abertura a

El resultado es
hola mundo >>
Pgina 59 de 75 a

Regresar

Como segundo ejemplo, consideremos ahora el cdigo mostrado a cono tinuacin o

Pantalla Completa

Cerrar

Abandonar

% Calcula el maximo entre dos numeros


Introduccin o

x = 3; y = -5; if (x>y) M=x; % si x es mayor que y, a M se le asigna x else M=y; % en caso contrario, a M se le asigna y end disp(el maximo es) disp(M)

Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Este programa calcula el mayor nmero entre 3 y 5. Salvemos lo como u maximo.m y ejecutemos lo desde la ventana de comandos.
>> maximo el maximo es 3

Pgina 60 de 75 a

Regresar

Observemos que despus de su ejecucin, los valores de las variables x, e o y y M se conservan. Por ejemplo

Pantalla Completa

Cerrar

Abandonar

>> x x = 3

Introduccin o Variables y Formatos Vectores y Matrices Grcos a

6.3.

Funciones

Clculos a

Avanzados

Las funciones son como scripts un poco ms complejos: aceptan argumena tos (como las funciones matemticas) y son compiladas la primera vez que a son utilizadas en una sesin dada. o Como ejemplo inicial, consideremos el siguiente cdigo que convierte el o script maximo.m en una funcin. o
% Funcion que calcula el maximo entre dos numeros function M=mayor(x,y) if (x>y) M=x; % si x es mayor que y, a M se le asigna x else M=y; % en caso contrario, a M se le asigna y end

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Pgina 61 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

A diferencia de los scripts, la primera linea del cdigo (que no es o comentario) de una funcin empieza con la palabra function. En este o caso, la funcin denida es llamada mayor y es recomendable que salvemos o el archivo con el nombre de la funcin, i.e., mayor.m. o
>> mayor(17,43) ans = 43

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Observemos que despus de su ejecucin, los valores de las variables x, e o y y M no se conservan, son variables locales. Por ejemplo
>> y ??? Undefined function or variable y.

Pgina de Abertura a

Observemos tambin que los argumentos son necesarios e


Pgina 62 de 75 a

>> mayor ??? Input argument "x" is undefined. Error in == mayor at 4 if (x>y)

Regresar

Pantalla Completa

Cerrar

Abandonar

Matlab muestra que el error aparece en la linea 4 del programa donde aparece la instruccin if (x>y). o Observemos que la primera linea del programa es un comentario y nos dice el propsito de la funcin. El usuario puede acceder a dicha inforo o macin desde la consola: o
>> help mayor Funcion que calcula el maximo entre dos numeros

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Finalmente recordemos que la primera linea (que no es un comentario) de una funcin debe ser de la forma o function [salida] = nombre de la funcin(entrada) o donde [salida]: son los valores de salida de la funcin, puede ser slo uno o o (en cuyo caso los corchetes no son necesarios) como en el ejemplo ya visto o pueden ser varios como en el caso de funciones vectoriales. nombre de la funcin: es el nombre de la funcin que el usuario o o elija, por ejemplo mayor en el ejemplo anterior. entrada: son los argumentos de entrada de la funcin, puede ser uno o o varios como en el ejemplo de la funcin mayor. o

Pgina de Abertura a

Pgina 63 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

6.4.

Condicionales
Introduccin o Variables y Formatos Vectores y Matrices Grcos a
Clculos a

Matlab incorpora las estructuras de control bsicas (condicionales y bua cles) que un lenguaje de programacin requiere con el n de controlar el o ujo de ejecucin de las instrucciones de un programa. Las sentencias o condicionales permiten realizar una operacin segn se cumpla o no una o u determinada condicin. o El cdigo de la funcin mayor utiliza la sentencia condiconal if-elseo o if. Su sintaxis general es de la forma
if condicion_1 bloque_1 elseif condicion_2 bloque_2 . . . else bloque_final end

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Pgina 64 de 75 a

Regresar

Si la condicin 1 es verdadera, se ejecuta el bloque de sentencias 1, de o lo contrario, se ejecuta el bloque de sentencias 2, etc. Por ejemplo

Pantalla Completa

Cerrar

Abandonar

>> t = rand(1); >> if t > 0.75 s = 0; elseif t < 0.25 s = 1; else s = 1 - 2*(t-0.25); end

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Cul es el valor de t y s? La funcin signo dada a continuacin ilustra a o o tambin el uso del condicional if-else-if. e
function sgn = signo(x) if x > 0 sgn = 1; elseif x < 0 sgn = -1; else sgn = 0; end

Pgina de Abertura a

Pgina 65 de 75 a

Regresar

Pantalla Completa

As por ejemplo

Cerrar

Abandonar

>> signo(-0.75) ans = -1

Introduccin o Variables y Formatos Vectores y Matrices

Otra sentencia condicional con la que cuenta Matlab es el switch. Su sintaxis general es de la forma
switch expresion case valor_1 bloque_1 case valor_1 bloque_2 . . . otherwise bloque_final end

Grcos a
Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Pgina 66 de 75 a

Regresar

Si el valor de expresion es igual a valor 1 entonces bloque 1 es ejecutado, si es igual a valor 2 entonces bloque 2 es ejecutado y si el valor

Pantalla Completa

Cerrar

Abandonar

de ningn valor i coincide con expresion entonces bloque final es ejeu cutado. A continuacin un ejemplo. o
function y = trig(func,x) switch func case sin y = sin(x); case cos y = cos(x); case tan y = tan(x); otherwise error(Funcion no definida) sgn = 0; end

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

>> trig(tan,pi/3) ans = 1.7321

Pgina 67 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

6.5.

Bucles
Introduccin o Variables y Formatos Vectores y Matrices

Los bucles (while y for) permiten repetir las mismas operaciones sobre distintos datos. La sintaxis general del while es la siguiente
while condicion bloque end

Grcos a
Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Si condicion es verdadera, bloque es ejecutado. Despus de su ejee cucin, condicion es evaluada de nuevo. Si es verdadera, bloque es ejecuo tado nuevamente y as sucesivamente hasta que condicion sea falsa. El siguiente cdigo calcula el nmero de aos requeridos para que un o u n capital de U$1000 se incremente a U$10000 al 6% anual de inters. e
>> p = 1000; annos = 0; >> while p < 10000 annos = annos + 1; p = p*(1 + 0.06); end >> annos annos = 40

Pgina de Abertura a

Pgina 68 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

La sintaxis general del for es la siguiente


Introduccin o

for variable = expresion_1:expresion_2 bloque end

Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

Por ejemplo para calcular el valor de cos x con x variando desde cero hasta /2 en incrementos de /10 podemos utilizar

EDO Numrica e EDP Numrica e


Pgina Web a

>> for n = 0:5 y(n+1) = cos(n*pi/10); end >> y y = 1.0000 0.9511 0.8090

Pgina de Abertura a

0.5878

0.3090

0.0000
Pgina 69 de 75 a

Los bucles deber ser evitados siempre que sea posible y sustituian dos por expresiones vectorizada que resultan ser mucho ms rpidas. Una a a solucin vectorizada del problema anterior es dada por el cdigo presentado o o a continuacin. o

Regresar

Pantalla Completa

Cerrar

Abandonar

>> for n = 0:5 >> y = cos(n*pi/10) y = 1.0000 0.9511

Introduccin o Variables y Formatos

0.8090

0.5878

0.3090

0.0000

Vectores y Matrices Grcos a

Finalmente, tres comandos que complementan a los bucles: break, continue y return.

Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Pgina 70 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

7.

EDO Numrica e
Introduccin o Variables y Formatos Vectores y Matrices Grcos a
Clculos a

En esta seccin utilizaremos el comando ode45 de Matlab para hallar o soluciones numricas de problemas de valor inicial de ecuaciones diferene ciales ordinarias. Vamos a considerar ecuaciones de la forma x(n) = F t, x, x , . . . , x(n1) Por medio del cambio de variable x1 = x, x2 = x , . . . , xn1 = x
(n2)

(1)

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

, xn = x

(n1)

(2)
Pgina de Abertura a

la ecuacin (1) se puede escribir como un sistema de n ecuaciones difereno ciales de primer orden de la forma (note la similaridad con (1)) x = F(t, x) donde x = [x1 x2 xn ]T y F(t, x) = [x2 x3 F (t, x1 , . . . xn )]T (3)

Pgina 71 de 75 a

En general, consideraremos sistemas de la forma (3) donde x = [x1 x2 xn ]


T

Regresar

Pantalla Completa

y F(t, x) = [f1 (t, x) f2 (t, x) fn (t, x)]

T
Cerrar

Abandonar

Como ejemplo inicial consideremos la ecuacion de Dung o x + x x + x3 = cos t (4)


Introduccin o Variables y Formatos

Se trata de una ecuacin de segundo orden no lineal que que describe las o oscilaciones de un resorte no lineal. Es tambin un ejemplo de un sistema e dinmico que exhibe un comportamiento catico. a o Observemos que (4) se puede expresar como (3) con F (t, x1 , x2 ) = x2 + x1 es decir, x1 x2 = F(t, x) = x2 x2 + x1 x3 + cos t, 1 x3 1 + cos t,

Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Empezemos escribiendo entonces la funcin F(t, x) como una funcin o o de Matlab que salvaremos como F.m:
function dx = F(t,x,flag,delta,gama,omega) dx = zeros(2,1) dx(1) = x(2) dx(2) = delta*x(2)+x(1)-x(1)^3+gama*cos(omega*t)

Pgina 72 de 75 a

Regresar

Pantalla Completa

Habiendo denido F(t, x) utilizamos el comando ode45 cuya sintaxis es

Cerrar

Abandonar

ode45(Fcn,tspan,init,options,p1,p2,...) donde Fcn es el nombre de la funcin. o tspan es el intervalo de la solucin. o init es la condicin inicial. o option son opciones pasadas al solver p1,p2,... son parmetros adicionales. a Por ejemplo, si queremos resolver (4) con condiciones iniciales x(0) = 1, x (0) = 1 y parmetros = 0.15, = 0.3 y = 1 utilizamos a ode45(F,[0,100],[-1,1],[],-0.15,0.3,1) La solucin numrica obtenida por el solver (ode45) puede ser almaceo e nada en variables de salida para uso posterior.
>> [t,x] = ode45(F,[0,100],[-1,1],[],-0.15,0.3,1);
Pantalla Completa

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Pgina 73 de 75 a

Regresar

Cerrar

Abandonar

Observemos que la primera columna de x contiene x1 que es la solucin o de (4) (ver (2)). Para gracar las soluciones
>> >> >> >> plot(t,x) legend(x_1,x_2) xlabel(t) ylabel(x_1,x_2)

Introduccin o Variables y Formatos Vectores y Matrices Grcos a


Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Si deseamos gracar slo la solucin de (4) o o


>> >> >> >> plot(t,x(:,1)) xlabel(t) ylabel(x) title(\delta=-0.15,\gamma=0.3,\omega=1)

Pgina de Abertura a

Pgina 74 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

8.

EDP Numrica e
Introduccin o Variables y Formatos Vectores y Matrices Grcos a
Clculos a

Avanzados

Programacin o

EDO Numrica e EDP Numrica e


Pgina Web a

Pgina de Abertura a

Pgina 75 de 75 a

Regresar

Pantalla Completa

Cerrar

Abandonar

Vous aimerez peut-être aussi