• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Mat lab yamil_algebramatricial
 

Mat lab yamil_algebramatricial

on

  • 828 views

 

Statistics

Views

Total Views
828
Views on SlideShare
789
Embed Views
39

Actions

Likes
0
Downloads
13
Comments
0

1 Embed 39

http://www.uscovirtual.com 39

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Mat lab yamil_algebramatricial Mat lab yamil_algebramatricial Document Transcript

    • Álgebra matricial Ing Yamil Armando Cerquera Rojas – yacerque@gmail.com Especialista en Sistemas Universidad Nacional Docente Universidad Surcolombiana Neiva – Huila - Enero 2007Vectores Generación de Vectores Vector Fila Vector Columna Vector Transpuesto Posiciones de un vector Unión de vectores Multiplicación entre vectoresMatrices Creación de una matriz Añadiendo filas o columnas a una matriz Cambiar el orden de una matriz Conversión de una matriz en un vector Acceso a submatrices contiguas y no contiguas Matrices vacías Generación de tablas Operaciones Básicas con matrices Determinante de una Matriz Diagonal de una matriz Inversa de una Matriz Funciones trascendentes matriciales Tipos de matrices predefinidosGeneración de vectoresSe pueden generar vectores de tipo Fila o de tipo Columna. Los valores en un vectortipo fila se ingresan separados por espacio o por comas (,) y los valores para un vectortipo columna se ingresan separados por punto y coma (;) o por enter ( ↵ ).Ejemplos:Vector tipo filaLos dos puntos (:), son importantes en MATLAB. Por ejemplo» x=1:5↵ x =1 2 3 4 5»x = [1 10 2 4];↵» y = 5:-1:1;↵
    • x=5 4 3 2 1No necesariamente los incrementos están dados por números enteros, también puedenser decimales, números negativos ó constantes.» x=0:0.25:1↵x=0 0.2500 0.5000 0.7500 1.0000» m=3.12;↵» a=0:m:10↵a=0 3.12 6.24 9.36» w = [1 2 3 4 5]↵w=12345»Vector tipo columna» z = [1;2;3;4;5]↵z=12345ó» z = [1↵2↵3↵4↵5]↵z=12345Vector transpuesto ()
    • Si se trata de asignar un rango de datos en forma de columna, se puede asignar elrango inicialmente a un vector fila y luego transponerlo a un vector columna o alcontrario, si se tiene un vector columna se puede asignar dichos valores a un vector filaasí:» a=1:5↵a=12345»a=a↵ El símbolo = (transpuesta) en el ascii 39.a=12345ó simplemente dando el rango entre llaves [] y de una vez indicando que se trata de unrango transpuesto así:» a=[1:5]↵a=12345Posiciones de un vector» w=[1 6 2 8 12];↵Se puede hacer referencia a un valor o una posición del vector w, simplementeindicando entre paréntesis la posición que ocupa dicho valor dentro del vector. Porejemplo si se quisiera trabajar con el valor 8 que ocupa la posición 4 del vector w se leindica al Matlab asi: w(4).»w(4)↵ans= 8»Se puede hacer referencia a un rango de valores del vector indicando las pociones dedicho rango. Por ejemplo si se quisiera referenciar los valores 6 2 y 8 simplemente sehace referencia a las posiciones 2 a la 4 así:» w(2:4)↵
    • ans =628»Se puede modificar un valor del vector simplemente cambiando su valor haciendoreferencia a la posición del valor a cambiar así:» w(3)=15↵w=1 6 15 8 12»Note que a pesar de haber cambiado la posición 3 cuyo valor era 2 por el valor 15, al nohaber dado punto y coma (;) al final, Matlab devuelve todos los valores de w.Si se asigna un valor en una posición que no existe y está adelante de la últimaposición el Matlab asigna ceros (0) a las posiciones restantes.» w(10)=7↵w=1 6 15 8 12 0 0 0 0 7»En el ejemplo anterior asignó ceros (0) a las posiciones 6,7,8 y 9.Un índice puede ser un vector. Si x y v son vectores, entonces x(v) es [x(v(1)),x(v(2)), ...,x(v(n))]. Para matrices, los índices de vectores permiten acceso asubmatrices contiguas y no-contiguas.Unión de vectoresSe pueden unir vectores de la siguiente manera» x=1:10;↵» y=sin(x);↵» [x,y]↵ans =Columns 1 through 6 1 2 3 4 5 6Columns 7 through 12 7 8 9 10 0.84147 0.9093Columns 13 through 180.14112 -0.7568 -0.95892 -0.27942 0.65699 0.98936Columns 19 through 200.41212 -0.54402
    • El resultado es un vector de 20 valores donde los 10 primeros valores corresponden alvector x y los 10 últimos valores corresponden al vector y.» [x y]↵ans =Columns 1 through 6 1 2 3 4 5 6Columns 7 through 12 7 8 9 10 0.84147 0.9093Columns 13 through 180.14112 -0.7568 -0.95892 -0.27942 0.65699 0.98936Columns 19 through 200.41212 -0.54402Se puede generar vectores con rangos de valores de otros vectores. En el siguienteejemplo se genera el vector z a partir del vector x y y. El vector z finalmente queda conlos 10 primeros valores del vector x y los 5 valores primeros del vector y. Es decir elvector z queda con 15 valores.» x=1:100;↵» y=sin(x);↵» z=[x(1:10),y(1:5)]↵z=Columns 1 through 61 2 3 4 5 6Columns 7 through 127 8 9 10 0.84147 0.9093Columns 13 through 150.14112 -0.7568 -0.95892»Multiplicación entre vectoresSi se desea multiplicar los valores que ocupen la misma posición entre dos vectores delmismo orden y del mismo tipo se realiza de la siguiente manera.» w = [1 2 3 4 5]↵;» x=1:5;↵»w.*x↵ans =1 4 9 16 25»La multiplicación realizada fue 1*1 2*2 3*3 4*4 5*5Otros ejemplos:
    • »x = [1 2 3]; ↵»y = [4 5 6]; ↵»z = x. *y ↵resulta enz = 4 10 18Las expresiones A./B y A.B dan los cocientes de los elementos individuales.Ejemplo : » z = x.y↵ produce como resultadoz= 4.0000 2.5000 2.0000 (Si está con formato short)Realice los siguientes ejemplos: a.*b, a.*c, b.*c con los siguientes valores para cadavector.a=[2 4 5 7 9];b=[1 16 12 13 23];c=1:-0.1:0.5;A que se debe el error:» b.*c ó al realizar la operación » a.*c??? Error using ==> .*Matrix dimensions must agree.Nota: El punto se le coloca a la primera variable con el fin de indicarle a Matlab que lamultiplicación que se realiza no es de tipo matricial sino valor a valor que ocupa lamisma posición.Creación de una matrizElementos de matricesLos elementos de una matriz pueden ser cualquier expresión de MATLAB. Todo enMatLab se considera como matriz.Ejemplo : x = [-1.3,sqrt(3),(1+2+3) *4/5] ↵Resultaría en x = -1.3000 1.7321 4.8000. El elemento –1.3000 ocupa la posición 1 delvector x o sea x(1), el elemento 1.7321 ocupa la posición 2 del vector x o sea x(2) y elelemento 4.800 ocupa la posición 3 del vector x o sea x(3).Se puede referir a elementos individuales de la matriz con índices entre paréntesisexistan o no dichos elementos.
    • Ejemplo: si teniendo en cuenta el ejemplo anterior se ejecuta en el prompt»x(4) = abs(x(1))↵resultaría : x = -1.3000 1.7321 4.8000 1.3000Cuando se hace referencia a un elemento que no existe en un vector o matrizdeterminada, MatLab lo crea automáticamente, en el caso anterior si se hubierautilizado x(6) entonces MatLab llena de ceros las posiciones necesarias para podercrear el elemento x(6) es decir hubiera quedado así:x = -1.3000 1.7321 4.8000 0 0 1.3000Modos de introducir matrices1.- Por teclado2.- Generadas por funciones3.- Creadas por los m-files4.- Cargadas desde un fichero de datos externo con el comando load.Entrada de matrices por tecladoPor teclado desde el Prompt del Matlab se puede digitar los valores que en formamatricial se desea guardar bajo el nombre de un identificador o variable. En el caso delejemplo siguiente se guarda una matriz de orden 3x3 en la variable A.Existen tres formas de ingresar matrices por teclado a saber: » A=[1 2 3; 4 5 6; 7 8 9]↵ ó » A=[1 2 3↵ 4 5 6↵ 7 8 9];↵ ó » A=[1,2,3; 4,5,6; 7,8,9]↵En todas tres el resultado es el mismo A= 1 2 3 4 5 6 7 8 9Nótese que en el caso primero donde no se colocó ";" al final se muestra después lamatriz asignada, mientras en el segundo caso donde si se coloco el “;” no aparece laconfirmación de asignación de los datos.
    • También puede generar una matriz de la siguiente manera » B = [ [1 2 3] [2 4 7] [3 5 8]]↵ B= 1 2 3 2 4 5 3 7 8Añadiendo filas o columnas a una matrizTomando como ejemplo la siguiente matriz»A=[1 2 3; 4 5 6; 7 8 9]; ↵ Matriz de orden 3x3Para agregar filas a la matriz A descrita arriba se puede realizar lo siguiente:»r = [10 11 12];↵»A = [A; r]↵ se estaría agregando al final de la matriz A, los valores del vector r ó»A = [r; A]↵ se estaría agregando al inicio de la matriz A, los valores del vector rEl resultado sería:A= 1 2 3 10 11 12 4 5 6 ó 1 2 3 7 8 9 4 5 6 10 11 12 7 8 9El vector r debe tener el mismo número de elementos como columnas tiene la matriz A.En caso de que el vector tenga diferente número de elementos se producirá el siguienteerror:??? All rows in the bracketed expression must have the same number of columns.Si el vector fila se quisiera adicionar a la matriz pero como vector columna entonces seprocede a agregarlo pero transpuesto así:»A=[1 2 3; 4 5 6; 7 8 9]; ↵ Matriz de orden 3x3»r = [10 11 12];↵»B = [A r]↵ Se adiciona el vector columna al lado derecho de la matrizB=1 2 3 104 5 6 117 8 9 12»C = [r A]↵ Se adiciona el vector columna al lado izquierdo de la matrizC=
    • 10 1 2 311 4 5 612 7 8 9»D = [D; 10 11 12]↵ lo que produceD= 1 2 3 4 5 6 7 8 9 10 11 12Cambio del orden de una matriz: reshapeRedimensiona una matriz. Los elementos de la matriz original son colocados en elnúmero de filas y columnas descrito para la matriz modificada. El orden de colocaciónes de arriba hacia abajo y de izquierda a derecha. El número de elementos debe ser elmismo en las dos matrices.Sintaxis: Matriz_modificada = reshape(Matriz_original, filas, columnas)Ejemplo: » A = [1 4 7 10; 2 5 8 11; 3 6 9 12]↵ A= 1 4 7 10 2 5 8 11 3 6 9 12 » B = reshape(A,2,6)↵ B= 1 3 5 7 9 11 2 4 6 8 10 12Note que el orden de la matriz A es de 3*4 es decir 12 elementos que debe ser igual alnúmero de elementos del nuevo orden. 2*6 de B.Si se da un orden diferente se producirá el siguiente mensaje de error.» B=reshape(A,2,5)??? Error using ==> reshapeTo RESHAPE the number of elements must not change.Modificación individual de elementos en matricesEjemplos
    • Se crea inicialmente una matriz de orden 2x2 con los siguientes valores: » A = [1 2; 3 4]↵ A= 1 2 3 4Note que se asigna valores a la matriz delimitándolos con las llaves [ ] y a continuaciónse modifica un valor haciendo referencia a la posición de dicho valor entre paréntesis( ).Se puede referir a un elemento de la matriz A, por ejemplo, A(i, j). Se trata del elementode la fila i y la columna j. » A(1,1) = A(1,2)+A(2,1)↵la posición (1,1) de la matriz A, quedará ahora con el valor de la posición (1,2)= "2" + elvalor de la posición (2,1)="3" es decir 2+3=5. » A↵ A= 5 2 3 4» A(1,2) = A(2,1)↵. En este ejemplo tenga en cuenta que a pesar de que se modifica unsola posición, al no colocar punto y coma al final de la instrucción, la PC devuelve todoslos valores de la matriz. A= 5 3 3 4 » A(2,2) = 10↵ A= 5 3 3 10Modificaciones adicionales de una matrizSe pueden reasignar valores a una matriz simplemente redefiniéndola nuevamente. Losvalores almacenados anteriormente se pierden. También se hubiera podido eliminar lavariable con la función clearEjemplo » clear A↵
    • » A=[1 2; 3 4; 5 6 ]↵ A= 1 2 3 4 5 6Conversión de una matriz en un vector » A = [1 2; 3 4; 5 6 ]↵ A= 1 2 3 4 5 6En el siguiente ejemplo se asignan todos los elementos de la matriz almacenados en lavariable A, al vector b. La asignación se realiza de arriba hacia abajo y de izquierda aderecha, y el vector resultante es del tipo Columna. » b = A(:)↵ b= 1 3 5 2 4 6Acceso a submatrices contiguas y no contiguas » A = [1 2 3 4 5 6 7 8 9 10 12 13 14 15 11 16 17 18 19 20 11 12 13 14 15 16 17 18 19 20 2 3 4 5 6 7 8 9 10 11 3 4 5 6 7 8 9 10 1 2] ↵ A= 1 2 3 4 5 6 7 8 9 10 12 13 14 15 11 16 17 18 19 20 11 12 13 14 15 16 17 18 19 20 2 3 4 5 6 7 8 9 10 11 3 4 5 6 7 8 9 10 1 2Por ejemplo, suponga que a la matriz anterior A, se ejecuta A(1:5, 3). Se estaráespecificando la submatriz 5 x 1, ó vector columna 5 filas por 1 columna, que consisteen los primeros cinco elementos de la tercera columna de A. » A(1:5, 3) ↵
    • ans = 3 14 13 4 5También : A(1:5, 7:10)» A(1:5, 7:10) ↵ es la submatriz 5 x 4 de las primeras 5 filas (de la 1 a la 5) y lasúltimas 4 columnas de A (de la columna 7 a la 10) de la matriz A. En caso de que Atenga 10 columnas y al menos 5 filas. ans = 7 8 9 10 17 18 19 20 17 18 19 20 8 9 10 11 9 10 1 2Utilizando solo los dos puntos denota todo lo correspondiente a la fila ó columna.Podríamos tener una instrucción como:» A(:,1]) ↵ Genera todos los elementos de la columna 1 de la matriz A.ans = 1 12 11 2 3» A(:, [3 5 10]) ↵ Genera todos los elementos de las columnas 3, 5 y 10 de la matriz A.ans = 3 5 10 14 11 20 13 15 20 4 6 11 5 7 2»A(:,[3 5 10]) = B(:, 1:3) ↵. A través de esta instrucción se reemplaza la tercera, quintay décima columna de la matriz A con las primeras tres columnas de la matriz B siemprey cuando la matriz B tenga el mismo numero de filas de la matriz A.Se genera una matriz de tres filas por tres columnas como la siguiente
    • » A = [ 1 2 3; 3 4 5; 6 7 8]↵ A= 12 3 34 5 67 8Se puede hacer referencia para usar sus valores, a filas y/o columnas de una matrizsiempre y cuando estas existan en la matriz. En el siguiente ejemplo se hace referenciaa las columnas 3 y 4 de la matriz A. La columna 4 no existe por tanto se generará unerror como el que se muestra a continuación. » A(1:2,3:4)↵ ??? Index exceeds matrix dimensions.Si la referencia se hace par asignar valores a la matriz, y los campos a los cuales hacereferencia no existen, MatLab crea los campos necesarios rellenados con ceros. Porejemplo si se tiene la siguiente matriz» A = [ 1 2 3; 3 4 5; 6 7 8]↵A=12 334 567 8Y se da el comando»A(3,4)=3; ↵A↵El resultado seriaA=12 3 034 5 067 8 3Otros EjemplosSi se tiene una matriz original A de orden 10x10, entonces:♦ A(1:3,5) corresponde a una matriz de 3x1 que tiene los tres primeros elementos de la columna 5 de A♦ A(1:3, 5:9) Hace referencia a una matriz de 3x4 que contiene los elementos de las tres primeras filas y las columnas de la 5 a la 9 de A♦ A(:,5) Hace referencia a todos los elementos de la columna 5 de A
    • ♦ A(1:5,:) Hace referencia a todos los elementos de las primeras cinco filas de A♦ A(:,[4 6]) = B(:,1:2) reemplaza la cuarta y sexta columnas de A con las dos primeras columnas de B. Las dos matrices deben tener el mismo número de filas.Matrices vacías y borrado de filas o columnasLa declaración x = [ ] asigna una matriz de dimensión 0x0 al identificador xPara la matriz A considerada previamenteA(:,[3,5])=[ ] borra columnas 3 y 5 de AA([3,5 ],:)=[ ] borra filas 3 y 5 de ADeclaración de matrices complejasA=[1 2; 3 4] + i*[5 6 ; 7 8] óA=[1 2; 3 4] + i*[5 6 ; 7 8] óA=[1+5i 2+6i; 3+7i 4+8i]A=1.0000 + 5.0000i 2.0000 + 6.0000i3.0000 + 7.0000i 4.0000 + 8.0000iGeneración de tablas » x=(0:0.2:3);↵ » y=exp(-x).*sin(x);↵ » [x ; y]↵ ans = Columns 1 through 7 0 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000 0 0.1627 0.2610 0.3099 0.3223 0.3096 0.2807 Columns 8 through 14 1.4000 1.6000 1.8000 2.0000 2.2000 2.4000 2.6000 0.2430 0.2018 0.1610 0.1231 0.0896 0.0613 0.0383 Columns 15 through 16 2.8000 3.0000 0.0204 0.0070Operaciones Básicas con Matrices:Matrices Transpuestas: El caracter (apóstrofe - Alt 39 del ASCII) denota la transpuestade la matriz. Si se tiene definida previamente la matriz A y se escribe en el prompt»B = A’↵. B es la transpuesta de la matriz A.
    • Sumando y Restando Matrices: Las operaciones suma (+) y resta (-) son definidas paralas matrices siempre y cuando éstas tengan la misma dimensión. Es decir, si A y B sonmatrices n x n, entonces A + B se puede calcular.Las operaciones suma y resta también están definidas si uno de los operandos es unescalar, es decir, una matriz 1x1.Ejemplo: »x = [-1; 0; 2]; ↵ se define un vector columna con tres datos. »y = x - 1↵ resultaría; y= -2 -1 1En el siguiente ejemplo se define las matrices A y B cada una de ellas con dos filas ytres columnas.Ejemplo: » A=[1 2 3;4 5 6]; ↵ » B=[6 5 4; 3 2 1]; ↵ Para sumarlas se escribe la operación: » A+B↵El resultado de la operación es por defecto almacenado en la variable ans einmediatamente presentado en pantalla: ans = 7 7 7 777Para almacenar la suma de A y B en la variable C: » C=A+B↵ C= 777 777Multiplicando Matrices:La operación de multiplicación de matrices está definida siempre que el número decolumnas de la primera matriz sea igual a el número de filas de la segunda matriz.Si A = [ 1 2 3 y x=[-1 4 5 6 0 7 8 0] 2]
    • »b = A*x↵ resultab=5 8 -7Por supuesto que » pi*x↵ ans = -3.1416 0.0000 6.2832Producto escalar:El producto interior (producto escalar ó producto punto) se consigue de la siguientemanera:x * y. asumiendo que x y y son vectores columnas de igual número de elementos. Noteque y * x produce el mismo resultado. De valores a cada vector y desarrolle el ejercicio.Producto de una matriz por un vector: El producto de una matriz y un vector es un casoespecial del producto matriz-matriz y naturalmente, un escalar como pi, puedemultiplicar, ó ser multiplicado por, cualquier matriz.Dividiendo Matrices:En división de matrices, si A es una matriz cuadrada no-singular, entonces AB y B/Acorresponden a la multiplicación izquierda y derecha de B por el inverso de A, esto es,inv(A) * B y B * inv(A) respectivamente. El resultado es obtenido directamente sin lacomputación del inverso.X = AB es una solución a A * X = B y X = B/A es una solución a X * A = BAB es definido cuando B tiene la misma cantidad de filas que A. Si A es cuadrada, elmétodo usado es la Eliminación Gaussiana. El resultado es una matriz X con lasmismas dimensiones que B. Si A no es cuadrada, se factoriza utilizando laortogonalización de Householder con pivoteo de columnas. Los factores son usadospara resolver sistemas de ecuaciones sub-determinados y sobre-determinados. Elresultado es una matriz X m-por-n donde m es el número de columnas de A y n es elnúmero de columnas de B. Cada columna de X tiene, al menos, k componentesdiferentes de cero, donde k es el rango efectivo de A.B/A esta definido en términos de AB por B/A = (AB) .Usando Exponentes con Matrices:
    • La expresión A^n eleva A a la n-ésima potencia y esta definido si A es una matrizcuadrada y n un escalar.Funciones Matriciales Trascendentales y Elementales: MATLAB considera expresionescomo exp(A) y sqrt(A) como operaciones de arreglos, definidas en los elementosindividuales de A. También puede calcular funciones trascendentales de matrices, comola matriz exponencial y la matriz logarítmica. Estas operaciones especiales estándefinidas solamente para matrices cuadradas.Otras funciones elementales de matrices son:poly - polinomio característico » poly(A)↵det – determinante » det(A)↵trace – traza » trace(A)↵kron - producto tensorial de Kronecker » kron(A)↵eig - calcula los valores propios de la matriz » eig(A)↵defina una matriz A y ejecute cada una de las funciones anteriores.Manipulación de Matricesdiag - extrae ó crea una diagonaltril - parte triangular inferiortriu - parte triangular superior - transposición» a=[1 2 3; 2 3 4; 4 5 6] ↵» diag(a) ↵ans = 1 3 6» a(1,:)=a(1,:)/a(1,2) ↵ Se dividen todos los elementos de la fila 1 de la matriz A poral valor almacenado en la posición 1,2 de la misma matriza= 0.5000 1.0000 1.5000 2.0000 3.0000 4.0000 4.0000 5.0000 6.0000Determinante de una Matriz det(A)DET Determinante.DET(X) es el determinante de la matrix cuadrada X.Use COND instead of DET to test for matrix singularity.
    • See also COND.Overloaded methods: help sym/det.m» A=[1 2 3;4 5 6; 7 8 9]↵A=1 2 34 5 67 8 9» det(A)↵ans = 0Porque al tener una matriz su determinante igual a cero, el matlab entrega como valorinverso lo siguiente:» inv(A)Warning: Matrix is close to singular or badly scaled.Results may be inaccurate. RCOND = 2.055969e-018.ans =-4.5036e+015 9.0072e+015 -4.5036e+0159.0072e+015 -1.8014e+016 9.0072e+015-4.5036e+015 9.0072e+015 -4.5036e+015Diagonal de una matriz: diag(A)La función diag extrae la diagonal de la matriz A» help diagDIAG matrices diagonales y diagonales de una matriz.DIAG(V,K) cuando V es un vector con N componentes es una matrix cuadrada de ordenN+ABS(K) con los elementos de V sobre la K-th diagonal. K = 0 es la diagonal principal,K > 0 is above the main diagonal and K < 0 is below the main diagonal.DIAG(V) es lo mismo que DIAG(V,0) and puts V on the main diagonal.DIAG(X,K) when X is a matrix is a column vector formed from the elements of the K-thdiagonal of X.DIAG(X) is the main diagonal of X. DIAG(DIAG(X)) is a diagonal matrix.Ejemplom = 5;diag(-m:m) + diag(ones(2*m,1),1) + diag(ones(2*m,1),-1)produces a tridiagonal matrix of order 2*m+1.
    • See also SPDIAGS, TRIU, TRIL.Overloaded methodshelp sym/diag.m» diag(A)↵ans =159Valores y vectores característicos: eig(A)» help eigEIG Eigenvalores y eigenvectores.E = EIG(X) es un vector conteniendo los eigenvalores de la matrix cuadrada X.[V,D] = EIG(X) produce una matrix diagonal D de eigenvalores y una matriz completa Vwhose columns are the corresponding eigenvectors so that X*V = V*D.[V,D] = EIG(X,nobalance) performs the computation with balancing disabled, whichsometimes gives more accurate results for certain problems with unusual scaling.E = EIG(A,B) is a vector containing the generalized eigenvalues of square matrices Aand B.[V,D] = EIG(A,B) produces a diagonal matrix D of generalized eigenvalues and a fullmatrix V whose columns are the corresponding eigenvectors so that A*V = B*V*D.Ver tambien CONDEIG, EIGS.Overloaded methodshelp sym/eig.mhelp lti/eig.m» A=[0 7 -6; 1 0 0;0 1 0]↵A=0 7 -6100010» eig(A)↵ans =-3.0000
    • 2.00001.0000v - Vectores característicosd - Valores característicos» [v d]=eig(A)↵v=0.9435 -0.8729 0.5774-0.3145 -0.4364 0.57740.1048 -0.2182 0.5774d=-3.0000 0 0 0 2.0000 0 0 0 1.0000Exponencial de una matriz: expm(A)» A=[0 7 -6; 1 0 0;0 1 0]↵A=0 7 -61 0 00 1 0» expm(A)↵ans =5.2541 11.0757 -13.61152.2686 5.2541 -4.80440.8007 2.2686 -0.3510Factorización LU de A: lu(A)» [L U]=lu(A)↵L=0 1.0000 01.0000 0 00 0.1429 1.0000U=1.0000 0 00 7.0000 -6.00000 0 0.8571Inversa de una Matriz inv(A) ó (A^-1)Inversa de A: inv(A)» help invINV Matrix inversa.
    • INV(X) es la inversa de la matrix cuadrada X.A warning message is printed if X is badly scaled or nearly singular.Ver también SLASH, PINV, COND, CONDEST, NNLS, LSCOV.Overloaded methodshelp sym/inv.mhelp zpk/inv.mhelp tf/inv.mhelp ss/inv.mhelp lti/inv.mhelp frd/inv.m» A=[0 7 -6; 1 0 0;0 1 0];↵» inv(A)↵ans =0 1.0000 00 0 1.0000-0.1667 0 1.1667Si se aplica la función inv a un escalar el resultado es igual a 1/escalar» inv(5)ans =0.2Si se tiene un sistema simultaneo de ecuaciones, para resolverlo se puede proceder dela siguiente manera:3x + 2y + 4z = 10x - 5y + z = 5x - y +z = 1Se puede dar solución a dicho sistema utilizando la función inv. Se interpreta el sistemacomo AX=B donde A es la matriz de coeficientes del sistema, X son las variables (x,y,z)y B el el vector columna de los términos independientes (10,5,1). De esta formaX=inv(A)*B. Interprete la inv(A) como 1/A, ya que la división con matrices no opera.Solucionando el problema quedará así:» A=[3 2 41 -5 11 -1 1];» b=[1051];» inv(A)*b
    • ans =-12-112Donde -12 corresponde a x, -1 corresponde a y y 12 corresponde a z. Lo anterior sepuede comprobar sustituyendo los valores en cada una de las ecuaciones:3(-12) + 2(-1) + 4(12) = 10(-12) - 5(-1) + (12) = 5(-12) - (-1) + (12) = 1Ecuación característica de la matriz A: poly(A). Cuando A es una matriz de N por N,poly(A) es un vector con N+1 elementos que son lo coeficientes del polinomiocaracterístico» p=poly(A)↵p=1.0000 0.0000 -7.0000 6.0000Raíces de la ecuación característica: roots(p)» r=roots(p)↵r=-3.0000 2.0000 1.0000para revisar otras funciones referentes a matrices ejecutar desde el prompt del Matlabla siguiente instrucción:» help matlabelmatFunciones trascendentes matricialesExisten tres funciones para matrices: expm XE "expm" , logm XE "logm" y sqrtm XE"sqrtm" .expm(A) = B = eA=1+A+A2/2! + A3/3! + ....logm(A) = B de manera que A = eBsqrtm(A) = B de manera que B*B = ATipos de matrices predefinidos. eye (n) Matriz identidad cuadrada de orden n eye(m, n) Matriz “identidad” de orden m*n
    • ones(n) Matriz unitaria cuadrada de orden nones(m, n) Matriz “unitaria” de orden m*nzeros(m, n) Matriz de ceros de orden m*nrand(m, n) Matriz con elementos aleatorios de orden m*n Si V es un vector fila o columna de n componentes, se construye una matriz de orden n + abs(k) colocando el vector endiag(V, K) la K-ésima diagonal (K = 0 es la diagonal principal), K > 0 encima de la diagonal principal y K < 0 por debajo). Construye una matriz cuadrada de orden N con el vector V endiag(V) su diagonal principal.triu(A) Extrae la parte triangular superior de A anulando el restotril(A) Extrae la parte triangular inferior de A anulando el restorot90(A) Rota una matriz 90º contra las agujas del relojrot90(A, k) Rota una matriz k*90º contra las agujas del relojfliplr(A) Rota las columnas de izquierda a derechaflipud(A) Rota las filas de arriba hacia abajoreshape XE Devuelve una matriz de orden m*n cuyos elementos son "reshape" tomados por columna de A. Si A no tiene m*n elementos se (A, m, n) produce un error.