Source: http://www.slideshare.net/jandiruchyz/manual-dematlab
Timestamp: 2016-10-24 05:57:58+00:00

Document:
Catalogo, nov. 2015 II
by Juan Ortiz B
Luis Fernando Heras Portillo: Vinos...
Lisan k9.1
Global Data Center Construction Mar...
2015 SURP Poster Presentation (Final)
by Prisca Diala
How your company works
by nielpatidsk3
Manual deuso de Matlab Curso 2010-2011. 2.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. MatemáticasÍndice1. Introducción 32. Variables 4 2.1. Información sobre las variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2. Cómo borrar variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3. Algunas variables predeﬁnidas en MATLAB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53. Trabajando con matrices 5 3.1. Vectores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 3.2. Matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 3.3. Deﬁnición de matrices por bloques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.4. Operaciones con vectores y matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3.5. Funciones que actúan sobre matrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84. Operaciones básicas con números complejos 105. Programando bucles y condicionales 11 5.1. Operadores relacionales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 5.2. Estructuras if-elseif-else-end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 5.3. La estructura for-end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 5.4. Bucles while-end . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136. Ficheros function 147. Cálculo simbólico 15 7.1. Creamos objetos simbólicos y operamos con ellos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 7.2. Cómo borrar variables simbólicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 7.3. Sustituciones en una expresión simbólica y conversión a numérico . . . . . . . . . . . . . . . . . . . . . 17 7.4. Límites, derivadas e integrales simbólicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 7.5. Manipulación de expresiones simbólicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188. Solución de ecuaciones 189. Resolución de ecuaciones y sistemas de ecuaciones diferenciales 20 9.1. Resolución de ecuaciones diferenciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 9.2. Resolución de sistemas de ecuaciones diferenciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2110. Funciones de tipo numérico 21 10.1. Funciones anónimas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 10.2. Polinomios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2211. Gráﬁcos con MatLab 22 1 3.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. Matemáticas11.1. Gráﬁcos 2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2211.2. Gráﬁcos 3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 11.2.1. Dibujo de curvas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 11.2.2. Superﬁcies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2 4.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. Matemáticas1. Introducción Este es el aspecto que presenta la versión R2009-b de MatLab, que será la que utilizaremos este curso: En la ventana de comandos es donde podemos introducir las distintas expresiones para que MatLab las evalúe. Para realizar los cálculos elementales con MATLAB es suﬁciente conocer la sintaxis de las distintas operaciones: Suma Resta Multiplicación División Potenciación + - * / ^Las operaciones se evalúan siguiendo un orden determinado. Primero se efectúan los paréntesis, luego las potencias,después productos y cocientes y, ﬁnalmente, sumas y restas. Dentro de un mismo nivel, se realizan de izquierda a derecha.Ejemplo 1 Obsérvese la diferencia entre las siguientes operaciones: 3 3 32 − 5 2 − 7 ; 32 − 5 ∗ 2 − 4 4∗7>> 3^2-5*(2-3/4*7)ans = 3 5.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. Matemáticas 25.2500>> 3^2-5*2-3/(4*7)ans = -6.2500Para borrar la ventana de comandos se utiliza la orden clc. Esta acción no borra de la memoria nada que haya sido creadocon anterioridad. Las órdenes que han sido escritas previamente en un ﬁchero ASCII se van a ejecutar secuencialmente. Los ﬁcherosque reconoce MatLab reciben el nombre de ﬁcheros m, debido a que su nombre tiene extensión .m. Para crear un ﬁchero .m se pincha con el ratón File -> New -> M-File, o bien se pincha el primer icono de labarra de herramientas . Los dos caminos nos llevan a un editor de texto en el que se escriben las instrucciones que sequieren ejecutar posteriormente en el área de trabajo. El signo % permite añadir comentarios, MATLAB obviará todo lo que esté escrito a la derecha de dicho símbolo.Además, si las primeras líneas van precedidas de este símbolo, MATLAB considerará éstas como la ayuda del ﬁchero, ycuando en el área de trabajo tecleemos help nombre_fichero nos devolverá este comentario. Una vez escrito el ﬁchero, nos situamos en la opción File del menú del editor, se elige la opción Save As y apareceuna ventana donde escribiremos el nombre del ﬁchero nombre_fichero.m. Las reglas para dar nombre a un ﬁcheroson las siguientes: el primer carácter del nombre debe ser una letra, nunca un número, se pueden utilizar letras, númerosy el guión de subrayado, nunca signos de puntuación, ni los símbolos que indican operaciones y nunca pueden contenerletras acentuadas ni espacios en blanco. Para ejecutar un ﬁchero .m se escribe el nombre de dicho ﬁchero sin extensión en el área de trabajo, y se pulsa enter, ←֓ .2. Variables Introducir variables nos ofrece nuevas posibilidades en MATLAB. Las reglas que se utilizan para nombrar las variablesson las siguientes: MATLAB distingue entre letras mayúsculas y minúsculas. Las variables area, Area, AREA, arEa son variables distintas. El nombre de una variable puede contener un máximo de 31 caracteres ignorándose los posteriores. El nombre de una variable debe empezar necesariamente por una letra, aunque puede contener letras números y el guión de subrayado, nunca puede contener operadores (+,*,...), espacios en blanco ni signos de puntuación. No deben nombrarse variables con funciones con signiﬁcado especíﬁco en MATLAB, por ejemplo cos=3 construye una variable cos cuyo valor es 3, y a partir de este momento no podríamos calcular el coseno de un ángulo hasta que no borrásemos la variable cos.Ejemplo 2 Si queremos calcular el espacio recorrido por un móvil en movimiento rectilíneo y uniforme de velocidadv0 = 5 m/s, para distintos tiempos, es necesario actualizar la variable espacio para cada valor del tiempo:>> v0=5, t=1, s=v0*t>> t=3 %Cambiamos el valor de t>> s %s no se ha actualizado>> s=v0*t %actualización de sObsérvese, por un lado, que en la primera línea se han deﬁnido tres variables, sin más que separarlas por comas y, porotro, que hasta que no se actualice la deﬁnición de la variable s su valor no cambia. 4 6.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. Matemáticas2.1. Información sobre las variables Para obtener información sobre las variables deﬁnidas en una sesión de trabajo se utilizan las órdenes who y whos.La primera muestra las variables que tienen valores asignados, la segunda nos da además información sobre el tamaño yel tipo de dato.>> who>> whosPuede observarse que MATLAB utiliza los escalares como matrices 1 × 1.2.2. Cómo borrar variables La orden clear all borra de la memoria todas las variables deﬁnidas hasta el momento; si a la orden clear se leañade una lista de variables (separadas por espacios en blanco) sólo se borrarán las variables de la lista.>> clear t>> s=v0*t>> whoComo la variable t ha desaparecido MATLAB da un mensaje de error al recalcular s.2.3. Algunas variables predeﬁnidas en MATLAB Algunas variables ya están deﬁnidas en MATLAB: Nombre Signiﬁcado ans Almacena el último resultado no asignado a una variable pi π iyj Unidad imaginaria inf ∞ NaN No es un númeroNaN (Not a Number) representa una expresión indeterminada, como puede verse en el siguiente ejemplo:>> (2-2)/(3-3)3. Trabajando con matrices Como ya se ha comentado, el tipo básico de dato con el que MATLAB trabaja es la matriz, incluso los escalares sonconsiderados como matrices 1 × 1, por lo que es esencial familiarizarse con esta sección.3.1. Vectores Los vectores se introducen escribiendo cada una de sus coordenadas entre corchetes, separadas por un espacio enblanco:>> v=[1 3 pi 1/3]o bien separadas por comas: 5 7.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. Matemáticas>> v=[1,3,pi,1/3]No obstante, existen otras formas de introducir vectores, cuando sus coordenadas guardan alguna relación entre sí: Orden Salida [a:h:b] Vector (a, a + h, a + 2h, . . ., a + nh), donde n es el mayor entero tal que a + nh ∈ [a, b] si h > 0 y a + nh ∈ [b, a] si h < 0. En este caso, los corchetes pueden sustituirse por paréntesis o incluso eliminarse linspace(a,b,n) Vector cuyas coordenadas son los puntos de una partición uniforme del intervalo [a, b]>> v=[1:0.3:2]>> v=(1:-0.4:-0.8)Si se omite el incremento h MATLAB toma por defecto h=1>> v=1:4 En la orden linspace el tercer argumento es opcional, y si no se introduce toma el valor 100:>> v=linspace(0,10)Ejemplo 3 Supongamos ahora que en el ejemplo 2 queremos calcular los espacios recorridos por el móvil a velocidadv0 = 5 m/s, para 5 instantes correspondientes a los 2 primeros segundos del movimiento:>> t=linspace(0,2,5)>> v0=5>> s=v0*tObsérvese que, como cabía esperar, el resultado del producto de un escalar por un vector es el vector de las posicionesen los instantes correspondientes. Si nos interesa conocer las posiciones en instantes de tiempo separados por 0.3 segundos>> t=[0:0.3:2]>> s=v0*t3.2. Matrices Los elementos de una matriz se introducen entre corchetes. Las ﬁlas separadas mediante un punto y coma (;) y loselementos separados por espacios en blanco o comas.>> A=[1 2 3; 3,1,2;1 1 0] Una vez deﬁnida una matriz o un vector, se puede acceder a sus elementos o submatrices con las órdenes: Orden Salida v(i) Coordenada i del vector v v(end) Última coordenada del vector v A(i,j) Elemento de la matriz A que ocupa la posición i,j A(:,j) Columna j de la matriz A A(i,:) Fila i de la matriz A A(v,w) Submatriz de A que contiene las ﬁlas indicadas en las coordenadas de v y las columnas indicadas en w A(i,:)=[ ] Elimina la ﬁla i de la matriz A A(:,j)=[ ] Elimina la columna j de la matriz A A(:,end) Última columna de la matriz A 6 8.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. MatemáticasHaciendo uso de estas órdenes pueden introducirse matrices y vectores elemento a elemento. Al asignarle un valor a unaposición, se construye la matriz o vector de menor tamaño que contiene los elementos introducidos y hace ceros los noasignados.>> B(5)=3>> B(2,4)=5O bien se puede utilizar para modiﬁcar posiciones de una matriz predeﬁnida:>> A=[1 2 3; 4 5 6]>> A(1,2)=5También puede eliminarse ﬁlas y columnas de matrices dadas.>> A=[1 2 3 4 1; 3,1,2 0 2;1 1 0 1 3]>> A(3,4)=100, A(2,5)=200>> B=A>> B(:,2)=[]La matriz B coincide con la matriz obtenida de eliminar la columna 2 de A. Pueden deﬁnirse ciertas matrices con las siguientes órdenes: Orden Salida ones(n) Matriz cuadrada n × n de unos. ones(m,n) Matriz m × n de unos. zeros(n) Matriz cuadrada n × n de ceros. zeros(m,n) Matriz m × n de ceros. eye(n) Matriz identidad n × n. eye(m,n) Matriz m × n con unos en la diagonal principal y el resto ceros.3.3. Deﬁnición de matrices por bloques Dadas dos matrices A y B con el mismo número de ﬁlas, se puede deﬁnir una matriz C formada por todas las columnasde A y de B:>> A=zeros(3)>> B=eye(3,2)>> C=[A B]Análogamente, se puede deﬁnir una matriz a partir de otras dos con el mismo número de columnas:>> A=eye(2,3)>> B=ones(3)>> C=[A;B]Estas dos posibilidades pueden combinarse para formar matrices deﬁnidas por bloques:>> A=[eye(3) ones(3,3);1:6;zeros(2) ones(2,1) eye(2,3)]3.4. Operaciones con vectores y matrices Si A y B son matrices con las dimensiones adecuadas y λ es un escalar, las operaciones habituales se efectúan con lassiguientes órdenes: 7 9.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. Matemáticas Operación Resultado A+B Suma A y B A-B Resta B de A A*B Multiplica A por B A/B Calcula AB−1 AB Calcula A−1 B λ *A Multiplica todos los elementos de A por λ A^n Eleva la matriz A al entero n A.’ Calcula la traspuesta de A A’ Calcula la traspuesta de la conjugada de AAdemás de las operaciones mencionadas, en MATLAB se deﬁnen otras operaciones a las que llamaremos operacioneselemento a elemento: Operación Resultado λ +A Suma a cada elemento de A el escalar λ A.*B Calcula una matriz que en la posición (i, j) contiene el producto ai j bi j de los elementos que en A y B ocupan dicha posición A./B Calcula una matriz que en la posición (i, j) contiene el cociente ai j /bi j de los elementos que en A y B ocupan dicha posición A.^n Eleva cada elemento de la matriz A al entero n b A.^B Calcula una matriz que en la posición (i, j) contiene ai ji j3.5. Funciones que actúan sobre matrices En MATLAB hay una colección de funciones que pueden utilizarse para obtener información y realizar cálculos. Porejemplo, si se escribe» A=eye(3,2)se obtiene una matriz de tres ﬁlas y dos columnas con unos en la diagonal principal y ceros en el resto. El nombre de lafunción es eye, los argumentos de entrada son 3 y 2, la matriz resultante, que tiene por nombre A, es la salida. Las siguientes funciones permiten obtener información sobre las matrices o vectores que tienen como argumentos deentrada 8 10.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. Matemáticas Función Salida size(A) Vector con las dimensiones de la matriz A size(A,1) Número de ﬁlas de la matriz A size(A,2) Número de columnas de la matriz A length(v) Número de coordenadas del vector v length(A) Mayor elemento del vector size(A) rank(A) Rango de la matriz A det(A) Determinante de la matriz A trace(A) Traza de la matriz A inv(A) devuelve la inversa de A, aunque también puede calcularse como A^n sum(A) devuelve un vector ﬁla en el que el elemento i contiene la suma de todos los elementos de la columna i de A prod(A) devuelve un vector ﬁla en el que el elemento i contiene el producto de todos los elementos de la columna i de A dot(u,v) Producto escalar de los vectores u y v cross(u,v) Producto vectorial de los vectores (de tres coordenadas) u y v max(A) devuelve un vector ﬁla en el que el elemento i contiene el máximo de todos los ele- mentos de la columna i de A [m,pos]=max(A) devuelve m vector ﬁla en el que el elemento i contiene el máximo de todos los ele- mentos de la columna i de A, y el vector ﬁla pos en el que almacena la posición en la que se encuentra dicho máximo. min(A) devuelve un vector ﬁla en el que el elemento i contiene el mínimo de todos los ele- mentos de la columna i de A [m,pos]=min(A) devuelve m vector ﬁla en el que el elemento i contiene el mínimo de todos los ele- mentos de la columna i de A, y el vector ﬁla pos en el que almacena la posición en la que se encuentra dicho mínimo. null(A) Devuelve una base del subespacio de las soluciones de un sistema homogéneo colspace Proporciona, por columnas, una base del subespacio generado por los vectores colum- na de la matriz A. Dado que es una función simbólica, el argumento debe ser una variable simbólica. rref(A) Calcula la matriz escalonada reducida de la matriz A poly(A) Calcula el polinomio det(x-AI), expresado como un vector, según potencias de- crecientes. poly(A,x) Calcula el polinomio det(x-AI). x debe ser declarada antes como variable simbóli- ca. eig(A) Calcula los valores propios de A. [P,D]=eig(A) Devuelve la matriz P cuyas columnas son los vectores propios, y la matriz diagonal D formada por los valores propios. Si la matriz A no es diagonalizable, Matlab devuelve una matriz P no regular y una matriz diagonal D formada por los valores propios, de modo que AP=PD. [P,D]=eig(sym(A)) Hace lo mismo que la orden [P,D]=eig(A), pero con la matriz A en formato sim- bólico. orth(A) Devuelve una matriz cuyas columnas forman una base ortonormal del subespacio en- gendrado por las columnas de A   1 2 5Ejemplo 4 Calcula el polinomio det(A − xI) para A =  2 1 −1  3 0 −3Solución>> A=[1 2 5; 2 1 -1; 3 0 -3]A = 1 2 5 9 11.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. Matemáticas 2 1 -1 3 0 -3>> p=poly(A)p = 1 1 -24 12y se obtiene que det(xI − A) = x3 + x2 − 24x + 12. También se puede escribir:>> syms lambda>> A=[1 2 5; 2 1 -1; 3 0 -3]A = 1 2 5 2 1 -1 3 0 -3>> p=poly(A,lambda)p =lambda^3 + lambda^2 - 24*lambda + 12 Obviamente, las funciones matemáticas habituales también están predeﬁnidas en MATLAB, con la única particulari-dad de que actúan sobre vectores o matrices elemento a elemento. MATLAB Función MATLAB Función exp(x) ex abs(x) |x| log(x) ln(x) fix(x) Redondeo hacia cero log10(x) log10 (x) floor(x) Redondeo hacia +∞ log2(x) log2 (x) √ ceil(x) Redondeo hacia −∞ sqrt(x) x round(x) Redondeo hacia el entero más próximo rem(m,n) resto de dividir m entre ny las funciones trigonométricas: MATLAB Fun. MATLAB Fun. MATLAB Func. MATLAB Fun. sin(x) sen(x) asin(x) asen(x) sinh(x) senh(x) asinh (x) asenh(x) cos(x) cos(x) acos(x) acos(x) cosh(x) cosh(x) acosh (x) acosh(x) tan(x) tan(x) atan(x) atan(x) tanh(x) tanh(x) atanh (x) atanh(x) cot(x) cot(x) acot(x) acot(x) coth(x) coth(x) acoth (x) acoth(x) sec(x) sec(x) asec(x) asec(x) sech(x) sech(x) asech (x) asech(x) csc(x) csc(x) acsc(x) acsc(x) csch(x) csch(x) acsch (x) acsch(x)4. Operaciones básicas con números complejos En MATLAB, por defecto, las letras i ó j representan la unidad imaginaria. Obsérvese cómo se introduce el complejo1+i» z=1+i» z=1+j Las operaciones con complejos se realizan igual que con números reales: Suma Resta Multiplicación División Potenciación + - * / ^Ejemplo 5 Calcular los siguientes complejos en forma binómica: 3−i √ (3 + 5i)(4 − i), , (1 + 3i)3 4 + 5i 10 12.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. Matemáticas Solución» (3+5i)*(4-i)» (3-i)/(4+5i)Cuando la parte imaginaria del complejo se involucra alguna función u operación, debe escribirse * entre la parte imagi-naria y la unidad imaginaria:>> (1+sqrt(3)i)^3 %Devuelve un mensaje de error>> (1+sqrt(3)*i)^3>> 1+(1-1/3)i %Devuelve un mensaje de error>> 1+(1-1/3)*iOtras funciones útiles para operar con complejos son las siguientes: Orden Salida real(z) Parte real de z imag(z) Parte imaginaria de z abs(z) Módulo de z conj(z) Conjugado de z angle(z) Argumento que se encuentra en el intervalo ] − π , π ] Si las funciones anteriores trabajan sobre una matriz, devuelven otra matriz del mismo tipo que es el resultado deevaluar la función al actuar sobre el elemento. Todas estas funciones, excepto angle, pueden actuar tanto sobre variables simbólicas como numéricas.5. Programando bucles y condicionales5.1. Operadores relacionales A menudo, según sean los datos que se utilizan, es necesario tomar una decisión sobre las órdenes a ejecutar, por loque resultan de gran utilidad los operadores y bucles que se mencionan a continuación. MATLAB utiliza los operadores relacionales que se describen en la tabla adjunta: Operador Descripción < Menor <= Menor o igual > Mayor >= Mayor o igual == Igual ∼= Distinto | Operador lógico ó & Operador lógico y El símbolo ∼ se obtiene pulsando Alt Gr y 4 simultáneamente y un espacio en blanco. Es importante distinguir el símbolo = de asignación de un valor a una variable, del símbolo == que compara el valorde dos variables. Los operadores relacionales permiten construir expresiones lógicas cuya estructura es expresion1 OpR expresion2 11 13.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. Matemáticasdonde OpR es un relacional y expresion1 y expresion2 son números, matrices (de igual dimensión) o cadenas decaracteres. La respuesta de estas expresiones lógicas es 1 si son verdaderas y 0 cuando son falsas.Ejemplo 6 Construiremos una variable x que almacene el complejo 1 + i, la compararemos con dicho complejo y con elcomplejo 1 + 2i.» x=1+ix = 1.0000 + 1.0000i» x==1+ians = 1» x==1+2ians = 0 En la primera línea se asigna a x el valor 1+i, en la siguiente se compara x con 1+i, y nos devuelve un 1 debido aque la proposición lógica es cierta. En la tercera línea se compara la variable x con 1+2i y nos devuelve un 0 debido a quela proposición lógica es falsa.5.2. Estructuras if-elseif-else-end En ocasiones se quiere ejecutar un conjunto de órdenes solo en el caso de que se veriﬁque cierta condición. Esto seconsigue con las combinaciones de órdenes siguiente if-end, if-else-end e if-elseif-else-end. La estructura if-elseif-else-end se utiliza como sigue:if expresión lógica 1 conjunto de órdenes 1elseif expresión lógica 2 conjunto de órdenes 2elseif expresión lógica 3 conjunto de órdenes 3 . .else conjunto de órdenesendEl conjunto de órdenes 1 se ejecuta si la expresión lógica 1 es verdadera, el conjunto de órdenes 2 se ejecuta si la expresiónlógica 2 es verdadera, etc. Cuando todas las expresiones lógicas son falsas, se ejecuta el conjunto de órdenes que sigue aelse y la expresión lógica 1 es falsa. La orden else puede aparecer o no. También puede aparecer sólo la combinación if-end o la combinaciónif-else-end.Ejemplo 7 Escribir un ﬁchero m llamado ejem1_6.m que calcule la imagen de un complejo z = x + yi por la función:   0  si x=y=0  y + xi si   xy < 0 f (x + yi) = 1 si x = 0, y < 0  y − xi si   xy > 0  y si x = 0, y > 0  12 14.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. Matemáticasz=3-i;if (imag(z)==0)&(real(z)==0) imagen=0;elseif real(z)*imag(z)<0 imagen=imag(z)+real(z)*i;elseif (real(z)==0)&(imag(z)<0) imagen=1;elseif real(z)*imag(z)>0 imagen=imag(z)-real(z)*i;elseif (real(z)==0)&(imag(z)>0) imagen=imag(z);endimagen5.3. La estructura for-end Hasta ahora las órdenes se ejecutaban de forma secuencial, pero pueden existir procesos en los que un conjunto deórdenes se deban ejecutar varias veces, para ello existen los bucles for-end. La sintaxis es la siguiente:for k=x conjunto de órdenesenddonde k es una variable y x es un vector. Al llegar el programa a la orden for la variable k toma como valor la primera coordenada del vector x y se ejecutael conjunto de órdenes. A continuación k toma como valor la segunda coordenada de x y se vuelve a ejecutarconjunto de órdenes. El bucle se repite tantas veces como coordenadas tenga x. Cuando k ha recorrido todas lasposiciones de x el programa seguirá con las órdenes posteriores a end. En el caso de que x sea una matriz, la variable ktomará como valor las distintas columnas de x. Por ejemplo si queremos calcular el valor de k2 , cuando k = 4, 5, 6, escibiríamos:>> for k=[4,5,6] k^2endla salida seríaans = 16ans = 25ans = 365.4. Bucles while-end Su sintaxis es la siguiente:while expresión lógica conjunto de órdenesend 13 15.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. MatemáticasHacen que un conjunto de órdenes se ejecute mientras una expresión lógica sea verdadera. Por ejemplo, si escribimos en un ﬁchero:x=1while x<=11 x=2*xendAl ejecutarlo la salida obtenida esx = 1x = 2x = 4x = 8x = 16Cuando x = 16 ya no se veriﬁca la condición y el bucle termina.6. Ficheros function Dentro de la organización de un programa es muy común la realización de tareas que pueden servir para diferentesprogramas o simplemente la separación en etapas del programa global que se pueden abordar independientemente. Unade las formas de realizar esta división en MATLAB es a través de las function. La característica de la function respecto a los ﬁcheros de órdenes es la utilización de argumentos. Su fun-cionamiento es análogo a muchas de las órdenes del MATLAB, por ejemplo, cuando nosotros ejecutamos>> x = sqrt(16)x = 4la orden sqrt funciona como una function con argumento de entrada (16) y obtenemos un argumentode salida que asociamos a x. Las function se construyen en ﬁcheros .m . Se distinguen de los guiones en la primera orden en donde se debenespeciﬁcar los argumentos function [Argumento(s) de Salida] = nombrefuncion (Arg. Entrada) % líneas de comentarios % que aparecen al ejecutar % help nombrefuncion Órdenes que hacen los cálculos . . . Por norma los nombres de la function y del ﬁchero coincidirán. Es decir, el ﬁchero lo llamamos nombrefuncion.m Para llamar o ejecutar la function se realiza como las órdenes normales 14 16.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. Matemáticas » [Argumento(s) de Salida] = nombrefuncion (Arg. Entrada) Los argumentos tanto de entrada como salida pueden ser varios y se separan por comas. Incluso puede que no loshaya. Los nombres de los argumentos en el ﬁchero function son variables ﬁcticias puesto que esos nombresvan a ser sustituidos por los utilizados en la llamada a la function que son las variable verdaderamente reales.Ejemplo 8 Construir una function raices.m que calcule las raíces de un polinomio de segundo grado ax2 + bx+ c SOLUCIÓN: Se escribe en el ﬁchero raices.mfunction [x1, x2] = raices(a,b,c)%% Función que calcula en x1 y x2 las raíces% de un polinomio de segundo grado% a x^2 + b x + c = 0%disc=sqrt(b*b-4*a*c)x1 = (-b + disc)/(2*a)x2 = (-b - disc)/(2*a)Una vez guardado el ﬁchero raices.m. Se puede llamar>> [x,y] = raices(1,-3,2)x = 2y = 1>> help raices Función que calcula en x1 y x2 las raíces de un polinomio de segundo grado a x^2 + b x + c = 0Debe mencionarse que a las variables de salida se les puede asignar un nombre cualquiera. En este caso, se les hanasignado los nombres x e y. Si se escribe x1 o y1, estas variables no existen y lo mismo sucede con la variable disc.Estas variables sólo están activas dentro de la función raices.7. Cálculo simbólico7.1. Creamos objetos simbólicos y operamos con ellos Función Salida syms crea variables simbólicas sym(x) devuelve x simbólicamente Si se utiliza la instrucción syms para declarar variables, estas se introducen con un espacio en blanco entre ellas.Por ejemplo, syms s t declara simbólicas las variables s y t . Si al ﬁnalizar la lista se escribe real, MatLabconsiderará que estas variables no tienen parte imaginaria, en caso contrario se presuponen complejas. Pueden crearse objetos simbólicos y aplicar las funciones habituales: 15 17.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. Matemáticas » syms x y real %crea las variables simbólicas reales x e y. » f=(x+i*y)^3 %crea la variable simbólica f. » u=imag(f) » v=real(f) En la instrucción anterior las variables x e y tienen el sentido de variables independientes habitual en matemáticas.La variable f sería la variable dependiente, y, como puede observarse, no es necesario declararla. Con el comando sym se pueden obtener constantes simbólicas:» x=sym(pi)y también puede aplicarse a matrices, en cuyo caso trabaja elemento a elemento:» A=sym([1 2/3;pi sqrt(2)])7.2. Cómo borrar variables simbólicas La orden clear, utilizada sobre variables simbólicas, presenta algunas limitaciones. Por ejemplo, si la variable estádeclarada como simbólica real, al borrarla con clear, queda en memoria su carácter real. Veamos un ejemplo:>> syms x real>> imag(x)%Será 0 por ser realans =0>> clear x>> x % Aparentemente borrada??? Undefined function or variable ’x’>> syms x>> imag(x) % vemos que es 0, luego sigue siendo realans =0Para borrar el carácter real de una lista de variables escribiremos syms lista clear. Por ejemplo>> syms x y real>> syms x y clear % Son simbólicas pero ya no son reales.>> imag(x),imag(y)ans =(i*conj(x))/2 - (i*x)/2ans =(i*conj(y))/2 - (i*y)/2>> clear x y % ya quedan perfectamente borradasSi queremos borrar todas las variables de golpe podemos seguir utilizando clear all, pues esta orden también borrael carácter real de las variables. 16 18.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. Matemáticas7.3. Sustituciones en una expresión simbólica y conversión a numérico Función Salida subs substituye una expresión compose(f,g,x,y,z) compone dos funciones simbólicas, f y g, donde la variable independiente de la composición será z y las independientes de f y de g serán respectivamente x e y. Las variables x, y y z son opcionales double obtiene el valor numérico digits especiﬁca el número de dígitos vpa evalúa una expresión con la precisión deseada √Ejemplo 9 Construir f = ax2 + bx + c y sustitúyase x por s2 . Haciendo a = 1, b = 2 y c = 3, obténgase el valor de fpara s = 1 y s = 4.» syms x a b c real» f=a*x^2+b*x+c» syms s real» g=subs(f,x,s^2) %en f sustituye x por s^2» h=subs(g,{a,b,c},{1,2,sqrt(3)}) %substitución múltiple.» k=subs(h,s,[1;4]) %sustituye s por una matriz.» a=1;b=2;c=3;f=subs(f) %Cambia en f a, b, c, por los valores dados. a,b,c dejan de ser simbólicos. √ 3Ejemplo 10 Obtener el valor de f (x, y) = 2x + 5y + 3 en los puntos (0, 0), (0, 1), (0, 2), y (0, 3).» syms x y» f=(2*x+5*y+3)^(1/3)» v=[0 1 2 3];» val=subs(f,{x,y},{0*v,v}) %sustituye (x,y) por (0,v(i))» val=double(val) %pasa val a variable numérica En la parte básica, MATLAB utiliza la aritmética de punto ﬂotante y trabaja con 16 dígitos. Por este motivo, si semanejan números de más decimales, lo que sucede siempre con números irracionales, en cada operación se produce unerror llamado de redondeo. En cálculo simbólico no se produce este tipo de error pues MATLAB no realiza cálculosnuméricos, trabaja simbólicamente. Sí puede producirse un error de redondeo cuando se usa la instrucción double paraconvertir un resultado simbólico a numérico.7.4. Límites, derivadas e integrales simbólicas MatLab calcula límites, suma de expresiones, derivadas e integrales de variables simbólicas. Al hacerlo, si no especi-ﬁcamos otra cosa, considera como variable independiente la variable preferente de la expresión simbólica con la que estátrabajando. La variable preferente en una expresión simbólica es la letra x. Si ésta no interviene en la expresión , seráel carácter más próximo a x en el orden lexicográﬁco que no sea ni la i ni la j. Por esto, no conviene omitir la variablerespecto de la cual se va a realizar la operación. 17 19.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. Matemáticas Orden Salida limit(f,x,a) Calcula l´m f , siendo x variable simbólica; a puede ser la variable inf. ı x→a limit(f,x,a,’right’) Calcula l´m f , siendo x variable simbólica. ı x→a+ limit(f,x,a,’left’) Calcula l´m f , siendo x variable simbólica. ı x→a− b symsum(f,n,a,b) Calcula ∑ f , siendo f una variable simbólica dependiente de la variable sim- n=a bólica n; a y b son los límites donde varía n. (b puede ser la variable inf) ∞ symsum(f,n) Calcula ∑ f , siendo f una variable simbólica dependiente de la variable sim- n=0 bólica n diff(f,u,n) Halla la derivada de orden n (n número entero) respecto a u diff(f,u) Halla la derivada respecto a u int(f,s) Calcula una primitiva de f respecto a s. int(f) Calcula una primitiva de f respecto a la variable por defecto. int(f,s,a,b) Calcula la integral deﬁnida respecto a s entre a y b. int(f,a,b) Calcula la integral deﬁnida respecto a la variable por defecto entre a y b int(f,s,a,b) Calcula la integral deﬁnida respecto a s entre a y b. taylor(f,n,s,a) Calcula el desarrollo de Taylor de f en potencias de s-a de orden n-1. n, s y a pueden omitirse . Si se omite s, considera como variable independiente la preferente. Si se omite a, interpreta a=0. Si se omite n, toma n=5. Conviene señalar que diff puede actuar sobre una matriz. También hay un operador diff que actúa sobre variablesnuméricas (obviamente no calcula la derivada).7.5. Manipulación de expresiones simbólicas En una expresión simbólica f se pueden realizar, entre otras, las siguientes transformaciones: Función Salida collect(f) Agrupa términos mostrando la expresión como un polinomio en la variable preferente collect(f,’s’) Agrupa términos mostrando la expresión como un polinomio en la variable s expand(f) Desarrolla la expresión factor(f) Factoriza la expresión simplify(f) Simpliﬁca la expresión simple(f) Busca la forma más simple de la expresión f. Prueba distintas órdenes de simpliﬁcación y muestra la forma de expresión de f con menor número de caracteres. pretty(f) Muestra f en forma parecida a la tipografía matemática8. Solución de ecuaciones En esta sección vamos a resolver ecuaciones simbólicas mediante la función solve. Mediante esta instrucción MAT-LAB obtiene soluciones de ecuaciones. MATLAB busca soluciones en el campo de los números complejos y cuando nopuede obtener soluciones simbólicas intenta obtener soluciones numéricas. Función Salida solve(p) encuentra soluciones de la ecuación p=0 18 20.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. MatemáticasEjemplo 11 Calcúlense todas las raíces del polinomio z3 + z2 − 4z + 6 La instrucción» syms z» p=z^3+z^2-4*z+6» sol=solve(p)nos da las soluciones de la ecuación. La solución es un vector de tres componentes que hemos guardado con el nombresol. La orden solve no siempre da todas las soluciones como puede comprobarse si se escribe» sol=solve(’sin(x)’)Sólo devuelve sol = 0 .Ejemplo 12 Hallar la solución general de la ecuación az4 + bz2 + c = 0.» sol=solve(’a*z^4+b*z^2+c’,’z’) En el comando solve podemos especiﬁcar cual es la variable que deseamos despejar, en el caso de que halla varias.Así, en la ecuación del ejemplo anterior podemos despejar la b escribiendo» sol=solve(’a*z^4+b*z^2+c’,’b’) También podemos resolver un sistema de ecuaciones.Ejemplo 13 Hallar las soluciones del sistema −90z + 12w + 45z2 + 6z2 w − 12zw + z2 w2 − 2zw2 + 2w2 = −90, w2 − 2w =−5. MATLAB almacena la solución del sistema en una estructura de datos:» sol=solve(’90-90*z+12*w+45*z^2+6*z^2*w-12*z*w+z^2*w^2 -2*z*w^2+2*w^2’,’w^2-2*w+5’) Para obtener los valores de la solución escribimos» sol.w,sol.z En el caso de que en el sistema aparezcan más variables que ecuaciones también podemos elegir qué variables de-seamos despejar.Ejemplo 14 En el sistema ax + by = 0, bx − ay + 1 = 0, despejar las variables a y x en función de las variables y y b.>> syms a x b y real>> ec1=a*x+b*yec1 =a*x+b*y>> ec2=b*x-a*y+1ec2 =b*x-a*y+1 19 21.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. Matemáticas>> S=solve(ec1,ec2,’a’,’x’)S = a: [2x1 sym] x: [2x1 sym]>> solucion=[S.a S.x]solucion =[ (1/2+1/2*(1-4*b^2*y^2)^(1/2))/y, 1/2/b*(-1+(1-4*b^2*y^2)^(1/2))][ (1/2-1/2*(1-4*b^2*y^2)^(1/2))/y, -1/2*(1+(1-4*b^2*y^2)^(1/2))/b]9. Resolución de ecuaciones y sistemas de ecuaciones diferenciales9.1. Resolución de ecuaciones diferenciales Una ecuación diferencial la escribiremos siempre entre comillas simples. En MATLAB, y′ se representa por Dy, y′′ serepresenta por D2y, y′′′ por D3y, etc. d 3y dy Por ejemplo, la ecuación + 4 = sen2 t se escribiría en MATLAB como ’D3y+4*Dy=sin(t)^2’. dt 3 dt Las condiciones iniciales también van entre comillas simples. Por ejemplo, las condiciones y(0) = 1, y′ (0) = 2,y′′ (0) = 3 se escriben ′ y(0) = 1′ , ′ Dy(0) = 2′ , ′ D2y(0) = 3′ . Orden Descripción dsolve(ecuacion,’x’) Devuelve la solución general de una ecuación diferencial respecto de la variable independiente x dsolve(ecuacion,condicion1,condicion2,...,’x’) Devuelve la solución de la ecuación diferencial respecto de la variable independiente x veriﬁcando las condiciones iniciales indicadasEjemplo 15 Resolver el problema y′′ − 4y′ + 3y = 9x2 + 4, y(0) = 6, y′ (0) = 8>> y=dsolve(’D2y-4*Dy+3*y=9*x^2+4’,’y(0)=6’,’Dy(0)=8’,’x’)y =2*exp(3*x)-6*exp(x)+10+8*x+3*x^2Si se omite la variable, el programa interpreta que se trabaja con variable independiente t. d 3y dyEjemplo 16 Resolver la ecuación 3 + 4 = sen2 t dt dt>> clear, syms ty=dsolve(’D3y+4*Dy=sin(t)^2’)y =-1/2*cos(2*t)*C2+1/2*sin(2*t)*C1-3/64*sin(2*t)+1/16*cos(2*t)*t+1/8*t+C3 20 22.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. Matemáticas9.2. Resolución de sistemas de ecuaciones diferenciales Orden Descripción dsolve(ec1,ec2,...,’x’) Devuelve la solución general del sistema de ecuaciones diferenciales de variable in- dependiente x dsolve(ec1,ec2,...,cond1,cond2,..., ’x’) Devuelve la solución del sistema respecto de la variable independiente x veriﬁcando las condiciones iniciales indicadasEjemplo 17 Hallar la solución del problema de valores iniciales u′ = u + 2v u(0) = 2, v(0) = 0 v′ = −2u + v + 2exUtilizando dsolve, haríamos>> syms x, ed1=’Du=u+2*v’; ed2=’Dv=-2*u+v+2*exp(x)’; S= dsolve(ed1,ed2,’u(0)=2’,’v(0)=0’,’x’) S = v: [1x1 sym] u: [1x1 sym]y esto nos indica que MATLAB ha calculado las soluciones y las ha almacenado en la estructura S. De este modo, paradeﬁnirlas bastará escribir: >> u=S.u,v=S.vu =exp(x) + cos(2*x)*exp(x)v =-sin(2*x)*exp(x) También en este caso, si se omite la variable, el programa interpreta que se trabaja con variable independiente t.10. Funciones de tipo numérico10.1. Funciones anónimas Además de deﬁnirlas por medio de un archivo, como ya se ha visto, las funciones de tipo numérico pueden construirsedirectamente en la ventana de comandos utilizando las funciones anónimas. Función Salida f=@(variables)expresión Almacena en f la función deﬁnida en expresión, utilizando como variables independientes las que aparecen en variables matlabFunction(g) Convierte la función simbólica g en una función anónimaEjemplo 18 >> f=@(x)x.^2 %función de la variable xf = @(x)x.^2>> f(3),f([1 2 3])% puedo evaluarla sobre escalares y matricesans = 21 23.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. Matemáticas 9ans = 1 4 9>> syms x y, g=x^2+3*y %es una función simbólicag =x^2 + 3*y>> g_num=matlabFunction(g) %es una función anónimag_num = @(x,y)y.*3.0+x.^210.2. Polinomios En Matlab, un polinomio se deﬁne mediante un vector ﬁla cuyas coordenadas son los coeﬁcientes del polinomio segúnpotencias decrecientes. Por ejemplo, el polinomio p = x2 + 2x + 5 se escribiría p=[1 2 5] . Para trabajar con fraccionespolinómicas, serán útiles la órdenes siguientes: Función Salida conv(p,q) Múltiplica los polinomios p y q [c,R]=deconv(p,q) Divide q por p y devuelve en c el cociente y en R el resto de la divisón [A,r,k]=residue(p,q) Devuelve los elementos de la descomposición en fracciones sim- ples de la fracción p/q x3 + 7x2 − 12xEjemplo 19 Descomponemos en fracciones simples x3 − 2x2 − x + 2>> p=[1 7 -12 0 ];q=[1 -2 -1 2];>> [A r k]=residue(p,q)r = 4.0000 3.0000 2.0000p = 2.0000 -1.0000 1.0000k = 1lo que signiﬁca que p 4 3 2 = 1+ + + q x−2 x+1 x−1 En A se almacenan los coeﬁcientes de las fracciones, en r las raíces del denominador y en k el cociente de la división.11. Gráﬁcos con MatLab11.1. Gráﬁcos 2D MatLab genera los gráﬁcos, tanto 2D como 3D, en una ventana distinta del área de trabajo y del editor de ﬁcheros, eslo que se llama una ventana gráﬁca o ﬁgura, que, por defecto, tiene este aspecto. 22 24.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. Matemáticas La mayor parte de los comandos que se utilizan para construir gráﬁcos llevan implícita la orden de abrir una ventanagráﬁca, no obstante, existen instrucciones que permiten abrir (o cerrar) las ventanas gráﬁcas antes de construir los gráﬁcos.Además, se pueden mantener abiertas varias ventanas gráﬁcas a la vez, una de ellas es la que llamaremos ventana activa,que será la última ventana gráﬁca abierta, aunque esto puede modiﬁcarse a partir de ciertas órdenes o simplemente,pinchando con el ratón en la que queremos que sea la activa. Todas las instrucciones gráﬁcas serán enviadas a la que enese momento es la ventana activa. Las instrucciones básicas son las siguientes: figure Genera una nueva ventana gráﬁca figure(n) Genera la ventana activa que numerará como n y si ya está creada, esta será la activa desde este momento close Cierra la ventana gráﬁca activa close(n) Cierra la ventana gráﬁca número n close all Cierra todas las ventanas gráﬁcas abiertas clf Borra el contenido de la ventana gráﬁca activa, manteniéndola abierta hold on Todos los gráﬁcos de la ventana activa se superpondrán, sin borrar los ya dibujados hold off Reemplaza el gráﬁco antiguo por el nuevo (esta es la opción por defecto) El comando ezplot permite representar curvas utilizando directamente la expresión simbólica de la curva. La curvapuede venir expresada de tres formas: en forma explícita: y = f (x), con x ∈ [a, b] en forma paramétrica: (x(t), y(t)), con t ∈ [a, b] en forma implícita: f (x, y) = 0, con (x, y) ∈ [a, b] × [c, d]Su sintaxis básica es: Explícita donde f contiene la expresión de f (x) y [a,b] es el dominio de la variable x. ezplot(f,[a,b]) Si se omite este último argumento se toma por defecto el intervalo [−2π , 2π ] Paramétrica donde xt e yt contienen la expresión de x(t) e y(t) respectivamente y [a,b] ezplot(xt,yt,[a,b]) es el dominio de la variable t. Si se omite este último argumento se toma por defecto el intervalo [−2π , 2π ] Implícita donde f contiene la expresión de f (x, y) y [a,b,c,d] es el dominio de (x, y). ezplot(f,[a,b,c,d]) Si se omite este último argumento se toma por defecto el intervalo [−2π , 2π ] × [−2π , 2π ] 23 25.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. Matemáticas La instrucción plot es la función clave de la mayor parte de los gráﬁcos 2D en MATLAB y su sintaxis es la siguiente:plot(x,y,s) (la variable s es opcional). Si queremos dibujar n puntos P1 = (x1 , y1 ), P2 = (x2 , y2 ), ... ,Pn = (xn , yn ),x sería [x1 , x2 , . . . , xn ] e y sería [y1 , y2 , . . . , yn ]. Si la variable s no aparece, dibujaría los puntos unidos por segmentos. Lavariable s puede contener un símbolo de cada una de las columnas de la siguiente tabla, encerrados entre apóstrofos: Color Marca Trazo b azul . punto - continuo g verde o círculo : discontinuo r rojo x aspa -. punto y guión y amarillo * asterisco -- discontinuo m magenta s cuadrado k negro d rombo w blanco v triángulo (abajo) ^ triángulo (arriba) < triángulo (izquierda) > triángulo (derecha) p estrella 5 puntas h estrella 6 puntasEjemplo 20 Dibujar la gráﬁca de la función f (x) = x2 + 1, en el intervalo [−3, 3] Primero se construye un vector con las coordenadas x, » x=linspace(-3,3);Es recomendable recordar el ; al ﬁnalizar la instrucción, ya que esto evita que aparezca información innecesaria porpantalla. A continuación se construye el vector que contiene las imágenes de dichos valores por la función f , es decir, el vectorde las coordenadas y » y=x.^2+1;Obsérvese que a la operación elevado a ^ la hemos antecedido de un punto, ya que lo que queremos no es elevar a 2 lamatriz x (que ni tan siquiera estaría deﬁnido), sino elevar a 2 cada elemento de la matriz x. A continuación utilizamos el plot para dibujar la gráﬁca pedida » plot(x,y)Como no hemos incluido la variable s, la gráﬁca resulta ser en azul (color por defecto), con trazo continuo (uniendo los 24 26.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. Matemáticaspuntos por una poligonal) y sin marcas. La gráﬁca obtenida es: La gráﬁca aparece en un rectángulo blanco que en el lenguaje de MATLAB se llama ‘eje’. Una ﬁgura puede tenervarios ejes, al último eje utilizado es al que llamaremos eje activo. Se pueden modiﬁcar los ejes a partir de las siguientesfunciones: Orden Salida axis([xmin xmax ymin ymax]) Los números reales xmin y xmax deﬁnen los límites in- ferior y superior de la coordenada x mientras que ymin e ymax hacen lo propio para la coordenada y axis opción Genera cambios en las escalas de un eje. Si opción es equal utiliza la misma escala en ambas coordenadas, si es square ajusta la ﬁgura a un cuadrado, si es off oculta el eje. zoom Activa la utilidad zoom sobre el gráﬁco, permitiendo realizar una ampliación (reducción) al pulsar el botón izquierdo (derecho) del ratón en una parte del gráﬁco. La utilidad se desactiva volviendo a ejecutar zoom grid on agrega las líneas coordenadas a la representación gráﬁca grid off elimina las líneas coordenadas a la representación gráﬁca, esta es la opción por defecto Estas funciones alteran la visualización de gráﬁca, pero no lo que se ha dibujado. Obsérvese lo que ocurre con lagráﬁca anterior si en el área de trabajo tecleamos: » axis([-1 4 -1 9])se obtiene: 25 27.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. Matemáticas prueba ahora con las siguientes instrucciones: » axis([-3 3 -1 9]) » axis square » axis equal La ventana gráﬁca dispone de un menú que permite modiﬁcar el estilo de las líneas, añadir textos, borrar partes de lagráﬁca... Veamos algunas instrucciones útiles para dibujar complejos: Función Salida plot(z,s) Dibuja el complejo z. La variable s es opcional. (Ver plot sección anterior) polar(a,r,s) La variable s es opcional, a y r son las variables que contienen las co- ordenadas polares de los puntos (ángulo y radio) que se quieren dibujar. Si la variable s no aparece, dibujaría los puntos unidos por segmentos. compass(a,b,s) Dibuja los vectores con origen en el (0,0) y extremos en los puntos de coordenadas (a(i),b(i)). Aquí s es opcional al igual que lo era en plot y polar compass(z) Idéntico a compass(real(z),imag(z)) quiver(x,y,u,v,m) Representa el vector (u,v) con origen en el punto (x,y). La variable m es opcional, y representa una graduación para la longitud del vector, 1 si queremos la longitud real, 0 escalado automático. El valor 0 es el que toma por defecto. Si x,y,u,v son matrices del mismo tipo, dibujará varios vectores a la vezEjemplo 21 Dibújense, en tres ventanas gráﬁcas distintas, los complejos 0, 1 + i y −1 + 3i unidos por segmentos, mar-cados con puntos azules y vectorialmente. » z=[0 1+i -1+3i] » plot(z) » figure » plot(z,’b.’) » figure » compass(z)Ejemplo 22 Dibujar en la misma ventana gráﬁca el triángulo T cuyos vértices son los del ejemplo 21 en azul, en rojo 26 28.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. Matemáticas πel triángulo girado en torno al 0 un ángulo de , en verde el homotético de T de centro 0 y razón 1.5, y en negro su 2trasladado por el vector (0, −1). » z=[z 0]; » plot(z) » hold on » plot(i*z,’r’) » plot(1.5*z,’g’) » plot(z-i,’k’) Otras utilidades gráﬁcas pueden ser las que nos permiten dividir la pantalla en varias subventanas, esto se realiza conla siguiente instrucción: Función Salida subplot(n,m,k) Divide la ventana gráﬁca activa en n × m subventanas y envía el gráﬁco a la subventana número k (se cuenta de izquierda a derecha y de arriba hacia abajo) La forma de activar uno de los ejes generados en la ventana es con la orden subplot. n es el número de ﬁlas en quese divide la pantalla, m es el número de columnas, y k se reﬁere al eje sobre el que se va a enviar la gráﬁca, numera pororden los ejes de izquierda a derecha y de arriba abajo. Obsérvese la numeración en la gráﬁca siguiente: Las gráﬁcas de los distintos ejes pueden ser de distinto tipo:Ejemplo 23 Dibujar en dos subventanas de la misma ventana gráﬁca el complejo z = 1 + i con la instrucción compassy con la instrucción quiver. Creamos un ﬁchero m con las instrucciones siguientes: z=1+i subplot(1,2,1) compass(z) subplot(1,2,2) quiver(0,0,1,1,0) axis equal 27 29.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. Matemáticasobteniendo la siguiente gráﬁca: Se observa que en la misma ventana gráﬁca tenemos dos ejes, en cada momento se activa el que indica el subplot, esdecir subplot(1,2,1) activa el primer eje subplot(1,2,2) activa el segundo eje.11.2. Gráﬁcos 3D11.2.1. Dibujo de curvas La función plot3 es análoga a su homóloga bidimensional plot. Su forma de uso más sencilla es» plot3(x,y,z)dibuja una línea que une los puntos (x(1), y(1), z(1)), (x(2), y(2), z(2)), (x(3), y(3), z(3)), etc. Al igual que en el caso planose puede añadir una cadena con 1, 2 ó 3 caracteres para determinar el color, los marcadores y el tipo de línea. Básicamente,el uso de esta instrucción es como sigue: Función Salida plot3(x,y,z) Si x,y,z son números dibuja el punto de coordenadas (x,y,z), si son vectores dibuja el conjunto de puntos {(x1 , y1 , z1 ), . . . , (xn , yn , zn )} y los enlaza con segmentos. plot3(x,y,z,S) Hace lo mismo que la instrucción anterior, pero con las opciones especiﬁcadas en la variable de carácter S (color, marcas y tipo de trazo) vistas en la sesión 5.Ejemplo 24 Representar la trayectoria σ (t) = ((2 − 2t) cos(4π t), (2 − 2t) sen(4π t), 2t) con t ∈ [0, 2π ]. SOLUCIÓN:» t=linspace(0,2*pi,500);» x=(2-2*t).*cos(4*pi*t);» y=(2-2*t).*sin(4*pi*t);» z=2*t;» plot3(x,y,z)11.2.2. Superﬁcies Vamos a representar a continuación superﬁcies. En general, se puede determinar una superﬁcie por una función de laforma: 28 30.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. Matemáticas f (u, v) = (x(u, v), y(u, v), z(u, v)) con (u, v) ∈ I = [a, b] × [c, d]los puntos imágenes serían los que formarían la superﬁcie. La representación de una superﬁcie en MATLAB se realiza básicamente generando una malla de puntos sobre ella yuniéndolos mediante segmentos o planos para obtener el aspecto de superﬁcie en el sentido habitual. Una malla sobre lasuperﬁcie se construye a partir de una partición del intervalo I. Si a = u1 < u2 < ... < un = b y c = v1 < v2 < ... < vm = del conjunto de puntos (ui , v j ) con i = 1, ..., n y j = 1, ..., m deﬁne la malla en I y los puntos (x(ui , v j ), y(ui , v j ), z(ui , v j )) lamalla sobre la superﬁcie. La malla sobre I se genera con el siguiente comando: Función Salida [U,V]=meshgrid(u,v) A partir de dos vectores u de dimensión n y v de dimensión m. U es una matriz m × n, cuyas ﬁlas son m copias del vector u y V es una matriz m × n, cuyas columnas son n copias del vector vLos puntos donde MATLAB dibuja la función de forma exacta son los f (Ui j ,Vi j ) para cada i = 1, . . . , m y para cadaj = 1, . . . , n, y a dichos puntos les llamaremos nudos de la malla. La forma habitual de proceder es la siguiente: Se deﬁnen los vectores u=linspace(a,b,n) y v=linspace(c,d,m). Se generan las matrices [U,V]=meshgrid(u,v) Se deﬁnen las matrices X=x(U,V), Y=y(U,V), Z=z(U,V), siempre teniendo en cuenta que las operaciones que se realicen con U y V deben realizarse elemento a elemento.Una vez generadas las matrices de coordenadas de los puntos de la malla existen distintos tipos de gráﬁcos que se puedenrealizar, con distintos aspectos.Gráﬁcos de malla La superﬁcie se representa mediante una malla, con un aspecto similar al de una red de pesca, cuyosnudos están situados sobre la superﬁcie correspondiente. La orden básica para este tipo de gráﬁcos es mesh y sus distintasopciones: Función Salida mesh(X,Y,Z,C) Dibuja el gráﬁco con las líneas de rejilla que componen la malla con los colores es- peciﬁcados en C, que debe ser una matriz del mismo tamaño que X, Y y Z. Si se omite este último argumento C = Z meshz(X,Y,Z,C) Representa el gráﬁco anterior, con plano de referencia en el valor mínimo y una es- pecie de ‘cortina’ en los bordes del dominio de la función meshc(X,Y,Z,C) Representa el gráﬁco de malla junto con las curvas de nivel proyectadas en el plano OXY Para observar la diferencia entre los distintos gráﬁcos, ejecuta en el área de trabajo el ﬁchero ej_mesh.Gráﬁcos continuos En este tipo de gráﬁcos, la superﬁcie se representa como una lámina continua, y se genera con lassiguientes órdenes: Función Salida surf(X,Y,Z,C) Dibuja el gráﬁco con los colores especiﬁcados en C, que debe ser una matriz del mismo tamaño que X, Y y Z. Si se omite este último argumento C = Z surfc(X,Y,Z,C) Representa el gráﬁco junto con las curvas de nivel proyectadas en el plano OXY 29 31.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. MatemáticasEjemplo 25 Dibujar la gráﬁca de la función que a cada complejo le asigna su módulo, para complejos con módulo enel intervalo [0, 2π ]. SOLUCIÓN:» r=linspace(0,4);» t=linspace(0,2*pi);» [r,t]=meshgrid(r,t);» X=r.*cos(t);» Y=r.*sin(t);» Z=r;» surf(X,Y,Z) 30 32.
Índice alfabético∞, 5 imag, 11π, 5 int, 18i, 5 inv, 9 j, 5 length, 9A(:,:), 6 limit, 18a:h:b, 6 linspace, 6abs, 10, 11 log, 10angle, 11 log10, 10axis, 25Ayuda, 4 matlabFunction, 21 Matrices por bloques, 7clc, 4 max, 9clear, 5 min, 9clf, 23close, 23 NaN, 5collect, 18 null, 9colspace, 9compass, 26 ones, 7compose, 17 Operaciones básicas, 3conj, 11 Operaciones con matrices, 8conv, 22 Operaciones por elementos, 8cross, 9 Operadores relacionales, 11 orth, 9deconv, 22det, 9 plot, 24diff, 18 polar, 26digits, 17 poly, 9dot, 9 pretty, 18double, 17 prod, 9dsolve, 20 quiver, 26eig, 9 rank, 9exp, 10 real, 11expand, 18 rem, 10eye, 7 residue, 22ezplot, 23 round, 10factor, 18 rref, 9ﬁgure, 23 simple, 18ﬁx, 10 simplify, 18ﬂoor, 10 size, 9for-end, 13 solve, 18funciones anónimas, 21 sqrt, 10Funciones trigonométricas, 10 subplot, 27function, 14 subs, 17grid, 25 sum, 9 sym, 15hold, 23 syms, 15 symsum, 18if-elseif-else-end, 12 31 33.
Universidad de Oviedo Manual de uso de MatLab. EPI de Gijón Curso 2010–2011 Dpto. Matemáticastaylor, 18v(:), 6variable preferente , 17Variables, 4vpa, 17while-end, 13who, 5whos, 5zeros, 7 32 Recommended
Juan Ortiz B
Luis Fernando Heras Portillo: Vinos en Twitter
Catalogo, nov. 2015
MOdelo de Oficioo
nielpatidsk3

References: Resolución 
 Resolución 
 Resolución 
 Resolución 
 Resolución 
 Resolución