Capitulo 2 Arreglos Numericos

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 28

CAPITULO 2

MATRICES NUMÉRICAS, DE CELDA Y ESTRUCTURAS

Uno de los puntos fuertes de MATLAB es la capacidad para manipular colecciones de elementos,
denominados arreglos, como si fueran un solo ente. La función de manejo de arreglos indica que
los programas de MATLAB pueden ser muy cortos.

El arreglo es el bloque de construcción básico en MATLAB. Las siguientes clases de arreglos están
disponibles en MATLAB 7.

Hasta ahora hemos usado solo arreglos numéricos, que son los que contienen solo valores
numéricos. Dentro de la clase numérica están las subclases single (precisión simple), double
(precisión doble), int8,int16,int32, y uint8,uint16, y uint32. Un arreglo carácter es un arreglo que
contiene cadenas. Los elementos de los arreglos lógicos son “true” o “false”, que, si bien están
representados por los símbolos 1 y 0, no son cantidades numéricas. Estudiaremos los arreglos
lógicos en el capitulo 4. Los arreglos de celda y estructura son tratados en las secciones 2.6 y 2.7.
la función función handle será tratada en el capitulo 3. La clase java no es tratada en este texto.

Las primeras cuatro secciones de este capítulo tratan conceptos que son esenciales para
comprender MATLAB y por lo tanto deben ser tratados. La sección 2.5 trata las aplicaciones
polinomiales. Las secciones 2.6 y 2.7 introducen dos tipos de arreglos que son útiles para algunas
aplicaciones especializadas

2.1 ARREGLOS NUMÉRICOS UNÍ Y BIDIMENSIONALES

Podemos representar la ubicación de un punto en un espacio tridimensional por tres coordenadas


cartesianas x, y, y z. estas tres coordenadas especifican un vector p. ( en texto matemático a
menudo usamos negrita para indicar vectores). El conjunto de vectores unitarios i,j,k, cuyas
longitudes es 1 y cuyas direcciones coinciden con los ejes x,y,y z, respectivamente, pueden usarse
para expresar matemáticamente el vector como sigue: p=xi+yj+zk. Los vectores unitarios nos
permiten asociar los vectores componente x,y,z con los ejes de coordenadas adecuados; por lo
tanto; cuando escribimos p=5i+7j+2k, sabemos que las coordenadas x,y,y z del vector son 5,7,y 2
respectivamente. También podemos escribir las componentes en un orden especifico,
separándolas con un espacio, e identificando el grupo con corchetes, como sigue: [5 7 2]. Siempre
que estemos de acuerdo que el vector de componentes se escribirá en el orden x,y,z, podemos
usar esta notación en lugar de la notación de vector unitario. En realidad, MATLAB usa este estilo
para la notación de vector. MATLAB nos permite separar las componentes con comas para facilitar
la legibilidad si deseamos que la forma de escribir el vector anterior es [5,7,2]. Esta expresión es un
vector fila, que es un arreglo horizontal de los elementos.
También podemos expresar el vector como un vector columna, que tiene una disposición vertical.
Un vector puede tener solo una columna, o solo una fila. De esta manera, un vector es un arreglo
unidimensional. En general, los arreglos pueden tener más de una columna y más de una fila.

CREAR VECTORES EN MATLAB

El concepto de un vector puede ser generalizado para cualquier cantidad de componentes. En


MATLAB un vector es simplemente una lista de escalares, cuyo orden de aparición en la lista
podría ser significativo, como cuando se especifica las coordenadas xyz. Como otro ejemplo,
suponer que medimos la temperatura de un objecto una vez cada hora. Podemos representar las
mediciones como un vector, y el décimo elemento en la lista es la temperatura medida en la
décima hora.

Para crear un vector fila en MATLAB, simplemente escribe los elementos dentro de un par de
corchetes. Separando los elementos con un espacio o una coma. Los corchetes son requeridos
para arreglos salvo que uses el operador dos puntos para crear el arreglo. En este caso no debes
usar corchetes, pero opcionalmente puedes usar paréntesis. La elección entre un espacio o una
coma es una cuestión de preferencia personal, aunque la posibilidad de un error es menor si usas
una coma. (puedes también usar una coma seguida por un espacio para máxima legibilidad)

Para crear un vector columna, puedes separar los elementos por punto y comas;
alternativamente, puedes crear un vector fila y luego usar la notación transponer (‘), que convierte
un vector fila en un vector columna, o viceversa. Por ejemplo:

La tercera manera para crear un vector columna es escribir un corchete a la izquierda y el primer
elemento, presionar Enter, escribir el segundo elemento, presionar enter, y asi sucesivamente
hasta que escribas el último elemento seguido por un corchete a la derecha y Enter. En la pantalla
esta secuencia se ve
Note que MATLAB muestra los vectores fila horizontalmente y los vectores columna
verticalmente.

Puedes crear vectores al agregar un vector a otro. Por ejemplo, para crear el vector fila u cuyas
primeras tres columnas contienen los valores de r=[2,4,20] y cuya cuarta, quinta, y sexta columna
contiene los valores de w=[9,-6,3], escribe u=[r,w]. el resultado es el vector u=[2,4,20,9,-6,3].

Los operados dos puntos generan con facilidad un gran vector de elementos espaciados
regularmente. Teclear

Crea un vector x de valores con un espaciamiento q. El primer valor es m. el ultimo valor es n si m-


n es un múltiplo entero de q. si no, el ultimo valor es menor que n. por ejemplo, escribir x=0:2:8
crea el vector x=[0,2,4,6,8], mientras que escribir x=0:2:7 crea el vector x=[0,2,4,6]. Para crear un
vetor fila z que consiste de valores de 5 hasta 8 en pasos de 0.1, escribe z=5:0.1:8. Si el incremento
1 es omitido, se supone ser 1. Asi y=-3:2 genera el vector y=[-3,-2,-1-0-1-2]

El incremento q puede ser negativo. En este caso m debería ser mayor que n. por ejemplo, u=10:-
2:4 genera el vector [10,8,6,4].

El comando linspace también crea un vector hilera espaciado linealmente, pero en cambio
especificas la cantidad de valores en lugar del incremento. La sintaxis es linspace (x1,x2,n), donde
x1 y x2 son los limites inferior y superior y n es la cantidad de puntos. Por ejemplo, linspace
(5,8,31) es equivalente a 5:0.1:8. Si n es omitido, el espaciamiento es 1.

ARREGLOS BIDIMENSIONALES

Un arreglo que tiene filas y columnas es un arreglo bidimensional que a veces se denomina matriz.
En texto matemático, si es posible, los vectores son usualmente denotados por letras minúsculas
en negrita y las matrices por letras mayúsculas en negrita. Un ejemplo de una matriz que tiene tres
filas y dos columnas es

Nos referimos al tamaño de un arreglo por la cantidad de filas y la cantidad de columnas. Por
ejemplo, un arreglo con 3 filas y 2 columnas se dice ser un arreglo 3x2. El numero de filas siempre
se indica de primeras. A veces representaremos una matriz A como [aij] para indicar sus elementos
aij. Los subíndices i y j, denominados índices, indican la ubicación de la fila y la columna del
elemento aij. El numero de fila siempre debe ir primero. Por ejemplo, el elemento a32 esta en la
fila 3, columna 2. Dos matrices A y B son iguales si tienen el mismo tamaño y si todos sus
elementos correspondientes son iguales, esto es, aij=bij para cada valor de i y j.
CREAR MATRICES

La forma más directa para crear una matriz es escribir fila por fila, separando los elementos en una
fila dada con espacios o comas y esperando las filas con punto y coma. Los corchetes son
requeridos. Por ejemplo, escribir

Crea la siguiente matriz:

Si la matriz tiene muchos elementos, puedes presionar Enter y continuar escribiendo en la


siguiente línea. MATLAB sabe que ha terminado de ingresar la matriz cuando escribas el corchete
de cierre (]).

Puedes agregar un vector fila a otro vector fila para crear ya sea un tercer vector fila o una matriz (
si ambos vectores tienen la misma cantidad de columnas). Note la diferencia entre los resultados
dados por [a,b] y [a;b] en la siguiente sesión:

MATRICES Y OPERACIÓN DE TRANSPOSICIÓN

La operación de transposición intercambia las filas y columnas. En texto matemático denotamos


esta operación por el superíndice T. para una matriz A mxn con m filas y n columnas, A T (leer “ A
transpuesta”) es una matriz nxm.

Si AT =A, la matriz A es simétrica. Note que la operación de transposición convierte un vector fila en
un vector columna, y viceversa.
DIRECCIONAMIENTO DE MATRIZ

Los índices del arreglo son el numero de fila y columna de un elemento en un arreglo y son usados
para llevar un seguimiento de los elementos del arreglo. Por ejemplo, la notación v(5) se refiere al
quinto elemento en el vector v, y A(2,3) se refiere a el elemento en la fila 2, columna 3 en la matriz
A. el numero de fila siempre es listado de primeras. Esta notación te permite corregir entradas en
un arreglo sin repetir el arreglo entero. Por ejemplo, para cambiar el elemento en la fila 1,
columna 3 de una matriz D a 6, puedes escribir D(1,3)=6.

El operador dos puntos selecciona elementos individuales, filas, columnas, o sub-arreglos de


arreglos. Aquí están algunos ejemplos:

 v(:) representa todos los elementos de la fila o columna del vector v.


 v(2:5) representa del segundo al quinto elemento, esto es v(2),v(3), v(4), v(5).
 A(:,3) denota todos los elementos en la tercera columna de la matriz A
 A(3,:) denota todos los elementos en la tercera fila de A.
 A(:,2:5) denota todos los elementos de la segunda a la quinta columna de A
 A(2:3,1:3) denota todos los elementos en la segunda y tercera fila que también están en la
primera hasta la tercer columna.
 v= A(:) crea un vector v que consiste de todas las columnas de A apiladas desde la primera
hasta la ultima.
 A(end,:) denota la ultima fila en A, y A(:,end) denota la ultima columna.

El arreglo vacío no contiene elementos y es expresado como []. Las filas y las columnas pueden ser
eliminadas al poner la fila o columna seleccionada igual a el arreglo vacío. Este paso causa que la
matriz original se pliegue a una mas pequeña. Por ejemplo, A(3,:)=[] elimina la tercera fila en A,
mientras que A(:,2:4)=[] elimina la segunda a la cuarta columna en A. finalmente, A([1 4],:)=[]
elimina la primera y cuarta fila de A.

Suponer que escribimos A=[6,9,4;1,5,7] para definir la siguiente matriz:

Escribir A(1,5)=3 cambia la matriz a

Dado que A no tiene cinco columnas, su tamaño es automáticamente expandido para aceptar el
nuevo elemento en la columna 5. MATLAB agrega ceros para completar los elementos restantes.
MATLAB no acepta índices negativos o ceros, pero puedes usar incrementos negativos con el
operador dos puntos. Por ejemplo, escribir B=A(:,5:-1:1) invierte el orden de las columnas en A y
genera

Suponer que C=[-4,12,3,5,8]. Entonces escribir B(2,:)=c remplaza la fila 2 de B con c. Luego B se
convierte en

Suponer que D=[3,8,5;4,-6,9]. Luego escribir E=D([2,2,2],:) repite la fila 2 de D tres veces para
obtener

USAR CLEAR PARA EVITAR ERRORES

Puedes usar el comando clear para protegerse a si mismo de accidentalmente reutilizar un arreglo
que tiene la dimensión incorrecta. Incluso si estableces nuevos valores para un arreglo, algunos
valores previos podrían todavía permanecer. Por ejemplo, suponer que ha creado previamente el
arreglo 2x2 A=[2,5;6,9], y luego crea los arreglos 5x1 x=(1:5)’ y y=(2:6)´. Note que los paréntesis
son necesario aquí para utilizar el operador transponer. Suponga que ahora redefine A para que
sus columnas sean x y y . luego si tu escribes A(:,1)=x para crear la primera columna, MATLAB
muestra un mensaje de error que te dice que la cantidad de filas en A y x deben ser las mismas.
MATLAB piensa que A debería ser una matriz 2x2 porque A fue previamente definida para tener
solo dos filas y sus valores permanecen en memoria. El comando clear borra A y totas las otras
variables de la memoria y evita este error. Para limpiar solamente A, escribir clear A antes de
teclear A(:,1)=x.

ALGUNOS FUNCIONES DE ARREGLOS ÚTILES

MATLAB tiene muchas funciones para trabajar con arreglos (ver tabla 2.1.1). Aquí esta un resumen
de algunas de las funciones más usadas comúnmente.

La función max (A) retorna el elemento mas grande algebraicamente en A si A es un vector que
tiene todos los elementos reales. Retorna un vector fila que contiene los elementos mas grandes
en cada columna si A es una matriz que contiene todos los elementos reales. La sintaxis
[x,k]=max(A) es similar a max (A), pero almacena los valores máximos en el vector fila x y sus
índices en el vector fila k.

Si A y B tienen el mismo tamaño, C= max(A,B) crea un arreglo del mismo tamaño, que tiene el
valor máximo de cada ubicación correspondiente en A y B. por ejemplo, las siguientes matrices A y
B dan la matriz C como se muestra.

La funciones min(A) y [x,y]=min(A) son las mismas que max(A) y [x,k]=max (A) excepto que
retornan los valores mínimos.

La función size (A) retorna un vector fila [m n] que contiene los tamaños del arreglo A mxn. La
función length (A) calcula ya sea la cantidad de elementos de A si A es un vector o el valor mas
grande de m o n si A es una matriz mxn. Por ejemplo, si

Entonces max(A) retorna el vector [6,2]; min(A) retorna el vector [-10,-5]; size (A) retorna
[3,2];lenght (A) retorna 3.

La función sum (A) suma los elementos en cada columna del arreglo A y retorna un vector que
contiene la suma. La función sort (A) ordena cada columna del arreglo A en orden ascendente y
retorna un arreglo del mismo tamaño que A.

La clasificación será realizada en orden descendente si la forma sort (A,’descend´) es usada.

La sintaxis completa de la función sort es sort (A,dim,mode), donde dim selecciona una dimensión
a lo largo de la cual ordenar y mode selecciona la dirección de la clasificación, ‘ascend’ para
ordenar de forma ascendente y ‘descend’ para ordenar de forma descendente. Así, por ejemplo,
sort (A,2,’descend’) debería organizar los elementos en cada fila de A en orden descendente.
MAGNITUD, LONGITUD, Y VALOR ABSOLUTO DE UN VECTOR

Los términos magnitude, length, y absolute value son a menudo usados vagamente todos los días
en lenguaje, pero debes conservar su significado preciso en mente al usar MATLAB. El comando
length da la cantidad de elementos en el vector. La magnitud de un vector que tiene elementos
reales x1,x2,…,xn es un escalar, dado por sqrt (x1^2+x2^2+…+xn^2) y es lo mismo que la longitud
geométrica del vector. El valor absoluto de un vector x es un vector cuyos elementos son los
valores absolutos de los elementos de x. por ejemplo, si x=[2, -4, 5], su longitud es 3, su magnitud
es sqrt (2^2+(-4)^2+5^2)=6.7082; y su valor absoluto es [2,4,5]. La longitud, magnitud, y valor
absoluto de x son calculados por length(x), norm(x), y abs(x), respectivamente.

EL EDITOR DE VARIABLE

El MATLAB Workspace Browser proporciona una interfaz grafica para gestionar el espacio de
trabajo. Puedes usarlo para ver, guardar, y limpiar las variables del espacio de trabajo. Este incluye
la Variable Editor, una interfaz grafica para trabajar con variables, incluyendo arreglos. Para abrir
el Workspace Browser, escribir workspace en el prompt de la ventana de comandos. El explorador
aparece como se muestra en la figura 2.1.1.

Tener en mente que los menús del escritorio son sensibles al contexto. De este modo sus
contenidos cambiaran dependiendo en que características del explorador y Editor variable estas
usando actualmente. El Workspace Browser muestra el nombre de cada variable, su valor, tamaño
del arreglo, y clase. El icono para cada variable ilustra su clase.
Del Workspace Browser puedes abrir el Variable Editor para ver y editar una representación visual
de arreglos numéricos bidimensionales, con las filas y columnas numeradas. Para abrir el Variable
Editor desde la Workspace Browser, dar doble click sobre la variable que deseas abrir. El Variable
Editor se abre, mostrando los valores para la variable seleccionada. El Variable Editor aparece
como se muestra en la figura 2,1,2.

Para abrir una variable, también puedes dar click derecho y usar el menú de contexto. Repetir los
pasos para abrir variables adicionales en el Variable Editor. En el Variable Editor, accedes a cada
variable por su pestaña en la parte superior de la ventana, o use el Window menú. También
puedes abrir el Variable Editor directamente desde la ventana de comandos al escribir open(‘var´),
donde var es el nombre de la variable que será editada. Una vez un arreglo es mostrado en el
Variable Editor, puedes cambiar un valor en el arreglo al dar click en su ubicación, escribir el nuevo
valor, y presionar Enter.

Al hacer click derecho sobre una variable aparece el Cotext menú, que puede ser usado para
editar, guardar, o limpiar la variable seleccionada, o graficar las filas de la variable versus sus
columnas (este tipo de grafica es discutida en el capítulo 5).

2.2 ARREGLOS NUMÉRICOS MULTIDIMENSIONALES

MATLAB soporta arreglos multidimensionales. Para más información, escribir help datatypes.

Un arreglo tridimensional tiene las dimensiones mxnxq. Un arreglo de cuatro dimensiones tiene
las dimensiones mxnxqxr, y así sucesivamente. Las primeras dos dimensiones son la fila y la
columna, como con una matriz. Las dimensiones superiores son llamadas pages. Puedes pensar un
arreglo tridimensional como capas de matrices. La primera capa es la pagina 1; la segunda capa es
la pagina 2, y asi sucesivamente. Si A es un arreglo 3x3x2, puedes acceder el elemento en la fila 3,
columna 2 de la pagina 2 al escribir A(3,2,2). Para acceder a todos los de la pagina 1, escribir
A(:,:,1). Para acceder a todos los de la pagina 2, escribir A(:,:,2). El comando ndims retorna la
cantidad de dimensiones. Por ejemplo, para el arreglo A recientemente descrito, ndims(A) retorna
el valor de 3.

Puedes crear un arreglo multidimensional al crear primero un arreglo bidimensional y luego


extenderlo. Por ejemplo, suponer que deseas crear un arreglo tridimensional cuyas dos primeras
páginas son

Para hacerlo, primero crea la pagina 1 como una matriz 3x3 y luego agrega la pagina 2, como
sigue:
Otra forma para generar tal arreglo es con el comando cat. Escribir cat(n,A,B,C,…) crea un nuevo
arreglo al concatenar los arreglos A, B, y C, y asi sucesivamente a lo largo de la dimensión n. Note
que cat (1,A,B) es lo mismo que [A;B] y que cat (2,A,B) es lo mismo que [A,B]. por ejemplo,
suponer que tenemos los arreglos A y B 2x2:

Luego C=cat(3,A,B) genera un arreglo tridimensional compuesto de dos capas. La primera capa es
la matriz A, y la segunda capa es la matriz B. el elemento C(m,n,p) esta ubicado en la fila m,
columna n, y capa p. asi el elemento C(2,1,1) es 9, y el elemento C(2,2,2) es 3.

Los arreglos multidimensionales son útiles para problemas que involucran una serie de
parámetros. Por ejemplo, si tenemos datos sobre la distribución de temperatura en un objeto
rectangular, podríamos representar las temperaturas como un arreglo T con tres dimensiones.

2.3 OPERACIONES ELEMENTO POR ELEMENTO

Para aumentar la magnitud de un vector, multiplíquelo por un escalar. Por ejemplo, para doblar la
magnitud del vector r=[3 5 2], multiplique cada componente por 2 para obtener [6 10 4]. En
MATLAB escribe v=2*r.

Multiplicar una matriz A por un escalar w genera una matriz cuyos elementos son los elementos
de A multiplicado por w. por ejemplo

Esta multiplicación se realiza en MATLAB como sigue:

De este modo la multiplicación de un arreglo por un escalar es fácilmente definida y fácilmente


llevado a cabo. Sin embargo, la multiplicación de dos arreglos no es tan sencilla. En realidad,
MATLAB usa dos definiciones de multiplicación: (1) multiplicación de arreglo y (2) multiplicación de
matriz. La división y exponenciación también debe ser definida cuidadosamente cuando estas
abordando con operaciones entre dos arreglos. MATLAB tiene dos formas de operaciones
aritméticas en arreglos. En esta sección introducimos una forma, denominada array operations, la
cual también se denomina operaciones elemento por elemento. En la siguiente sección
introducimos las operaciones de matriz. Cada forma tiene sus propias aplicaciones, que
ilustraremos, por ejemplos.
SUMA Y RESTA DE ARREGLOS

La suma de arreglos puede ser realizada al agregar o sumar los componentes correspondientes.
Para agregar los arreglos r=[3,5,2] y v=[2,-3,1] para crear w en MATLAB, escribe w=r+v. el
resultado es w=[5,2,3].

Cuando dos arreglos tienen mismo tamaño, su suma o diferencia tiene el mismo tamaño y se
obtiene al sumar o restar sus elementos correspondientes. Asi C=A+B implica que cij=aij+bij si los
arreglos son matrices. El arreglo C tiene el mismo tamaño que A y B. por ejemplo,

La sustracción de arreglo se realiza de la misma forma.

La suma que se muestra en la ecuacion 2.3.1 se realiza en MATLAB como sigue:

La suma y sustracción de arreglos requiere que ambos arreglos sean del mismo tamaño. La única
excepción a esta regla en MATLAB ocurre cuando agregamos y sustraemos un escalar hacia o
desde un arreglo. En este caso el escalar es agregado o sustraído de cada elemento en el arreglo.

MULTIPLICACIÓN ELEMENTO POR ELEMENTO

MATLAB define la multiplicación elemento por elemento solo para arreglos que son del mismo
tamaño. La definición del producto x.*y, donde x y y cada uno tiene n elementos, es
Si x y y son vectores fila, por ejemplo, si

Entonces z=x.*y da

Este tipo de multiplicación algunas veces es llamada multiplicación de arreglos.

Si u y v son vectores columna, el resultado de u.*v es un vector columna.

Note que x’ es un vector columna con tamaño 3x1 y de este modo no tiene el mismo tamaño que
y, cuyo tamaño es 1x3. Asi para los vectores x y y las operaciones x’.*y y y.*x’ no están definidas en
MATLAB y generara un mensaje de error. Con la multiplicación elemento por elemento, es
importante recordar que el punto (.) y el estarisco (*) forman un símbolo (.*). Podría haber sido
mejor tener definido un único símbolo para esta operación, pero los desabolladores de MATLAB
estaban limitados por la selección de símbolos en el teclado.

La generalización de la multiplicación de arreglos para arreglos con mas de un fila o columna es


sencilla. Ambos arreglos deben tener el mismo tamaño. Las operaciones de arreglos son realizadas
entre los elementos en ubicaciones correspondientes en los arreglos. Por ejemplo, la operación de
la multiplicación de arreglos A.*B resulta en una matriz C que tiene el mismo tamaño que A y B y
tiene los elementos cij=aij*bij. Por ejemplo, si

Entonces C=A.*B da este resultado:

VECTORES Y DESPLAZAMIENTO

Suponer dos buzos que inician en la superficie y establecen el siguiente sistema de coordenadas: x
es hacia el oeste, y es hacia el norte, y z esta abajo. El primer buzo nada 55 ft al oeste, 36 ft al
norte, y luego bucea 25 ft. El segundo buzo bucea 15 ft, luego nada 20 ft al este y luego 59 ft al
norte. (a) encontrar la distancia entre el buzo 1 y el punto de inicio. (b) Cuan lejos en cada
dirección debe el buzo 1 nadar para alcanzar al buzo 2? ¿Cuán lejos en una línea recta debe el
buzo 1 nadar para alcanzar al buzo 2?

SOLUCION
FUNCIONES VECTORIZADAS

Las funciones incorporadas en MATLAB tales como sqrt(x) y exp(x) automáticamente operan sobre
los argumentos del arreglo para producir un arreglo del mismo tamaño que el arreglo argumento
x. De esta manera estas funciones se dicen ser funciones vectorizadas.

Asi, cuando multipliquemos o dividamos estas funciones, o cuando las elevamos a una potencia,
debes usar operaciones elemento por elemento si los argumentos son arreglos. Por ejemplo, para
calcular z=(eysinx)cos2x, debes escribir z=exp(y).*sin(x)*(cos(x)).^2. Obviamente, te dará un
mensaje de error si el tamaño de x no es el mismo que el tamaño de y. el resultado z tendrá el
mismo tamaño que x y y.

DIVISIÓN ELEMENTO POR ELEMENTO

La definición de la división elemento por elemento, también denominada división de arreglo, es


similar a la definición de multiplicación de arreglo excepto, por supuesto, que los elementos de un
arreglo son divididos por los elementos del otro arreglo. Ambos arreglos deben ser del mismo
tamaño. El símbolo para la división derecha de arreglo es ./. por ejemplo, si

Luego z=x./y da

También, si

Entonces C=A./B da
El operador división izquierda de arreglo (.\) está definido para realizar división elemento por
elemento usando división izquierda. Consulte la tabla 2.3.1 para ejemplos. Note que A.\B no es
equivalente a A./B.

EXPONENCIACIÓN ELEMENTO POR ELEMENTO

MATLAB nos permite no solo elevar arreglos a potencias, sino que también elevar escalares y
arreglos a potencias de arreglo. Para realizar la exponenciación sobre una base elemento por
elemento, debemos usar el símbolo.^. por ejemplo, si x=[ 3 5 8], entonces escribir x.^3 produce el
arreglo [33 53 83] = [27 125 512]. Si x=0:2:6, entonces escribir x.^2 retorna el arreglo [0 2 22 42 62]=[0
4 16 36]. Si

Luego B=A.^3 da este resultado:

Podemos elevar un escar a una potencia de arreglo. Por ejemplo, si p=[ 2 4 5], luego escribir 3.^p
produce el arreglo [32 42 52]=[9 81 243]. Este ejemplo ilustra una situación común que ayuda a
recordar que .^es un símbolo único; el punto en 3.^p no es un punto decimal asociado con el
numero 3. Las siguientes operaciones, con el valor de p dado ahí, son equivalentes y dan la
respuesta correcta:

Con la exponenciación de arreglo, la potencia puede ser un arreglo si la base es un escalar o si las
dimensiones de la potencia son la misma que las dimensiones de la base. Por ejemplo, si, x=[ 1 2 3]
y y=[2 3 4], luego y.^x da la respuesta [2 9 64]. Si A= [ 1 2 3 4], luego 2.^A da el arreglo [2 4 8 16].

CORRIENTE Y DISIPACIÓN DE POTENCIA EN RESISTENCIAS

La corriente i que pasa a través de una resistencia eléctrica tiene un voltaje v a través de ella que
esta dado por la ley de ohm, i=v/R, donde R es la resistencia. La potencia disipada en la resistencia
esta dada por v^2/R. la siguiente tabla proporciona los datos para la resistencia y voltaje para
cinco resistencias. Use los datos para calcular (a) la corriente en cada resistencia y (b) la potencia
disipada en cada resistencia.

EJEMPLO 2.3.5

Considerar un sistema para calentar una solución liquida benceno/tolueno para destilar un vapor
puro de benceno. Una unidad particular de destilación batch es cargada inicialmente con 100 mol
de una mezcla 60 porciento mol de benceno/ 40 porciento mol de tolueno. Sea L(mol) la cantidad
de liquido restante en el alambique, y sea x (molB/mol) la fracción mol de benceno en el liquido
restante. La conservación de la masa para el benceno y tolueno puede ser aplicado para derivar la
siguiente relación.

Determine la fracción molar de benceno que queda cuando L=70. Note que se dificulta resolver
esta ecuación directamente para x. usar una grafica de x versus L para resolver el problema.

2.4 OPERACIONES DE MATRICES

La adición y sustracción de matrices es idéntica a la adición y sustracción para elemento por


elemento. Los elementos correspondientes de la matriz son sumados o sustraídos. Sin embargo,
la multiplicación o división de matrices no son las mismas que la multiplicación y división de
elemento por elemento.

MULTIPLICACIÓN DE VECTORES

Recordar que los vectores son simplemente matrices con una fila o una columna. De este modo los
procedimientos de multiplicación y división de matriz se aplican a vectores también, e
introduciremos la multiplicación de matriz al considerar primero el caso vectorial.

El producto punto vectorial u ∙ w de vectores u y w es un escalar y se puede pensar como la


proyección perpendicular de u sobre w. se puede calcular de |u||w|cos θ , donde θ es el ángulo
entre los dos vectores y |u||w|, son las magnitudes de los vectores. Así, sin los vectores son
paralelos y están en la misma dirección, θ=0 y u ∙ w=|u||w|. Si los vectores son perpendiculares,
θ=90 ° y así u ∙ w =0.
Ya que los vectores unitarios i,j, y k tiene longitud unitaria,
Dado que los vectores unitarios son perpendiculares,

Así el producto punto vectorial puede ser expresado en términos de vectores unitarios como

Llevando a cabo la multiplicación algebraica y usando las propiedades dadas en 2.4.1 y 2.4.2,
obtenemos

El producto matricial de un vector fila u con un vector columna w esta definido de la misma forma
como el producto punto vectorial; el resultado es un escalar que es la suma de los productos de
los elementos vectoriales correspondientes, esto es,

Si cada vector tiene tres elementos. De este modo el resultado de multiplicar un vector 1x3 por un
vector 3x1 es un arreglo 1x1, que es, un escalar. Esta definición aplica para vectores que tienen
cualquier cantidad de elementos, siempre que ambos vectores tengan la misma cantidad de
elementos.

Asi el resultado de multiplicar un vector 1xn por un vector nx1 es un arreglo 1x1, esto es, un
escalar.

MULTIPLICACIÓN VECTOR MATRIZ

No todos los productos de matrices son escalares. Para generalizar la multiplicación anterior para
un vector columna multiplicado por un matriz, pensar la matriz como compuesta de vectores fila.
El resultado escalar de cada multiplicación fila-columna forma un elemento en el resultado, que es
un vector columna. Por ejemplo

Así el resultado de multiplicar una matriz 2x2 por un vector 2x1 es un arreglo 2x1, esto es, un
vector columna. Note que la definición de multiplicación requiere que la cantidad de columnas en
la matriz sea igual a la cantidad de filas en el vector. En general, el producto Ax, donde A tiene p
columnas, es definido solo si x tiene p filas. Si A tiene m filas y x es un vector columna, el resultado
de Ax es un vector con m filas.

MULTIPLICACIÓN MATRIZ-MATRIZ

Podemos expandir esta definición de multiplicación para incluir el producto de dos matrices AB. La
cantidad de columnas en A debe ser igual a la cantidad de filas en B. las multiplicaciones fila-
columna forman vectores columna, y estos vectores columna forman la matriz resultante. El
producto AB tiene la misma cantidad de filas que A y la misma cantidad de columnas que B. por
ejemplo,

Usar el operador * para realizar la multiplicación de matriz en MATLAB. La siguiente sesión de


MATLAB muestra cómo realizar la multiplicación de matriz que se muestra en 2.4.4

La multiplicación elemento por elemento está definida para el siguiente producto:

Sin embargo, este producto no esta definido para la multiplicación de matriz, porque la primera
matriz tiene tres columnas, pero la segunda matriz no tiene tres filas. Así si hubiéramos escrito [3 1
7]*[4 6 5 en MATLAB, recibiríamos un mensaje de error.
EVALUACIÓN DE FUNCIONES MULTIVARIABLES

Para evaluar una función de dos variables, decir, z=f(x,y), para los valores de x=x1,x2,…,xn y
y=y1,y2,…,yn, definimos las matrices mxn:

Cuando la funcion z=f(x,y) es evaluadaa en MATLAB usando operaciones de arreglo, la matriz mxn
resultante z tiene los elementos zij=f(xij,yij). Podemos extender esta técnica para funciones de mas
de dos variables al usar arreglos multidimensionales.

EJEMPLO 2.4.3 ANÁLISIS DE COSTOS DE FABRICACIÓN

La tabla 2.4.2 muestra el costo por hora de cuatro tipos de procesos de fabricación. También
muestra la cantidad de horas requeridas por cada proceso para producir tres diferentes productos.
Usar matrices y MATLAB para resolver lo siguiente. (a) determinar el costo de cada proceso para
producir 1 unidad del producto 1. (b) determine el costo para hacer 1 unidad de cada producto. (c)
suponer que producimos 10 unidades del producto 1, 5 unidades del producto 2, y 7 unidades del
producto 3. Calcular el costo total.

SOLUCION

(a) El principio básico que podemos usar aquí es que el costo es igual al costo por hora
multiplicado por el numero de horas requeridas. Por ejemplo, el costo de usar el lathe
para el producto 1 es ($10/hr)(6hr)=60$, y así sucesivamente para los otros tres procesos.
Si definimos que el vector fila de costo por hora es hourly_costs y definimos el vector fila
de horas requeridas para el producto 1 es hours_1, luego podemos calcular los costos para
cada proceso para el producto1 usando la multiplicación elemento por elemento. En
MATLAB la sesión es:
Estos son los costos de cada uno de los cuatro procesos para producir 1 unidad del
producto 1.
(b) Para calcular el costo total de 1 unidad del producto 1, podemos usar los vectores
hourly_costs y hours_1 para aplicar la multiplicación de matriz en lugar de la
multiplicación elemento por elemento, ya que la multiplicación dematriz suma los
productos individuales. La multiplicación de matriz da

Podemos realizar la multiplicación similar para los productos 2 y 3, usando los datos en la
tabla. Para el producto 2:

Para el producto 3:

Estas tres operaciones pudieron haber sido logradas en una operación al definir una matriz
cuyas columnas están formadas por los datos de las tres ultimas columnas de la tabla:

En MATLAB la sesión continua como sigue. Recordar que debemos usar la operación de
trasposición para convertir los vectores fila en vectores columna.

De este modo el costo para producir 1 unidad de los productos 1,2 y 3 son 162, 114, y 149,
respectivamente.
(c) Para calcular el costo total para producir 10,5, y 7 unidades, respectivamente, podemos
usar la multiplicación de matriz:

En MATLAB la sesión continua como sigue. Note que el uso del operador de transponer
sobre el vector unit_cost.

El costo total es $3233.

EL CASO GENERAL DE MULTIPLICACIÓN DE MATRIZ

Podemos indicar el resultado general para una multiplicación de matriz como sigue: Suponer que
A tiene dimensiones mxp y B tiene dimensiones pxq. Si C es el producto AB, entonces C tiene
dimensiones mxq y sus elementos están dados por

Para toda i=1,2,…,m y j=1,2,…,q. Para que el producto sea definido, las matrices A y B deben ser
conformable, esto es, la cantidad de filas en B debe ser igual a la cantidad de columnas en A. el
producto tiene la misma cantidad de filas que A y la misma cantidad de columnas que B.

La multiplicación de matriz no tiene la propiedad conmutativa, esto es, en general, AB ≠BA. Invertir
el orden de la multiplicación de matriz es un error común y fácil de cometer.

Las propiedades asociativa y distributiva se cumplen para la multiplicación de matriz. La propiedad


asociativa indica que

La propiedad distributiva indica que


MATRICES ESPECIALES

Dos excepciones a la propiedad no conmutativa son la matriz nula, denotada por 0, y la identidad,
o unidad, matriz, denotado por I. La matriz nula contiene todos ceros y no es la misma que la
matriz vacía [], la cual no tiene elementos. La matriz identidad es una matriz cuadrada cuyos
elementos de la diagonal son todos iguales a 1, con los elementos restantes iguales a 0. Por
ejemplo, la matriz identidad 2x2 es

Estas matrices tienen las siguientes propiedades:

MATLAB tiene comandos específicos para crear varias matrices especiales. Escribir help specmat
para ver la lista de comandos de matrices especiales; también verificar la tabla 2.4.5.

La matriz identidad puede ser creada con el comando eye(n), donde n es la dimensión deseada de
la matriz. Para crear la matriz identidad 2x2, escribir eye(2). Escribir eye(size(A)) crea una matriz
identidad que tiene la misma dimensión que la matriz A.

A veces queremos inicializar una matriz para que tenga todos los elementos cero. El comando
zeros crea una matriz de todos ceros. Escribir zeros(n) crea una matriz nxn de ceros, mientras que
escribir zeros(m,n) crea una matriz mxn de ceros, al igual que escribir A(m,n)=0. Escribir zeros
(size(A)) crea una matriz de todos ceros que tiene la misma dimensión que la matriz A. este tipo de
matriz puede ser útil para aplicaciones en las cuales no conozcamos la dimensión requerida antes
de tiempo. La sintaxis del comando ones es el mismo, excepto que crea arreglos llenados con
unos.

Por ejemplo, para crear y graficar la función:


El archivo script es:

(Considere como la gráfica se vería si el comando plot (x,f) fuera remplazado con el comando plot
(x1,f1,x2,f2,x3,f3) )

ECUACIONES ALGEBRAICAS LINEALES Y DIVISIÓN DE MATRIZ

La división de matriz utiliza los operadores división a la derecha y a la izquierda, / y \, para varias
aplicaciones, un principal es la solución de conjuntos de ecuaciones algebraicas lineales. El capitulo
8 trata un tema relacionado, la matriz inversa.

Puedes usar el operador división a la izquierda (\) en MATLAB para resolver conjuntos de
ecuaciones algebraicas lineales. Por ejemplo, considere el conjunto

Para resolver tales conjuntos en MATLAB debes crear dos arreglos; los llamaremos A y B. el arreglo
A tiene tantas filas como ecuaciones haya y tantas columnas como variables haya. Las filas de A
deben contener los coeficientes de x,y,y z en este orden. En este ejemplo, la primera fila de A debe
ser 6 12 4; la segunda fila debe ser 7 -2 3; y la tercera fila debe ser 2 8 -9. El arreglo B contiene las
constantes en el lado derecho de la ecuación; tiene una columna y tantas filas como ecuaciones
haya. En este ejemplo, la primera fila de B es 70, la segunda es 5, y la tercera es 64. La solución se
obtiene al escribir A\B. la sesión es:

La solución es x=3,y=5, y z=-2.

El método división a la izquierda trabaja bien cuando el conjunto de ecuaciones tiene una solución
única. Para aprender como lidiar con problemas que tiene solución no única (o quizás no hay
solución en absoluto), ver el capítulo 8.

EXPONENCIACIÓN DE MATRIZ

Elevar una matriz a una potencia es equivalente a multiplicar repetidamente la matriz por si
misma, por ejemplo, A2=AA. Este proceso requiere que la matriz tenga la misma cantidad de filas
como de columnas; esto es, debe ser una matriz cuadrada. MATLAB usa el símbolo ^para la
exponenciación de matriz. Para encontrar A 2, escribir A^2.

Podemos elevar un escalar n a una matriz potencia A, si A es cuadrada, al escribir n^A, pero las
aplicaciones para tal procedimiento están en cursos avanzados. Sin embargo, elevar una matriz a
una matriz potencia, estos son, AB no está definido, incluso si A y B son cuadradas.

PRODUCTOS ESPECIALES

Muchas aplicaciones en física e ingeniería usan el producto cruz y el producto punto; por ejemplo,
cálculos para calcular momentos y componentes de fuerza usan estos productos especiales. Si A y
B son vectores con tres elementos, el comando producto cruz cross(A,B) calcula el vector de tres
elementos que es el producto cruz de AXB. Si A y B son matrices 3xn, cross (A,B) retorna un arreglo
3Xn cuyas columnas son los productos cruz de las columnas correspondientes en los arreglos 3xn A
y B. por ejemplo, el momento M con respecto a un punto de referencia O debido a la fuerza F es
dado por M=rxF, donde r es el vector posición desde el punto O hasta el punto donde la fuerza F
es aplicada. Para encontrar el momento en MATLAB, escribe M=cross(r,F).

El comando producto punto dot (A,B) calcula un vector fila de longitud n cuyos elementos son los
productos puntos de las columnas correspondientes de los arreglos mxn A y B. para calcular la
componente de la fuerza F a lo largo de la dirección dada por el vector r, escribe dot (F,r).

2.5 OPERACIONES CON POLINOMIOS USANDO ARREGLOS


MATLAB tiene algunas herramientas convenientes para trabajar con polinomios. Escribir help
polyfun para mayor información sobre esta categoría de comandos. Usaremos la siguiente
notación para describir un polinomio:

Podemos describir un polinomio en MATLAB con un vector fila cuyos elementos son los
coeficientes del polinomio, iniciar con el coeficiente de la mayor potencia de x. este vector es
[a1,a2,a3,…,an,an+1]. Por ejemplo, el vector [4 -8 7 -5] representa el polinomio 4x 3-8x2+7x-5.

Las raíces del polinomio pueden encontrarse con la función roots(a), donde a es el arreglo que
contiene los coeficientes del polinomio. Por ejemplo, para obtener las raíces de x 3+12x2+45x+50=0,
escribe y=roots ([1 12 45 50]). La respuesta (y) es un arreglo columna que contiene los valores -2,-
5,-5.

La función poly (r) calcula los coeficientes del polinomio cuyas raíces son especificadas en el
arreglo r. el resultado es un arreglo fila que contiene los coeficientes del polinomio. Por ejemplo,
para encontrar el polinomio cuyas raíces son 1 y 3±5i, la sesión es:

Así el polinomio es x3-7x2+40x-34.

ADICIÓN Y SUSTRACCIÓN DE POLINOMIO

Para agregar dos polinomios, agregar los arreglos que describen sus coeficientes. Si los polinomios
son de diferentes grados, agregar ceros al arreglo de coeficientes del polinomio de menor grado.
Por ejemplo, considerar

Cuyo arreglo de coeficientes es f=[9 -5 3 7] y

Cuyo arreglo de coeficientes es g=[6 -1 2]. El grado de g(x) es 1 menos que el de f(x). por lo tanto,
para añadir f(x) y g(x), agregaremos un cero a g para “engañar” a MATLAB en pensar que g(x) es un
polinomio de tercer grado. Esto es, escribimos g=[0 g] para obtener [0 6 -1 2] para g. este vector
representa g(x)=0x3+6x2-x+2. Para agregar los polinomios, escribir h=f+g. el resultado es h=[9 1 2
9], que corresponde a h(x)=9x3+x2+2x+9. La sustracción se realiza de una manera similar.

MULTIPLICACIÓN Y DIVISIÓN DE POLINOMIO


Para multiplicar un polinomio por un escalar, simplemente multiplicar el arreglo de coeficientes
por el escalar. Por ejemplo, 5h(x) está representado por [45 5 10 45].

La multiplicación y división de polinomios se realiza fácilmente con MATLAB. Usar la función conv
(representa “convolve”) para multiplicar polinomios y usar la función deconv (deconv representa
“deconvolve”) para realizar la división sintética. La tabla 2.5.1 resume estas funciones, así como
también las funciones poly,polyval, y roots.

El producto de los polinomios f(x) y g(x) es

Dividir f(x) por g(x) usando la división sintética da un cociente de

Con un residuo de -0.5833x+8.1667. Aquí está la sesión de MATLAB para realizar estas
operaciones.
Las funciones conv y deconv no requieren que los polinomios sean del mismo grado, así no
tenemos que engañar a MATLAB como hacíamos cuando sumábamos los polinomios.

GRAFICAR POLINOMIOS

La función polyval (a,x) evalua un polinomio en valores específicos de su variable independiente x,


la cual puede ser un vector o matriz. Los coeficientes del polinomio están en a. el resultado es del
mismo tamaño que x. por ejemplo, para evaluar el polinomio f(x)=9x 3-5x2+3x+7 en los puntos
x=0,2,4,…,10 escribir

El vector resultante f contiene seis valores que corresponden a f(0), f(2), f(4),…,f(10).

La función polyval es muy útil para graficar polinomios. Para hacer esto, debes definir un arreglo
que contiene muchos valores de la variable independiente x en orden para obtener una curva
suave. Por ejemplo, para graficar el polinomio f(x)=9x 3-5x2+3x+7 para -2≤x≤5, escribir

Las derivadas e integrales de polinomios son tratadas en el capítulo 9.

EJEMPLO 2.5.1 DISEÑO DE EDIFICIOS RESISTENTES A TERREMOTOS

El diseño de edificios para resistir terremotos debe tener frecuencias naturales de vibración que
no están cerca de la frecuencia de oscilación del movimiento del suelo. Una frecuencia natural del
edificio está determinada principalmente por las masas de sus pisos y por la rigidez lateral de sus
columnas de soporte (que actúan como resortes horizontales). Podemos encontrar estas
frecuencias al resolver para las raíces de un polinomio denominado polinomio característico de
estructura (los polinomios característicos son discutidos más en el capitulo 9). La figura 2.5.1
muestra el movimiento exagerado de los pisos de un edificio de tres plantas. Para tal edificio, si
cada piso tiene una masa m y las columnas tienen rigidez k, el polinomio es

Donde ∝=k /4 m π 2. Las frecuencias naturales del edificio en ciclos por segundo son las raíces
positivas de esta ecuación. Encontrar las frecuencias naturales del edificio en ciclos por segundo
para el caso donde m=1000kg y k=5x106 N/m
SOLUCIÓN

El polinomio caracteristico consiste de sumas y productos de polinomios de menor grado.


Podemos usar este hecho para que MATLAB haga el algebra por nosotros. El polinomio
caracteristico tiene la forma

Donde

El archivo script es

Las raíces positivas resultantes y de este modo las frecuencias, se redondean al entero más
cercano, son 20 14, y 5 Hz
2.6 ARREGLOS DE CELDA

El arreglo celda es un arreglo en el cual cada elemento es un contenedor, o celda, que puede
contener un arreglo. Puedes almacenar diferentes clases de arreglos en un arreglo celda, y puedes
agrupar conjuntos de datos que están relacionados, pero tienen diferentes dimensiones. Accede a
los arreglos celdas usando las mismas operaciones indexadas usadas con arreglos ordinarios.

2.7 ARREGLOS DE ESTRUCTURA

Los arreglos de estructura están compuestos de estructuras. Esta clase de arreglos te permite
almacenar arreglos diferentes juntos. Se accede a los elementos de las estructuras mediante
campos nombrados. Esta característica los distingue de los arreglos celda, que se accede usando
las operaciones indexadas estándar de arreglo.

PROBLEMAS

1. a. Use dos métodos para crear el vector x que tiene 100 valores espaciados regularmente,
inicia en 5 y termina en 28.

b. use dos métodos para crear el vector x que tiene un espaciamiento regular de 0.2 que
inicie en 2 y termine en 14

También podría gustarte