top of page

OPERACIÓN CON MATRICES Y VECTORES.

Ya se ha comentado que MATLAB es fundamentalmente un programapara cálculo matricial. Inicialmente se utilizará MATLAB como programa interactivo, en el que se irán definiendo las matrices, los vectores y las expresiones que los combinan y obteniendo los resultados sobre la marcha. Si estos resultados son asignados aotras variables podrán ser utilizados posteriormente en otras expresiones. En este sentido MATLAB sería como una potente calculadora matricial (en realidad es esto y mucho más...). Antes de tratar de hacer cálculos complicados, la primera tarea será aprender a introducir matrices y vectores desde el teclado. Más adelante se verán otras formas más potentes de definir matrices y vectores.

Definición de matrices desde teclado.

Como en casi todos los lenguajes de programación, en MATLAB las matrices y vectoresson variablesque tienen nombres. Ya se verá luego con más detalle las reglas que deben cumplir estos nombres. Por el momento se sugiere que se utilicen letras mayúsculas para matrices y minúsculas para vectores y escalares (MATLAB no exige esto, pero puede resultar útil). Para definir una matriz no hace falta establecer de antemano su tamaño(de hecho, se puede definir un tamaño y cambiarlo posteriormente). MATLAB determina el número de filas y de columnas en función del número de elementos que se proporcionan (o se utilizan). Las matrices se definen por filas; los elementos de una misma fila están separados por blancoso comas, mientras que las filas están separadas por pulsaciones introo por caracteres punto y coma(;). Por ejemplo, el siguiente comando define una matriz Ade dimensión (3x3):

A partir de este momento la matriz Aestá disponible para hacer cualquier tipo de operación con ella (además de valores numéricos, en la definición de una matriz o vector se pueden utilizar expresiones y funciones matemáticas). Por ejemplo, una sencilla operación con Aes hallar su matriz traspuesta. En MATLAB el apóstrofo (') es el símbolo de trasposición matricial. Para calcular A'(traspuesta de A) basta teclear lo siguiente (se añade a continuación la respuesta del programa): >> A' ans = 1 4 7 2 5 8 3 6 9 Como el resultado de la operación no ha sido asignado a ninguna otra matriz, MATLAB utiliza un nombre de variable por defecto (ans, de answer), que contiene el resultado de la última operación. La variable anspuede ser utilizada como operando en la siguiente expresión que se introduzca. Tambiénpodría haberse asignado el resultado a otra matriz llamada B:

>> B=A' B = 1 4 7 2 5 8 3 6 9

Ahora ya están definidas las matrices Ay B, y es posible seguir operando con ellas. Por ejemplo, se puede hacer el producto B*A(deberá resultar una matriz simétrica): >> B*A ans = 66 78 90 78 93 108 90 108 126

Operaciones con matrices.

MATLAB puede operar con matrices por medio de operadoresy por medio de funciones. Se han visto ya los operadores suma(+), producto(*) y traspuesta('), así como la función invertir inv( ) . Los operadores matriciales de MATLAB son los siguientes: + adición o suma – sustracción o resta * multiplicación ' traspuesta ^ potenciación \ división -izquierda / división -derecha .* producto elemento a elemento ./ y .\ división elemento a elemento .^ elevar a una potencia elemento a elemento Estos operadores se aplican también a las variables o valores escalares, aunque con algunas diferencias 5 . Todos estos operadores son coherentes con las correspondientes operaciones matriciales: no se puede por ejemplo sumar matrices que no sean del mismo tamaño. Si los operadores no se usan de modo correcto se obtiene un mensajede error. Los operadores anteriores se pueden aplicar también de modo mixto, es decir con un operando escalar y otro matricial. En este caso la operación con el escalar se aplica a cada uno de los elementos de la matriz. Considérese el siguiente ejemplo: >> A=[1 2; 3 4] A = 1 2 3 4

Tipos de datos.

Ya se ha dicho que MATLAB es un programa preparado para trabajar con vectores y matrices. Como caso particular también trabaja con variables escalares (matrices de dimensión 1). MATLAB trabaja siempre en doble precisión, es decir guardando cada dato en 8 bytes, con unas 15 cifras decimales exactas. Ya se verá más adelante que también puede trabajar con cadenas de caracteres (strings) y, desde la versión 5.0, también con otros tipos de datos: Matrices de más dos dimensiones, matrices dispersas, vectores y matrices de celdas, estructurasy clases y objetos. Algunos de estos tipos de datos más avanzados se verán en la última parte de este manual.

NÚMEROS REALES DE DOBLE PRECISIÓN.

Los elementos constitutivos de vectores y matrices son números reales almacenados en 8 bytes (53 bits para la mantisa y 11 para el exponente de 2; entre 15 y 16 cifras decimales equivalentes). Es importante saber cómo trabaja MATLAB con estos números y los casos especiales que presentan. MATLAB mantiene una forma especial para los números muy grandes(más grandes que los que es capaz de representar), que son considerados como infinito.Por ejemplo, obsérvese cómo responde el programa al ejecutar el siguiente comando: >> 1.0/0.0 Warning: Divide by zero ans = Inf Así pues, para MATLAB el infinito se representa como infó Inf. MATLAB tiene también una representación especial para los resultados que no están definidos como números. Por ejemplo, ejecútense los siguientes comandos y obsérvense las respuestas obtenidas: >> 0/0 Warning: Divide by zero ans = NaN >> inf/inf ans = NaN

En ambos casos la respuesta es NaN, que es la abreviatura de Not a Number. Este tipo de respuesta, así como la de Inf, son enormemente importantes en MATLAB, pues permiten controlar la fiabilidad de los resultados de los cálculos matriciales. Los NaNse propagan al realizar con ellos cualquier operación aritmética, en el sentido de que, por ejemplo, cualquier número sumado a un NaNda otro NaN. MATLAB tiene esto en cuenta. Algo parecido sucede con los Inf. MATLAB dispone de tres funciones útiles relacionadas con las operaciones de coma flotante. Estas funciones, que no tienen argumentos, son las siguientes: eps devuelve la diferencia entre 1.0 y el número de coma flotante inmediatamente superior. Da una idea de la precisión o número de cifras almacenadas. En un PC, epsvale 2.2204e-016. realmin devuelve el número más pequeño con que se puede trabajar (2.2251e-308) realmax devuelve el número más grande con que se puede trabajar (1.7977e+308).

TIPOS DE MATRICES PREDEFINIDOS.

Existen en MATLAB varias funciones orientadas a definir con gran facilidad matrices de tipos particulares. Algunas de estas funciones son las siguientes: eye(4) forma la matriz unidad de tamaño (4x4). zeros(3,5) forma una matriz de cerosde tamaño (3x5). zeros(4) ídem de tamaño (4x4). ones(3) forma una matriz de unosde tamaño (3x3). ones(2,4) idem de tamaño (2x4). linspace(x1,x2,n) genera un vector con nvalores igualmente espaciados entre x1y x2. logspace(d1,d2,n) genera un vector con nvalores espaciados logarítmicamente entre 10^d1 y 10^d2. Si d2es pi 6 , los puntos se generan entre 10^d1 y pi . rand(3) forma una matriz de números aleatorios entre 0 y 1, con distribución uniforme, de tamaño (3x3). rand(2,5) idem de tamaño (2x5). randn(4) forma una matriz de números aleatorios de tamaño (4x4), con distribución normal, de valor medio 0 y varianza 1. magic(4) crea una matriz (4x4) con los números 1, 2, ... 4*4, con la propiedad de que todas las filas y columnas suman lo mismo. hilb(5) crea una matriz de Hilbert de tamaño (5x5). La matriz de Hilbert es una matriz cuyos elementos (i,j) responden a la expresión (1/(i+j -1)). Esta es una matriz especialmente difícil de manejar por los grandes errores numéricos a los que conduce. invhilb(5) crea directamente la inversa de la matriz de Hilbert. kron(x,y) produce una matriz con todos los productos de los elementos del vector xpor los elementos del vector y. Equivalente a x'*y, donde xe yson vectores fila. compan(pol) construye una matriz cuyo polinomio característico tiene como coeficientes los elementos del vector pol (ordenados de mayor grado a menor). vander(v) construye la matriz de Vandermondea partir del vector v(las columnas son las potencias de los elementos de dicho vector).

Operadores lógicos.

Los operadores lógicos de MATLAB son los siguientes: & and. | or. ~ negación lógica. Obsérvese que estos operadores lógicos tienen distinta notación que los correspondientes operadores de C (&&, || y !). Los operadores lógicos se combinan con los relacionales para poder comprobar el cumplimiento de condiciones múltiples. Más adelante se verán otros ejemplos y ciertas funcio nes de las que dispone MATLAB para facilitar la aplicación de estos operadores a vectores y matrices.


  • Facebook Black Round
  • Google+ Black Round
  • Tumblr Black Round
Luis Armas -
Emprendedor, Autor y Conferencista

Párrafo. Haz clic aquí para agregar tu texto y editar. Permite que tus usuarios te conozcan.

Estrategia de Negocios

 

CURSO GRATUITO 
(Valuado en 250 )
 

Aprende todo lo que necesitas saber sobre cómo hacer una estrategia de negocios exitosa.

Business Plan

Writing A-Z

 
FREE COURSE
(Valued at $250)
 

Learn all you need in order to create a

stellar business plan for your endeavor!

Mi Libro
 

Párrafo. Haz clic aquí para agregar tu texto y editar. Permite que tus usuarios te conozcan.

Búsqueda por Tags
No hay etiquetas aún.
bottom of page