el calculo superior en el entorno matlab

50

Click here to load reader

Upload: alberto-landa

Post on 11-Nov-2015

137 views

Category:

Documents


22 download

DESCRIPTION

Curso de Matlab

TRANSCRIPT

  • UNIVERSIDAD MAYOR DE SAN ANDRS FACULTAD DE INGENIERIA INGENIERIA INDUSTRIAL

    DEPARTAMENTO DE CURSO BSICO

    EL CLCULO SUPERIOR EN EL ENTORNO MATLAB

    APLICACIONES AL ALGEBRA LINEAL MATRICES DETERMINANTES

    o NUMERICAS o SIMBOLICAS

    ECUACIONES Y SISTEMAS DE ECUACIONES o NUMERICAS o SIMBOLICAS

    PROGRAMACION LINEAL

    Mg. Sc. Ing. Rafael Valencia Goyzueta

    MATLAB Marca registrada por The MathWorks, Inc

  • APLICACIN AL ALGEBRA LINEAL Matriz Una matriz es un arreglo rectangular de de nmeros letras u objetos (llamados elementos) dispuestos en m lneas horizontales (filas) y n lneas verticales (columnas) de la forma:

    11 12 1

    21 22 2

    1 2

    A m n

    n

    n

    m m mn

    a a aa a a

    a a a

    =

    LL

    M M O ML

    Se suelen representar a las matrices por letras maysculas A, B, . . ., etc. y a sus elementos de la forma donde el primer subindice indica la fila y el segundo la columna a la que pertenece dicho elemento.

    ija

    Orden de una matriz. Una matriz de m filas y n columnas se dice que tiene dimensin o que es de orden mn, y al conjunto de todas las matrices de orden mn lo denotaremos por:

    A m n ija = Con 1 1i m j n Esto es:

    Tipos de matrices

    NOMBRE DEFINICION REPRESENTACION

    FILA Se denomina, matriz fila a aquella que consta de una nica fila.

    11 12 13 1A= pa a a a L

    COLUMNA Se denomina, matriz columna a aquella que consta de uma nica columna.

    11

    21

    31

    1

    B=

    p

    bbb

    b

    M

    CUADRADA [ ]m n nA =A

    11

    aiji nj m

    =

    11 12 1

    21 22 2

    1 2

    A n

    n

    n

    n n nn

    a a aa a a

    a a a

    =

    LL

    M M O ML

  • DIAGONAL n0

    A0

    ij

    ij

    a i ja i

    j

    == =

    11

    22

    0 0 00 0

    A0 0 00 0 0

    n

    nn

    aa

    a

    0 =

    O

    ESCALAR nA 0ij

    ij

    a K i ja i

    =j

    == =

    0 0 00 0

    A0 0 00 0 0

    n

    KK

    K

    0 =

    O

    IDENTIDAD n1

    I0

    ij

    ij

    a i ja i

    = == = j

    1 0 0 00 1 0 0

    A0 0 00 0 0 1

    n

    = O

    NULA nA 0 ija i, = = = 0 0 0 0

    A0 0 0 0

    nj = M L O M

    TRIANGULAR SUPERIOR n

    0A

    0ij

    ij

    a i ja i

    j

    11 12 1

    22 20A0 00 0

    n

    n

    n

    nn

    a a aa a

    a

    =

    LLO ML

    TRIANGULAR INFERIOR n

    0A

    0ij

    ij

    a i ja i

    >= = = =

  • NOMBRE DEFINICION PROPIEDADES

    TRANSPUESTA Tm nA Aij n m jia a = =

    ( )TTA = A ( )T T TA B = B A ( )T TkA = k A ( )T T TA+B = A +B

    CONJUGADA A complejo conjugij ija a =

    A A= T TA A=

    AB A B= A B A B+ = + k A k A =

    Matrices especiales INVOLUTIVA 2A =I ANTISIMETRICA TA = A SIMETRICA TA A= HERMITANIA ( )TA= A ORTOGONAL T TA A=A A = I NILPOTENTE A = 2n n PERIODICA

    k+1 +A =A k periodo k Z

    IDEMPOTENTE 2A A=A =A TA = A HEMIHERMETICA

    OPERACIONES CON MATRICES

    NOMBRE DEFINICION PROPIEDADES

    Traza de una matriz. a( )

    1An= A

    nij ii

    ia tr

    = =

    ( ) ( ) ( )( ) ( )( ) ( )( ) ( )( )( )Itr n=

    T

    A+B A B

    A A

    A B B A

    A A

    0

    tr tr tr

    tr k k tr

    tr tr

    tr tr

    tr

    = + = =

    ==

    Suma de matrices.

    bm n m nA = B =ij ija +

    ( )A+B ij ijm n a b = +

    Asociativa Conmutativa Elemento neutro A+=+A=A a Elemento opuesto

    ( ) ( ) A A+ A = A +A= a Producto de una matriz por

    n escalar.

    r

    a

    Asociativa

    u

    m nA = escalaija k

    Am n ijk k =

    ( ) ( ) (A Aa b ab b a= = )ADistributiva

    ( )( )

    A A

    A B

    a b a b

    a A B a a

    A+ = + + = +

    Elemento unitario ( )1 A=A 1 A A =

  • Multiplicacin de matrices.

    AB1

    k kj

    pa bi

    k=

    =

    Asociativa ( ) (A B C=A B C) Distributiva ( )A B+C =A B+A C No conmutativa A B B A No cancelativa A B=A C B=C . Si A B=0 A=0 B=0 Si A =B AC=BC CA=CB Elemento neutro I I A=AI =An n a Si matrices se llaman permutables AB=BA

    Operaciones elementales.

    Se denominan operaciones elementales a un conjunto de tres operaciones que se realizan en una matriz afectando a las fila o a las columnas de esta.

    Intercambiar dos filas o dos columnas de una matriz Sustituir una fila o una columna de la matriz por el mltiplo escalar de dicha fila o columna en

    la matriz. Sustituir una fila o una columna de la matriz por la suma de dicha fila o columna con un

    mltiplo escalar de otra fila o columna en la matriz.

    Definiciones importantes

    Matriz escalonada. Es aquella matriz que cumple las siguientes condiciones:

    El primer elemento de una fila no nula es la unidad El conjunto de filas nulas se encuentra en la parte inferior de la matriz El nmero de ceros que preceden a la unidad en una fila no nula aumenta de manera

    aritmtica.

    Matriz cannica. Se denomina matriz escalonada cannica a una matriz escalonada con la propiedad de que el primer elemento no nulo de una fila es un uno y adems, es el nico elemento no nulo de su columna.

    Matriz equivalente. Dos matrices se dicen equivalentes si una de ellas se deduce a partir de la otra luego de una sucesin limitada de operaciones elementales

    Matrices elementales. Son aquellas matrices que resultan de aplicarle alguna de las operaciones elementales a la matriz identidad.

    Rango de una matriz. Es el orden de la mayor submatriz que esta contenida en una matriz y es igual al nmero de filas no nulas que resultan despus de la ltima iteracin de un conjunto de operaciones elementales realizadas en la matriz.

    Matriz inversa. Sean las matices A Bn nij ija b = = , si se cumple se dice que que es la matriz inversa de

    A B=B A=I -1B=A A

    Determinante. Dada la matriz A n ija = el determinante de A ( ( )A det A

    Ma

    ) es un valor

    numrico el cual esta asociado a todos los elementos de la matriz A

    Matriz adjunta.

    Sea y matriz de cofactores de A, entonces se denomina

    adjunta de A a la transpuesta de la matriz de cofactores.

    A n ija = ( )C 1n i jij ij ijc + = =

    ( ) TA =C jiAdj c =

  • Propiedades: INVERSA ADJUNTA DETERMINANTE

    ( )( )( ) ( )

    -1

    1 -1 -1

    -1-1

    -1 TT -1

    A A I

    A B =B A

    A A

    A = A

    =

    =

    ( )( ) ( )( )( ) ( )( )( ) ( ) (( ) ( )( )

    )

    ( )( )

    ( )( )

    TT

    -1

    -1

    -1

    -2

    I =I

    A = A

    A = A

    A B = B A

    A = A

    A = A

    AA =A

    A A = A I

    A = A A

    nn

    nn n

    nn n

    nn

    Adj

    Adj Adj

    Adj Adj

    Adj Adj Adj

    Adj k k Adj

    Adj

    Adj

    Adj

    Adj Adj

    n

    T

    mm

    -1

    I 1

    0

    A A

    A A

    A B = A B

    A A1AA

    nnk k

    ==

    ==

    =

    =

    El valor de A no depende de la fila k elegida. Si la matriz A posee una lnea (fila o columna) de ceros, su determinante es nulo. Si se intercambian dos lneas del determinante, el determinante cambia de signo. Si la matriz A tiene dos lneas paralelas iguales, su determinante es nulo. Si todos los elementos de una lnea se multiplican por un nmero, todo el determinante queda multiplicado por dicho nmero. Si la matriz A posee dos lneas paralelas proporcionales, su determinante es nulo. Si descomponemos una lnea (fila o columna) en suma de dos, podemos descomponer el determinante en suma de dos determinantes El determinante de una matriz no vara si a una lnea se le suma una combinacin lineal de lneas paralelas. Si una lnea de la matriz A es combinacin lineal de otras paralelas, su determinante es nulo.

    Funciones y comandos de Matlab La notacin utilizada en Matlab es la notacin usual en algebra lineal. De modo que, por ejemplo, la multiplicacin de matrices en Matlab se hace de forma sencilla. Debemos tener cuidado con las dimensiones de las matrices a la hora de multiplicarlas (deben tener el tamao adecuado.) Las siguientes funciones actan sobre vectores. Aqu se presentan solo algunas funciones. Una relacin completa de todas las funciones soportadas por MATLAB se puede obtener consultando la ayuda: matlab/datafun.

  • FUNCIONES QUE ACTUAN SOBRE VECTORES length(X) Devuelve la longitud del vector x

    [vM,pM]=max(x) Mximo elemento de un vector. Devuelve el valor mximo vM y la posicin que ocupa pM en el vector

    [vm, pm]=min(x) Mnimo elemento de un vector. Devuelve el valor mnimo y la posicin que ocupa sum(v) Suma los elementos de un vector

    cumsum(x) Devuelve el vector suma acumulativa de los elementos de un vector. Es decir, el primer elemento del nuevo vector es el mismo que el de x, el segundo es la suma de los dos primeros de x, el tercero es la suma de los tres primeros vectores de x, y as sucesivamente

    mean(V) Valor media de los componentes del vector V std(V) Desviacin tpica de las componentes de V prod(v) Producto de los elementos de un vector cumprod(A) Devuelve el vector producto acumulativo de los elementos de un vector

    [y,i]=sort(x) Ordenacin de menor a mayor de los elementos de un vector x. Devuelve el vector ordenado y, y un vector i con las posiciones iniciales en x de los elementos en el vector ordenado

    dot(v,w) Producto escalar de vectores cross(v,w) Producto vectorial de vectores diff(v) Vector cuyos elementos son la resta de los elemento de v P=poly(V) P es um polinomio cuyas races son las componentes de v linspace(a,b,n) Devuelve un vector con n valores igualmente espaciados entre [a, b].

    logspace(a,b,n) Genera un vector con n valores espaciados logaritmicamente entre 10 y10b. Si a y b es pi, los puntos se generan entr 10 y pi disp(v) Devuelve el vector v En realidad estas funciones se pueden aplicar tambin a matrices, pero en ese caso se aplican por separado a cada columna de la matriz, dando como valor de retorno un vector resultado de aplicar la funcin a cada columna de la matriz considerada como vector. Si estas funciones se quieren aplicar a las filas de la matriz basta aplicar dichas funciones a la matriz transpuesta.

    FUNCIONES ELEMENTALES QUE ACTUAN SOBRE MATRICES trace(A) sum(diag(A)) Calcula la traza de A

    size(A) Devuelve el orden (tamao) de la matriz A size(A,1) Devuelve el numero de filas de A size(A,2) Devuelve el numero de columnas de A [m,n]=size(A) Devuelve el numero de filas m y columnas n de la matriz A numel(A) devuelve el numero de elementos de la matriz A. transpose(A) Matriz transpuesta de A A Calcula la transpuesta (conjugada) de la matriz

    A.' Calcula la transpuesta (sin conjugar) de la matriz Si la matriz es de nmeros reales producen el mismo resultado. FUNCIONES ESPECIALES QUE ACTUAN SOBRE MATRICES

    power(A,b) Si devuelve la matriz cuyos elementos son A ija = bijapower(b,A) devuelve la matriz cuyos elementos son

    aijb

    mpower(A,n) Devuelve la matriz

    A A A An veces

    L1442443 si n es un entero. Los comandos A.^n y A^ n son equivalentes a las funciones power(A,n) y powerm(A,n) respectivamente.

    exp(A) devuelve una matriz cuyos elementos son ( )exp aijija e=

  • sprt(A) devuelve una matriz cuyos elementos son ija logm(A) Logaritmo neperiano de la matriz A sqrtm(A) Raz cuadrada de la matriz cuadrada A expm(A) Exponencial de la matriz A

    FUNCIONES PARA LA MANIPULACION DEMATRICES reshape(A,m,n) Cambia el orden de una matriz mxn a otra nxm u otras.

    cat(Dim,A,B) Concatena las matrices A y B y las pone una junto a otra si Dim=1, B debajo de A y si Dim=2 pone B detrs de A diag(A) Extraer la diagonal de la matriz A como vector columna diag(A,k) Busca la k-sima diagonal.

    blkdiag(A,B) Crea una matriz diagonal de submatrices a partir de las matrices que se le pasan como argumentos tril(A) Extrae la matriz triangular inferior triu(A) Extrae la matriz triangular superior fliplr(A) Invierte el orden de las columnas de una matriz de izquierda a derecha flipud(A) Invierte el orden de las filas de una matriz de arriba abajo rot90(A) Gira una matriz en direccin contraria a las agujas del reloj end(A) Devuelve el ultimo ndice de A A(end:) A(:,end) Accede a la ultima fila o columna de la matriz

    FUNCIONES DE ANALISIS MATRICIAL norm(A) Norma de A (mayor valor singular de la matriz A)

    norm(A,1) Mxima suma de valores absolutos por columnas (mayor suma de las columnas de A) norm(A, inf) Mxima suma de valores absolutos por filas (mayor suma de la filas de A) norm(A, fro) F-norma de A, definida por sqrt(sum(diag(AA)))

    normest(A) Estimacin de la norma de la matriz A. Se usa cuando el tamao de A es muy grande y se consume mucho tiempo en calcular norm(A) det(A) Determinante de la matriz cuadrada A determ(A) Determinante de la matriz cuadrada A rank(A) Devuelve el rango de la matriz A

    N=null(A) Da una Base ortonormal del ncleo de A (NN=I). El nmero de columnas de N es la nulidad de A

    Q=orth(A) Da una base ortonormal para el rango de A (QQ=I). Las columnas de Q generan el mismo espacio que las columnas de A, y el nmero de columnas de Q es el rango de A

    subspace(A,B) Da el ngulo entre los subespacios especificados por las columnas de A y de B. Si a y B son vectores da el ngulo formado por ambos. disp(A) Devuelve la matriz A

    sort(A) Ordena de forma ascendente las componentes de A. Para complejos hace la ordenacin segn los valores absolutos

    sum(A) Toma como argumento una matriz y genera un vector fila donde cada elemento es la suma de todos los elementos en su columna en la matriz original.

    median(A) Mediana de la s componentes de A

    max(V) Retorna el (los) mayor (es) componente (s) de un vector o matriz. (para complejos se calcula max(abs(V)))

    min(V) Retorna el (los) menor (es) componente (s) de un vector o matriz. (para complejos se calcula min(abs(V))) length(A) Devuelve el mximo valor de filas y columnas exist(A) isempty(A) Verifica si una variable existe o esta vaca

    Ff

  • FUNCIONES DE FACTORIZACION DE MATRICES Y SOLUCION DE SISTEMAS LINEALES inv(A) Matriz inversa de la matriz cuadrada A (A-1)

    cond(A) Da la condicin de la matriz A (cociente entre el mayor y el menor valor singular de A) rcond(A) Recproco de la condicin de la matriz A U=chol(A) Descomposicin de Cholesky de una matriz definida positiva

    [L,U]=lu(A) Devuelve las matrices triangular superior y triangular inferior de A. Descomposicin LU [Q,R]=qr(A) Descomposicin QR de A rref(A) Da la matriz reducida escalonada por filas de A. Rrefmovie(A) Reduce la matriz A a su forma escalonada

    [E,base]=RREF(A) Devuelve la forma escalonada de A y una posible base del espacio de columnas de A pinv(A) Calcula la seudo inversa de un matriz no cuadrada (inversa de Moore Penrose)

    FUNCIONES PARA CALCULO DE VALORES PROPIOS Y SINGULARES eig(A) Calcula los autovalores de la matriz cuadrada A

    [X,D]=eig(A) Devuelve los autovectores de A (columnas de X) y los autovalores de A (diagonal de D) [X,D]=eig(A,B) Devuelve los autovectores (columnas de X) de A y B y los autovalores (diagonal de D) de A y B

    [V,D]=eig(A) Calcula la matriz diagonal D de autovalores de A y una matriz V cuyas columnas son los autovectores [V,D]=eig(A,B)

    [Q,D]=eigs(A) Calcula la matriz diagonal D de autovalores generalizados de A y B, y una matriz V cuyas columnas son los autovectores correspondientes, cumplindose que A*V=B*V*D

    roots(A) Devuelve las races de la ecuacin caracterstica

    svd(A) Da el vector V de valores singulares de A. Los valores singulares de A son las races cuadradas de los autovalores de la matriz simtrica A A

    [U,S,V]=svd(A) Da la matriz diagonal S de valores singulares de A (ordenados de mayor a menor), y las matrices U y V tales que A= U*S*V poly(A) Devuelve un vector con los coeficientes del polinomio caracterstico de A H=hess(A) Devuelve la forma Hessenberg de A [S,H]=schur(A) Devuelve la forma de Schur de A. U es la matriz unitaria tal que -1U S U

    [U,S]=rsf2csf(U,R)

    Transforma la forma de Schur real en la compleja, la forma compleja es la habitual; una matriz triangular superior con los valores propios (posiblemente complejo) en la diagonal. La forma real de Schur se refiere a una matriz real cuyos valores propios complejos aparecen en pares conjugados. La matriz R de la forma de Schur es real en ella aparecen bloques diagonales 2x2 asociados a los valores propios complejos conjugados

    [U,S]=cdf2rdf(U,R) Devuelve el reciproco del anterior. Convierte la forma diagonal compleja de Schur de una matriz real a la forma real FUCIONES DE MATRICES ESPECIALES

    eye(n) Crea la matriz identidad de orden n

    diag(v,k)

    El argumento v es un vector y el argumento k es opcional pero si se da, debe ser un numero entero. Matlab crea una matriz cuadrada de tamao n + |k|, con todos lo elementos cero excepto los de la k-esima diagonal que son los elementos del vector v. Poner k = 0 o no dar un valor explcito produce el mismo resultado: una matriz diagonal con el vector v en la diagonal principal. Si k > 0 el vector v aparece en la k-esima supradiagonal y si k < 0 en la k-esima subdiagonal.

    diag(A,k) El argumento A es una matriz y el argumento k es opcional pero si se da, debe ser un numero entero. Matlab produce un vector: la k-esima diagonal de la matriz A.

    eye(m,n) Crea la matriz de orden mxn con unos en la diagonal y ceros en el resto.

  • zeros(m,n) Crea la matriz nula de orden mxn ones(m,n) Crea la matriz de orden mxn con todos sus elementos 1 magic(n) Genera una matriz cuadrada mgica rand(m,n) Crea una matriz aleatoria uniforme de orden mxn randn(m,n) Crea una matriz aleatoria normal de orden mxn En este grupo aparecen algunas de las funciones ms tiles y potentes de Matlab. No estn todas las que soporta Matlab. La relacin completa se puede consultar a travs de la ayuda: matlab/elmat y matlab/matfun principalmente. Se clasificaran en varios subgrupos:

    OPERACIONES CON MATRICES

    COMANDO OPERACIN COMANDO OPERACIN

    + adicin o suma transpuesta

    - sustraccin o resta ^ potenciacin

    * multiplicacin \ divisin-izquierda

    .* producto elemento a elemento / divisin-derecha ./ y .\ divisin elemento a elemento .^ elevar a una potencia elemento a elemento

    Ejemplos

    Dado el vector >> x=[4/3 1.2345e-6]

    Los diferentes formatos de salida son:

    FORMATO SALIDA >> format short x = 1.3333 0.0000

    >> format short e x = 1.3333e+000 1.2345e-006

    >> format short g x = 1.3333 1.2345e-006

    >> format long x = 1.33333333333333 0.00000123450000

    >> format long e x = 1.333333333333333e+000 1.234500000000000e-006

    >> format long g x = 1.33333333333333 1.2345e-006

    >> format bank x = 1.33 0.00

    >> format rat x = 4/3 1/810045

    >> format hex x = 3ff5555555555555 3eb4b6231abfd271

    Para la matriz

    16 3 2 135 10 11 8

    A=9 6 7 124 15 14 1

    >> A=[16 3 2 13; 5 10 11 8; 9 6 7 12; 4 15 14 1] A =

    16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1

    >> A(end) ans =

    1

    >> A(end,end) ans =

    1

    >> A(2,end) ans =

    8

    >> A(end,2) ans =

    15

  • Desde la versin 5 de Matlab se puede usar end para indicar el ltimo elemento de una matriz, respecto de una dimensin dada.

    Submatriz formada por los ltimos 4 y los ltimos 6 elementos de la matriz

    >> A(end-3:end)

    ans =

    13 8 12 1

    >> A(end-5:end)

    ans =

    7 14 13 8 12 1 Submatriz formada por las dos primeras filas y por las dos primeras columnas

    >> A( [1 2] ,:)

    ans =

    16 3 2 13 5 10 11 8

    >> A(:,[1 2])

    ans =

    16 3 5 10 9 6 4 15

    Submatriz formada por los elementos de las ultimas tres filas y ultimas dos columnas

    >> A(end-2:end, end-1:end)

    ans =

    11 8 7 12 14 1

    Submatriz formada por los elementos que ocupan las posiciones donde se interceptan las filas 1 y 3 y las columnas 3 y 4

    >> C=A([1 3],[3 4])

    C =

    2 13 7 12

    Aadirle filas y columnas sin mas que especificar el vector con los elementos que se quiere aadir

    >> C=[A;[1 3 5 7]]

    C =

    16 3 2 13 5 10 11 8 9 6 7 12 4 15 14 1 1 3 5 7

    eliminarle filas o columnas a la matriz >> A(3 , :)=[]

    A =

    16 3 2 13 5 10 11 8 4 15 14 1

    Para el vector V obtener un vector con amplitud mayor a 0.3

    ( )0.1 0.4 0.3 -0.3 -0.9 0.4 0.1 -0.5 -0.1 -0.3 0.1 0.5=>> Av= [0.1 0.4 0.3 -0.3 -0.9 0.4 0.1 -0.5 -0.1 -0.3 0.1 0.5]

    Av =

    0.1000 0.4000 0.3000 -0.3000 -0.9000 0.4000 0.1000 -0.5000 -0.1000 -0.3000 0.1000 0.5000 Vector de ceros y unos que muestra donde la condicin es verdadera.

    >> Av>0.3 ans =

    0 1 0 0 0 1 0 0 0 0 0 1 Para obtener los elementos del vector que satisfacen la condicin:

    Para obtener un vector con los ndices de las muestras que satisfacen la condicin v > 0.3

    Para obtener un vector con los ndices de las muestras que satisfacen la condicin, utilizando la funcin find

    >> Av(Av>0.3)

    ans =

    0.4000 0.4000 0.5000

    >> An= 1:length(Av); >> An(Av>0.3)

    ans =

    2 6 12

    >> A=find(Av>0.3)

    A =

    2 6 12

  • A partir de matriz randomica de 4x3 construir la matriz B 4 34 3 4 3

    B IA

    I 1

    = >> B=rand(4,3) B = 0.9218 0.9355 0.0579 0.7382 0.9169 0.3529 0.1763 0.4103 0.8132 0.4057 0.8936 0.0099

    >> E=[B eye(size(B)); eye(size(B)) ones(size(B))] C = 0.9218 0.9355 0.0579 1.0000 0 0 0.7382 0.9169 0.3529 0 1.0000 0 0.1763 0.4103 0.8132 0 0 1.0000 0.4057 0.8936 0.0099 0 0 0 1.0000 0 0 1.0000 1.0000 1.0000 0 1.0000 0 1.0000 1.0000 1.0000 0 0 1.0000 1.0000 1.0000 1.0000 0 0 0 1.0000 1.0000 1.0000

    Construir una matriz 5 5 cuyas columnas esten dadas por el vector columna

    ( )A 1 2 3 4 5 t=

    >> B=[1 2 3 4 5]'*ones(1,5)

    B = 1 1 1 1 1 2 2 2 2 2 3 3 3 3 3 4 4 4 4 4 5 5 5 5 5

    Para la matriz 7 7 6

    A 1 13 65 1 5

    = La matriz A Determinante de A Diagonal de A Inversa de A

    >> A=[7 7 -6; 1 13 6;5 1 -5] A = 7 7 -6 1 13 6 5 1 -5

    >> det(A) ans = 132

    >> diag(A) ans = 7 13 -5

    >> inv(A) ans = -0.5379 0.2197 0.9091 0.2652 -0.0379 -0.3636 -0.4848 0.2121 0.6364

    Autovalores de A Ecuacin caracterstica de la matriz A >> eig(A) ans = -0.0256 + 2.9613i -0.0256 - 2.9613i 15.0512

    >> p=poly(A) p = 1.0000 -15.0000 8.0000 -132.0000

    Valores y vectores caractersticos de A Races de la ecuacin caracterstica de A >> [V,D]=eig(A) V = 0.7440 0.7440 -0.5650 -0.3077 + 0.0645i -0.3077 - 0.0645i -0.8050 0.5122 - 0.2919i 0.5122 + 0.2919i -0.1810

    D = -0.0256 + 2.9613i 0 0 0 -0.0256 - 2.9613i 0 0 0 15.0512

    >> r=roots(p) r = 15.0512 -0.0256 + 2.9613i -0.0256 - 2.9613i

    Para las matrices:1 2 3 4 1A A : : 25 6 7 8 2

    = = >> A=[1 2 3 4;5 6 7 8] A = 1 2 3 4 5 6 7 8

    >> B=[pi:0.5:2*pi] B = 3.1416 3.6416 4.1416 4.6416 5.1416 5.6416 6.1416

    >> size(A) ans = 2 4

    Devuelve un vector fila cuyo primer elemento es es el numero de filas y cuyo Segundo elemento es el numero de columnas

  • >> [filas,columnas]=size(A) filas = 2 columnas = 4

    Devuelve el numero de filas en la primera variable y el nmero de columnas en la segunda variable

    >> size(B) ans = 1 7

    Muestra que es un vector fila, un afila y siete columnas

    >> length(A) ans = 4

    Devuelve el numero de filas o columnas cualquiera que sea el mayor

    >> length(B) ans = 7

    Devuelve el tamao del vector siete columnas

    >> sum(A) ans = 6 8 10 12

    Devuelve la suma todas las columnas de A

    Con una sola instruccin crear cada una de las siguientes matrices y reemplazar las filas 2, 4, 6, 7 de B por filas 5, 6, 7, 8 de A.

    1 2 3 4 5 6 7 82 3 4 5 6 7 8 93 4 5 6 7 8 9 104 5 6 7 8 9 10 115 6 7 8 9 10 11 126 7 8 9 10 11 12 137 8 9 10 11 12 13 148 9 10 11 12 13 14 15

    A

    = y

    1 0 0 0 0 0 0 00 1 0 0 0 0 0 00 0 1 0 0 0 0 00 0 0 1 0 0 0 00 0 0 0 1 0 0 00 0 0 0 0 1 0 00 0 0 0 0 0 1 00 0 0 0 0 0 0 1

    B

    = Generamos A con una sola instruccin Generamos B con una sola instruccin

    >> A=[(1:8)',(2:9)',(3:10)',(4:11)',(5:12)',(6:13)',(7:14)',(8:15)']

    A =

    1 2 3 4 5 6 7 8 2 3 4 5 6 7 8 9 3 4 5 6 7 8 9 10 4 5 6 7 8 9 10 11 5 6 7 8 9 10 11 12 6 7 8 9 10 11 12 13 7 8 9 10 11 12 13 14 8 9 10 11 12 13 14 15

    >> B=eye(8)

    B =

    1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1

    Filas 2, 4, 6, 7 de B por filas 5, 6, 7, 8 de A. >> B([2 4 6 7],:)=A(5:6:7:8,:)

    B =

    1 0 0 0 0 0 0 0 5 6 7 8 9 10 11 12 0 0 1 0 0 0 0 0 6 7 8 9 10 11 12 13 0 0 0 0 1 0 0 0 7 8 9 10 11 12 13 14 8 9 10 11 12 13 14 15 0 0 0 0 0 0 0 1

    Dado el vector x=rand(1,5) invertir el orden de sus elementos: Definimos la matriz Matriz con sus elementos en orden inverso

    >> x=rand(1,5) x =

    0.9501 0.2311 0.6068 0.4860 0.8913

    >> x=x(5:-1:1) x =

    0.8913 0.4860 0.6068 0.2311 0.9501 Ggggg

    Obsrvese que por haber utilizado parntesis en vez de corchetes los valores generados por el operador (:) afectan a los ndices del vector y no al valor de sus elementos.

  • Dada la matriz A=magic(3) invertir el orden de las columnas:

    Definimos la matriz

    Matriz con sus columnas invertidas

    >> A=magic(3)

    A =

    8 1 6 3 5 7 4 9 2

    >> A(:,3:-1:1)

    ans =

    6 1 8 7 5 3 2 9 4

    Aunque hubiera sido ms fcil utilizar la funcin fliplr(A), que es especfica para ello. Finalmente, hay que decir que A(:) representa un vector columna con las columnas de A una detrs de otra.

    Con una sola lnea de instrucciones generar la matriz y con una sola lnea de instruccin extraer un vector columna cuyos elementos sean los elementos de las 3 diagonales de A

    3 1 0 0 0 0 01 2 1 0 0 0 0

    0 1 1 1 0 0 00 0 1 0 1 0 00 0 0 1 1 1 00 0 0 0 1 2 10 0 0 0 0 1 3

    A

    =

    Definimos la matriz Matriz con elementos de la diagonal

    >> A=diag(-3:3)+diag(ones(6,1),1)+diag(-1*ones(6,1),-1)

    A =

    -3 1 0 0 0 0 0 -1 -2 1 0 0 0 0 0 -1 -1 1 0 0 0 0 0 -1 0 1 0 0 0 0 0 -1 1 1 0 0 0 0 0 -1 2 1 0 0 0 0 0 -1 3

    >>diag(A,1) ans = 1 1 1 1 1 1

    >> diag(A) ans = -3 -2 -1 0 1 2 3

    diag(A,-1) ans = -1 -1 -1 -1 -1 -1

    Ingresar la matriz Crear la matriz

    1 5 4 62 1 3 5

    A1 6 8 44 8 7 1

    =

    tA 0

    C0 A

    =

    Introducimos la matriz Hallamos su transpuesta >> A=[1 5 4 6;2 1 3 5;1 6 8 4;4 8 7 1]

    A =

    1 5 4 6 2 1 3 5 1 6 8 4 4 8 7 1

    >> A_trans=A

    A_trans =

    1 2 1 4 5 1 6 8 4 3 8 7 6 5 4 1

    >> C=[A zeros(4);zeros(4) A_trans]

    C =

    1 5 4 6 0 0 0 0 2 1 3 5 0 0 0 0 1 6 8 4 0 0 0 0 4 8 7 1 0 0 0 0 0 0 0 0 1 2 1 4 0 0 0 0 5 1 6 8 0 0 0 0 4 3 8 7 0 0 0 0 6 5 4 1

    sss

  • Dadas las matrices: , , 2 63 9

    A =1 23 4

    B =5 5

    5 3C =

    Formar la matriz sin introducir elemento a elemento. 6 6A 0 00 B 00 0 C

    D

    = Con una sola instruccin borrar la ultima fila y la ultima columna de D Extraer la primera sub matriz 4x4 Extraer la submatriz { } { }M 1,3,6 2,5= de D

    Generamos las matrices

    >> A=[2 6; 3 9]

    A =

    2 6 3 9

    B=[1 2; 3 4]

    B =

    1 2 3 4

    C=[-5 5; 5 3]

    C =

    -5 5 5 3

    Primero inicializo la matriz a ceros >> D=zeros(6,6);

    >> D=zeros(6,6)

    D =

    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

    metemos las tres matrices como submatrices de D

    >> D(1:2,1:2)=A >> D(3:4,3:4)=B >> D(5:6,5:6)=C

    D = 2 6 0 0 0 0 3 9 0 0 0 0 0 0 1 2 0 0 0 0 3 4 0 0 0 0 0 0 -5 5 0 0 0 0 5 3

    >> F=D; >> F(6,:)=[]

    F = 2 6 0 0 0 0 3 9 0 0 0 0 0 0 1 2 0 0 0 0 3 4 0 0 0 0 0 0 -5 5

    Eliminar la ultima fila y la ultima columna (Se quiere conservar la matriz D, entonces le asigno el mismo valor a una nueva variable F sobre la que se realizan los cambios)

    >> F(:,6)=[]

    F = 2 6 0 0 0 3 9 0 0 0 0 0 1 2 0 0 0 3 4 0 0 0 0 0 -5

    Extraer la submatriz 4x4 de la esquina superior izquierda de D: >> H=D(1:4,1:4)

    H =

    2 6 0 0 3 9 0 0 0 0 1 2 0 0 3 4

    Extraer la submatriz { } { }M 1,3,6 2,5= de : D >> K=D([1 3 6],[2 5])

    K =

    6 0 0 0 0 5

  • TRABAJO PRCTICO I MANIPULACIN DE MATRICES EN MATLAB

    Con una o dos instrucciones como mximo crear la matriz A, luego aplicando operaciones de extraccin y concatenacin crear la matriz B.

    1 2 3 4 5 6 7 82 3 4 5 6 7 8 93 4 5 6 7 8 9 104 5 6 7 8 9 10 115 6 7 8 9 10 11 126 7 8 9 10 11 12 137 8 9 10 11 12 13 148 9 10 11 12 13 14 15

    A

    =

    5 6 7 8 9 10 11 126 7 8 9 10 11 12 137 8 9 10 11 12 13 148 9 10 11 12 13 14 151 2 3 4 5 6 7 82 3 4 5 6 7 8 93 4 5 6 7 8 9 104 5 6 7 8 9 10 11

    B

    =

    Genere las matrices: , (sin introducir explcitamente

    sus elementos), a partir de estas obtener las matrices con la menor cantidad e comandos posibles

    5 6 1 16 5 1 1

    A1 1 6 5

    1 1 5 6

    =

    4 4 4 43 3 3 3

    B1 1 1 12 2 2 2

    =

    t

    -1

    A 0 0D 0 B 0

    0 0 A

    =

    t

    t

    A 0 BD 0 I 0

    A 0 B

    =

    Genere la matriz 1 4 0

    A 0 2 32 3 7

    = Hallar el valor mnimo dentro de cada fila de A Ordenar los elementos de en orden descendente dentro de cada columna A Ordenar los elementos de en orden ascendente dentro de cada fila A Formar una lista con los elementos de ordenada de forma ascendente A Hallar el mximo en valor absoluto de los elementos de la matriz A

    Considera la siguiente orden de Matlab A=magic(5). En una sola orden:

    Define una matriz B formada por las filas pares de la matriz A. Define una matriz C formada por las columnas impares de la matriz A. Define una vector d formada por la tercera columna de la matriz A. Elimina la tercera fila de la matriz A.

    Sea 0 : : 22

    x = . Con una sola orden de Matlab crea una matriz cuya primera fila es x , su

    segunda fila es el seno de cada elemento de x y cuya tercera fila el coseno de cada elemento de x .

  • Definir dos vectores, de la siguiente forma: El primero formado por los cuatro primeros nmeros impares El segundo formado por los cuatro primeros nmeros pares de varias formas distintas

    Con estos vectores construir la matriz:

    2 4 6 84 12 16 24

    A10 20 30 4014 27 42 56

    = Construye una matriz tal que a) A ija = i ja i j= b) ( )cosijc i j= c) Una matriz 5 5 cuyo elemento en la posicion (i, j) sea ji Con la menor cantidad de instrucciones (si es posible una sola) Construya:

    1 1 1 12 2 2 2

    A3 3 3 34 4 4 4

    =

    1 0 0 0 0B 0 1 0 0 0

    0 0 1 0 0

    =

    3 1 0 02 0 1 0

    C1 0 0 10 0 0 0

    =

    0 1 0 00 0 1 0

    D0 0 0 10 1 2 3

    =

    0 0 0 01 0 0 0

    E0 2 0 00 0 3 3

    = Con la menor cantidad de instrucciones (si es posible una sola) Construya

    1 2 3 4 56 7 8 9 10

    11 12 13 14 15A

    16 17 18 19 2021 22 23 24 2526 27 28 29 30

    =

    Y a partir de ella obtener:

    La tercera fila. La cuarta columna. El vector formado por los elementos que ocupan las posiciones impares de la fila 4. El vector formado por los elementos que ocupan las posiciones pares de la columna 1. La submatriz formada por los elementos que ocupan las posiciones donde se cruzan las filas 2

    y 4 y las columnas 1, 3 y 5. La submatriz que se obtiene al suprimir las filas 2 y 4, y las columnas 1 y 3. La matriz que se obtiene de A al aadirle (pegarle) una fila cuyo i-esimo elemento sean la

    suma de la i-esima columna de A, y una columna cuyo i-esimo elemento sea la suma de la i-esima fila de A (El comando sum puede ser de ayuda).

    En una sola instruccin, cambiar todos los valores de la diagonal de una matriz cuadrada a cero. Con una sola orden de Matlab crear un matriz 3 5 cuyo nico elemento sea el 7 Con una sola orden de Matlab crea una matriz aleatoria 4 4 de nmeros reales entre -5 y 5. (Indicacin: Ejecuta help rand para saber como generar nmeros aleatorios en distribuciones Uniformes, randn se emplea para distribuciones normales).

  • Con una sola instruccin genere una matriz 8x8 tal que 4 4 4 44 4 4 4

    I A=

    -I

    Generar un vector con todos los nmeros pares desde el 1 al 101 y con una sola instruccin eliminar todos los nmeros pares. Genere una matriz randomica de 8x8 y de esta obtenga una submatriz constituida por las columnas de ndice impar. En una sola instruccin sustituir todos los valores de la diagonal de una matriz cuadrada por

    los elementos del vector 1 1 1 11, , , , ,2 4 8 16

    x = K

    Para la matriz

    3 2 8 97 5 1 3

    A5 7 2 89 4 8 5

    =

    Ordenar sus elementos del menor al mayor manteniendo su forma (utilizar la orden reshape) En una sola instruccin, poner a cero todos los elementos negativos de la matriz. En una sola instruccin, poner a cero todos los elementos de la matriz que estn entre -5 y 5.

    (La conjuncin lgica es &).

    De tres formas distintas (cada una en una sola instruccin), averiguar el numero de elementos de una matriz, de forma que al final tengamos un numero. Crear un fichero en Matlab cuyo nombre sea matriz_diagonal.m que determine la solucin de un sistema, cuya matriz de coeficientes seatridiagonal. Nota. Solo se han de introducir los elementos de las diagonales. Construya un vector de 128 elementos como se muestra ( )0 1 0 1 0 1 0 1A = L Genere una secuencia {1, 2, 3, . . . , 9, 10} e extraiga los nmeros mayores que 4. Genere una secuencia aleatoria con distribucin normal y elimine los elementos negativos. Genere una secuencia aleatoria con distribucin normal y calcule el nmero de elementos negativos. Genere una secuencia aleatoria con distribucin uniforme e con 1000 muestras. Obtenga el nmero de muestras con una amplitud superior a 0.9. Calcule luego el nmero de muestras cuyo mdulo posee una amplitud entre 0.5 y 0.7.

    Las matrices cuyo elemento en la posicion (i, j) es1

    1i j+ se llaman matrices de Hilbert y son famosas porque, a pesar de ser invertibles en aritmetica exacta, no lo son en aritmetica de punto flotante como veremos en este ejercicio.Este es un ejemplo tp`co de matriz mal condicionada.

    Construya una matriz de Hilbert de tamao 1212 sin utilizar bucles forend. Utiliza help para saber lo que hace el comando hilb de Matlab, y compare su resultado con el

    de Matlab. Utiliza el comando rank para calcular el rango de las matrices de Hilbert de tamaos 9, 12 y

    15.

  • Matrices Elementales Veamos a continuacin como Matlab permite realizar operaciones elementales de filas y columnas:

    Definimos una matriz >> A=[5 7 9;2 8 1;9 6 4] A = 5 7 9 2 8 1 9 6 4

    Se multiplica la segunda fila por dos y se reemplaza en la misma

    2 22 F F >> A(2,:)=2*A(2,:)

    A = 5 7 9 4 16 2 9 6 4

    Se permutan las dos primeras filas. Para ello se emplea un vector intermedio (aux) que almacenara provisionalmente una fila mientras realizamos el intercambio

    1 2F F

    >> aux=A(1,:) >> A(1,:)=A(2,:) >> A(2,:)=aux

    aux = 5 7 9 A = 2 8 1 2 8 1 9 6 4 A = 2 8 1 5 7 9 9 6 4

    A la tercera fila le resta la primera fila por 2

    2 32 F F F + 3 >> A(3,:)=A(3,:)-2*A(1,:)

    A = 2 8 1 5 7 9 5 -10 2

    Otra forma de realizar estas operaciones es multiplicando a izquierda por una matriz elemental apropiada.

    1 2F F

    >> P=eye(3); P(1,1)=0; >> P(2,2)=0; >> P(1,2)=1; >> P(2,1)=1; >> P >> P*A

    P = 0 1 0 1 0 0 0 0 1 ans = 2 8 1 5 7 9 9 6 4

    2 32 F F F + 3 >> P2=eye(3); >> P2(3,1)=-2 >> P2*P*A

    P2 = 1 0 0 0 1 0 -2 0 1 ans = 2 8 1 5 7 9 5 -10 2

    Calcular en cada paso la matriz elemental apropiada para cada operacin es pesado y repetitivo., para este tipo de tareas Matlab permite construir al usuario sus propias funciones para abreviar los clculos, esto es, empleamos el modo programado de Matlab.

    El programa Ingresa por teclado la matriz y llamamos a la funcin

    function p=pij(n,i,j) p=eye(n); % partimos inicialmente de la identidad de orden n p(i,i)=0;p(j,j)=0; % modificamos los elementos necesarios. p(i,j)=1;p(j,i)=1; return

    >> pij(3,2,1) *A

    ans =

    2 8 1 5 7 9 9 6 4

  • Ejemplo del mtodo Gauss Jordan desarrollado con Matlab

    Invertir la siguiente matriz 2 0 44 2 68 2 16

    A =

    >> B=[2 0 4 1 0 0;4 -2 6 0 1 0;8 2 16 0 0 1] B = 2 0 4 1 0 0 4 -2 6 0 1 0 8 2 16 0 0 1

    Se define la matriz aumentada

    >> B(2,:)=-2*B(1,:)+B(2,:) B = 2 0 4 1 0 0 0 -2 -2 -2 1 0 8 2 16 0 0 1

    Se elimina el primer elemento de la fila 2

    >> B(3,:)=-4*B(1,:)+B(3,:) B = 2 0 4 1 0 0 0 -2 -2 -2 1 0 0 2 0 -4 0 1

    Se elimina el primer elemento de la fila 3

    >> B(3,:)=B(2,:)+B(3,:) B = 2 0 4 1 0 0 0 -2 -2 -2 1 0 0 0 -2 -6 1 1

    Se elimina el segundo elemento dela fila 3

    >> B(1,:)=2*B(3,:)+B(1,:) B = 2 0 0 -11 2 2 0 -2 -2 -2 1 0 0 0 -2 -6 1 1

    Se elimina el tercer elemento de la fila 1

    >> B(2,:)=-B(3,:)+B(2,:) B = 2 0 0 -11 2 2 0 -2 0 4 0 -1 0 0 -2 -6 1 1

    Se elimina el tercer elemento de la fila 2

    >> format rat >> B B = 1 0 0 -11/2 1 1 0 -1 0 2 0 -1/2 0 0 -1 -3 1/2 1/2

    Se obtiene la matriz identidad y la inversa

    1

    112

    12

    1 12 2

    1 1

    2 0

    3

    A

    =

    Todos estos comandos cambian la matriz original. Si se quiere conservar la matriz original se debe asignar otro nombre a la matriz la cual se ira modificando con las operaciones elementales. En base a este procedimiento se pueden desarrollar diversos ejercicios aplicando Gauus Jordan

  • TRABAJO PRACTICO II OPERACINES CON MATRICES Y DETERMINANTES EN MATLAB

    Hallar la inversa de la matriz aplicando Operaciones elementales (Gauss Jordan):

    1

    0 1 0 0 01 0 0 0 01 1 0 0 13 2 1 0 0

    0 1 0 1 0

    A

    =

    3

    0 1 0 0 01 0 0 0 01 1 0 0 1

    0 0 0 1 20 0 0 0 1

    A

    =

    5

    0 1 0 0 01 0 0 0 02 3 0 1 01 0 0 0 11 1 1 0 0

    A

    =

    2

    1 2 0 1 22 3 1 0 10 1 2 4 21 0 4 1 0

    1 2 1 0 1

    A

    =

    4

    1 2 0 1 52 3 1 0 10 1 2 4 21 0 4 1 0

    1 2 1 0 1

    A

    =

    6

    1 2 1 0 00 1 2 1 00 0 1 2 10 0 0 1 10 0 0 0 1

    A

    =

    Generar las siguientes matrices en Matlab (tal como estn escritas en la prctica) y hallar la inversa de estas aplicando para esto los comandos de Matlab

    1

    16 26 2 8 5422 22 22 22 2216 4 2 8 3222 22 22 22 225 4 2 3 1022 22 22 22 224 10 6 2 1422 22 22 22 2221 14 4 5 222 22 22 22 22

    A

    =

    3

    13 37 1110 57 7 75 35 84 27 14 7

    1 1 302 7 7

    1 3 32 17 7 7

    3 2 512 7 14

    A

    =

    37

    17

    2

    13 1 1 130 3 4 1219 59 3 120 60 20 127 2 3 1

    12 15 15 68 11 6 1

    15 15 15 3

    A

    =

    4

    2 1 1 2

    10 10 10 102 2 2 21 2 2 1

    10 10 10 102 2 2 2

    A

    =

    Generar la matriz de cofactores para cada una de las siguientes matrices. Luego hallar la inversa de las matrices por el mtodo de la adjunta:

    1

    1 2 3 41 4 6 81 4 7 91 3 5 7

    A

    = 2

    3 2 0 10 4 5 11 1 2 31 2 3 6

    A

    = 3

    1 1 4 22 0 3 14 2 1 02 4 1 2

    A

    = 4

    1 3 5 72 5 12 17

    1 5 0 31 3 4 10

    A

    =

  • Hallar la matriz A si es que:

    1

    11 2 72 1 2 7 1 43 1 2 3 1 7

    2 1 1

    A

    =

    4

    0 1 1 4 3 41 0 0 1 1 10 0 2 1 1 10 0 0 1 1 00 0 0 0 1 0

    T

    A

    =

    2

    1 0 2 0 1 10 0 1 1 0 90 1 0 0 6 80 0 1 0 6 4

    T

    A

    = 5

    1 2 3 4 1 4 7 110 1 2 3 1 2 1 10 0 1 2 0 1 4 80 0 0 1 0 2 4 7

    A

    =

    3 ( )1 1 1 11 1 1 111 1 1 141 1 1 1

    Adj A

    = 6

    3 3 4 5 1 2 2 50 3 4 6 0 3 4 60 0 7 8 7 1 0 00 0 0 10 10 13 0 0

    A

    =

    Hallar el rango de la matriz primero aplicando solo el comando adecuado y luego escalonando al mximo por operaciones elementales cada una de ellas

    1

    1 0 0 1 40 1 0 2 50 0 1 3 61 2 3 14 324 5 6 32 77

    A

    = 3 1 1 2 3 42 1 1 2 01 2 1 1 3

    1 5 8 5 123 7 8 9 13

    A

    = 5 17 28 45 11 3924 37 61 13 5025 7 32 18 1131 12 19 43 5542 13 29 55 68

    A

    =

    2

    3 2 1 2 0 14 1 0 3 0 22 1 2 1 1 33 1 3 9 1 63 1 5 7 2 7

    A

    = 4 5 5 10 15 202 1 1 2 01 2 1 1 3

    1 5 8 5 123 7 8 9 13

    A

    = 6 5 0 1 2 0 64 1 0 3 0 2

    2 1 3 1 1 03 1 3 1 1 63 1 5 7 2 1

    A

    =

    Generar las siguientes matrices usando solo los comandos de Matlab y calcular los siguientes determinantes:

    1

    1 0 0 00 2 0 00 0 3 0

    0 0 0 0 15

    A =

    LLL

    M M M O M 3

    1 2 3 151 0 3 151 2 0 15

    1 2 3 0

    A

    =

    LLL

    M M M O ML

    5

    1 2 2 2 22 2 2 2 22 2 3 2 22 2 2 4 2

    2 2 2 2 2 10

    A =

    LLLL

    M M M M O M

    2

    1 2 3 ... 92 3 4 ... 13 4 5 ... 2

    9 1 2 ... 8

    A =M M M O M

    4

    1 1 1 1 11 2 1 1 11 1 3 1 11 1 1 4 1

    1 1 1 1 1 12

    A =

    LLLL

    M M M M O M

    6

    2 2 0 0 0 00 3 3 0 0 00 0 4 4 0 00 0 0 5 0 0

    0 0 0 0 0 9 91 1 1 1 1 1 1

    A

    =

    LLLL

    M M M M O O M

  • Calcular los siguientes determinantes Aplicando la regla de Chio:

    1

    7 1 5 0 00 2 4 0 0

    A 1 1 3 0 04 7 6 2 15 8 3 1 3

    =

    3

    10 2 0 0 012 10 2 0 0

    0 12 10 2 00 0 12 10 20 0 0 12 10

    A = 5

    0 1 1 1 1 11 0 1 1 1 11 1 0 1 1 11 1 1 0 1 11 1 1 1 0 11 1 1 1 1 0

    A

    =

    2

    2 1 1 1 11 3 1 1 1

    A 1 1 4 1 11 1 1 1 11 1 1 1 6

    = 4

    1 0 0 2 30 1 1 2 0

    0 2 0 1 22 1 1 0 00 1 0 1 0

    A

    = 6

    2 3 3 3 3 3

    3 2 3 3 3 3

    3 3 2 3 3 3

    3 3 3 2 3 3

    3 3 3 3 2 3

    3 2 3 3 3 2

    A =

    Dada la matriz A hallar dos matrices L y U de tal manera que se cumpla *A L U=

    1

    1 0 1 0 11 1 1 1 02 4 1 3 22 2 1 0 13 3 1 5 3

    A

    =

    2

    2 13 9 5 79 8 3 0 73 11 7 15 52 7 1 11 4

    0 8 1 9 3

    A

    =

    3

    5 7 9 11 133 5 3 5 0

    2 4 6 8 11 7 14 21 283 2 1 1 2

    A

    =

    Hallar la matriz X si con * *B X A C= ( ) ( )C Adj B B Adj A= = 1 2 0 1 22 3 1 0 10 1 2 4 21 0 4 1 0

    1 2 1 0 1

    A

    =

    Realizar las siguientes operaciones:

    10 2 0 0 012 10 2 0 00 12 10 2 00 0 12 10 20 0 0 12 10

    A

    =

    1 6 5 9 42 6 8 5 35 9 0 7 13 7 5 4 7

    9 7 6 1 3

    B

    =

    ( )1 2 ttE A A A B= + + ( ) ( )1 13t tt 2E A B A B A B = + + + ( ) ( ) ( 11 13 tt t t )E AB A B AB A B = +

    Hallar la inversa de

    o Matriz magica de (7x5) o Matris randonica (2x3)

  • RESOLUCIN DE ECUACIONES Y SISTEMAS DE ECUACIONES (NUMERICAS) CON MATLAB Funciones de Matrices Existen varias factorizaciones de matrices que mencionamos brevemente. La Factorizacin Triangular Factorizacin LU expresa cualquier matriz cuadrada como el producto de dos matrices triangulares. Esta factorizacin se utiliza para obtener el inverso y el determinante. Tambin es la base para la solucin de sistemas lineales. Para obtener la factorizacin LU de A escribimos, [L, U] = lu(A). La Factorizacin Ortogonal Factorizacin QR se utiliza para matrices cuadradas rectangulares. Esta factorizacin se utiliza para resolver sistemas lineales con ms ecuaciones que desconocidas. Esta factorizacin tambin es la base para las funciones null y orth, que generan bases ortonormales para el espacio nulo y rango de una matriz rectangular dada. La Descomposicin de Valores Singulares es importante para el anlisis de problemas que envuelvan matrices. La asignacin triple [U, S, V] = svd(A) produce los tres factores en la descomposicin de valores singulares A = U*S*V'. Las matrices U y V son ortogonales y la matriz S es diagonal. La funcin svd(A) devuelve solamente los elementos de la diagonal de S, que son los valores singulares de A. La Descomposicin de Valores Propios se utiliza para obtener los valores y vectores propios de una matriz cuadrada A. La funcin eig(A) devuelve los valores propios de A en un vector columna. La asignacin [X,D]=eig(A) produce una matriz diagonal D cuyos elementos diagonales son los valores propios de A y las columnas de X son los vectores propios correspondientes. Mtodos de solucin para sistemas de ecuaciones lineales Los mtodos ms comunes para resolver sistemas de ecuaciones lineales de dimensin nxn son:

    Eliminacin de Gauss Factorizacin LU Descomposicin QR

    Solucin por el mtodo de eliminacin de Gauss. Es el que se utiliza con mayor frecuencia para resolver sistemas de ecuaciones lineales. Este mtodo realiza una transformacin del sistema cuadrado:

    A X B = A un sistema

    'I X C = Donde I es la matriz identidad. As la solucin del sistema est dado por:

    'X C= Matlab resuelve sistemas de ecuaciones lineales empleando el mtodo de eliminacin de Gauss empleando la funcin rref y el formato de su empleo es el siguiente: x = rref([A B]) Solucin por el mtodo de factorizacin LU. Si definimos a L como la matriz triangular inferior (lower) y a U como la matriz triangular superior (upper), entonces podemos redefinir la matriz de coeficientes A como:

    L U A = As el sistema A X B = queda expresado como:

  • LU X B = Empleando Matlab es posible resolver sistemas de ecuaciones lineales empleando el mtodo LU. La funcin se denomina lu y el formato de su empleo es el siguiente: >>[L U] = lu(A) % ojo con el espacio entre los corchetes >>X = L*U\B (Para determinar x tambin puede usarse: x = inv(L*U)*B Solucin por el mtodo de descomposicin QR. Con este mtodo, conocido como descomposicin ortogonal triangular, tambin se pueden resolver sistemas no cuadrados (mxn). R es la matriz triangular superior de (mxn) y Q es una matriz unitaria de (mxm) de tal forma que:

    A Q R= .As el sistema A X B = queda expresado como:

    QR X B = Empleando Matlab es posible resolver sistemas lineales empleando el mtodo QR. La funcin se denomina qr y el formato de su empleo es el siguiente: >>[Q R]=qr(A) >>X=Q*R\b Matlab ofrece determinados comandos que permiten resolver ecuaciones y sistemas de ecuaciones. Entre ellos tenemos los siguientes:

    solve(ecuacin, x) Resuelve la ecuacin en la variable x (esto es para el caso simbolico)

    solve (ex1,ex2,...,ecn, x1,x2,...,xn) Resuelve n ecuaciones simultneas ec1,...,ecn en las variables x1,...,xn (sistema de ecuaciones)

    roots(V) Da las races del polinomio cuyos coeficientes son las componentes del vector V.

    X=inv(A)*b Resuelve A*X =b para una matriz cuadrada A, siendo B y X matrices

    X=linsolve(A,b) Resuelve A*X =b para una matriz cuadrada A, siendo B y X matrices

    X=A\B

    Resuelve el sistema A*X=B ( en este caso Matlab utiliza internamente el mtodo de la factorizacion LU)

    Si A es cuadrada pero singular, "A\B" nos proporcionar, generalmente, un mensaje de error aunque el sistema tenga solucin.

    Cuando A no es cuadrada y el sistema es compatible, "A\B" nos proporcionar, generalmente, "una nica solucin"

    X=A/B Resuelve el sistema X*A=B

    X=rref([A,b]) Resuelve un sistema por mtodo Gauss Jordan, (b debe estar como una vector columna) Tt Ttt Ttt

  • Ejemplos:

    Resolver el siguiente sistema por los distintos mtodos: 5 0

    2 3 144 3 2 1

    x y zx y z

    x y z

    = + + = 6+ + =

    Definimos las matrices

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

    >> B=[0;14;16] B = 0 14 16

    Solucion por factorizacion LU Solucion por descomposicion QR >> [L U]=lu(A) L = 1.0000 0 0 0.2000 0.5789 1.0000 0.8000 1.0000 0 U = 5.0000 -1.0000 -1.0000 0 3.8000 2.8000 0 0 1.5789 >> X=L*U\B X = 1.0000 2.0000 3.0000

    >> [Q R]=qr(A) Q = -0.7715 0.5962 -0.2221 -0.1543 -0.5140 -0.8438 -0.6172 -0.6168 0.4885 R = -6.4807 -1.3887 -0.9258 0 -3.4744 -3.3716 0 0 -1.3323 >> X=Q*R\B X = 1.0000 2.0000 3.0000

    Solucin por eliminacin Gaussiana Otra forma de la factorizacion LU >> X=rref([A,B]) X = 1 0 0 1 0 1 0 2 0 0 1 3

    >> X=inv(L*U)*B X = 1 2 3

    Otras formas de obtener la solucin del sistema con Matlab son: Rrrrrrrrhhhhhrrrrrrrrrrrrrrrrrrrrrrrrrrrr Solucion por matriz inversa Solucion por comando de Matlab >> X=inv(A)*B X = 1 2 3

    >> X=linsolve(A,B) X = [ 1] [ 2] [ 3]

    Solucion por division inversa La solicion del sistema: >> X=A\B X = 1.0000 2.0000 3.0000

    1 2x y z 3= = =

  • Resolver el siguiente sistema por operaciones elementales: 2 3 54 4 32 3

    x y zx y zx y z 1

    + = + = + =

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

    Se define la matriz aumentada

    >> A(2,:)=-2*A(1,:)+A(2,:) A = 2 3 -1 5 0 -2 1 -7 2 -3 1 -1

    Se elimina el primer elemento de la fila 2

    >> A(3,:)=-A(1,:)+A(3,:) A = 2 3 -1 5 0 -2 1 -7 0 -6 2 -6

    Se elimina el primer elemento de la fila 3

    >> A(3,:)=-3*A(2,:)+A(3,:) A = 2 3 -1 5 0 -2 1 -7 0 0 -1 15

    Se elimina el segundo elemento de la fila 3

    >> A(2,:)=A(3,:)+A(2,:) A = 2 3 -1 5 0 -2 0 8 0 0 -1 15

    >> A(1,:)=-A(3,:)+A(1,:) A = 2 3 0 -10 0 -2 0 8 0 0 -1 15

    Se elimina el tercer elemento de la fila 2

    >> A(1,:)=-1.5*A(2,:)+A(1,:) A = 2 0 0 2 0 -2 0 8 0 0 -1 15

    Se obtiene la solucin

    1 4 15x y z= = =

    Implementar una funcin Matlab que resuelva el sistema de ecuaciones ( )( )

    5 2 23 6 2 1

    2 1 3

    x ky kz3

    5

    x y k z

    x k y kz

    + + = + + = + + =

    Para un valor arbitrario del parmetro k. (La variable de entrada ser el parmetro k; la de salida, el vector solucin del sistema. Recordar que A\b proporciona la solucin del sistema de ecuaciones con matriz de coeficientes A y vector de trminos independientes b.)

    El programa Ingresamos por teclado la matriz y llamamos a la funcin

    function s=solucion(r) A=[5, 2, r; 3, 6, 2*r-1; 2, r-1, 3*r]; b=[2; 3 ; 5]; s=A\b;

    >> solucion(5) ans = 1/12 -1/24 1/3

  • Implementar una funcin Matlab que realice la factorizacion LU a la matriz

    2 1 1 47 2 9 1

    A3 1 1 11 1 4 2

    =

    El programa Ingresamos por teclado la matriz y llamamos a la

    funcin function [l,u]= LUfactorizacion(a) format rat n=length(a); p=1:n; for i=1:n-1 [maximo,r]=max(abs(a(p(i:n),i)));r=r+i-1; p([i r])=p([r i]); for k=i+1:n l(p(k),i)=a(p(k),i)/a(p(i),i); a(p(k),i:n)=a(p(k),i:n)-l(p(k),i)*a(p(i),i:n); end end for i=1:n l(p(i),i)=1; end u=a(p,:); return

    >> A=[2 -1 1 4;7 2 9 -1;3 -1 1 1;1 1 -4 -2]; >> [l,u]= LUPfactorizacion(A)

    Implementar una funcin Matlab que resuelva el sistema de ecuaciones

    03 2 3

    2 20 0 3

    x y z wx y z w

    x y z wx y z w

    + + = + + = + = + + + =

    719

    El programa Ingresamos por teclado la matriz A y B function x = gauss(a,b) n=length(a); % transformacion del sistema en uno triangular for i=1:n-1 for k=i+1:n m=a(k,i)/a(i,i); for j=i+1:n a(k,j)=a(k,j)-m*a(i,j); end b(k)=b(k)-m*b(i); end end % resolucion del sistema triangular x=zeros(n,1); % tambien vale x=b*0; x(n)=b(n)/a(n,n); for i=n-1:-1:1 s=0; for j=i+1:n s=s+a(i,j)*x(j); % sumatorio end x(i)=(b(i)-s)/a(i,i); end return

    >> A=[1 1 -1 1;3 -1 2 3;1 2 -2 -1;0 0 3 1] >> B=[0 7 -1 9]' >> x=gauss(A,B)

    A =

    1 1 -1 1 3 -1 2 3 1 2 -2 -1 0 0 3 1

    B =

    0 7 -1 9

    x =

    1 2 3 0

  • Resolver el siguiente sistema con solucin nica y mostrar la grafica

    3 4 06 3 46 9 4 0

    1

    y zx y zx y z

    x y z

    = = + = + + =

    0

    La solucin del sistema

    >> A = [0 3 -4; 6 -3 -4; 6 -9 4; 1 1 1]; >> B = [0; 0; 0; 1]; >> X = A\B X = 0.3636 0.3636 0.2727

    La grafica de los cuatro planos

    >> [x,y] = meshgrid(-4:0.5:5); >> z1 = 3*y/4; >> z2= (6*x - 3*y)/4; >> z3= (-6*x + 9*y)/4; >> z4= 1- x - y; >> surf(x,y,z1) >> hold on >> surf(x,y,z2) >> surf(x,y,z3) >> surf(x,y,z4)

    Resolver el siguiente sistema incompatible y mostrar la grafica13 3

    1

    x zx y zx y z

    + = + = + =

    La solucin del sistema

    >> A = [1 0 1; 1 -1 3; 1 1 -1]; >> B = [1; -3; 1]; >> X = A\B Warning: Matrix is singular to working precision. (Type "warning off MATLAB:singularMatrix" to suppress this warning.) X = Inf Inf Inf La grafica de los planos

    >> [x,y] = meshgrid(-4:0.5:5); >> z1 = 1-x; >> z2= (-3-x+y)/3; >> z3= x +y-1; >> surf(x,y,z1) >> hold on >> surf(x,y,z2) >> surf(x,y,z3)

  • Resolver el siguiente sistema con infinitas soluciones y mostrar la grafica 4

    3 24 2 3 1

    x yx y z

    x y z

    = + = + =6

    >> A = [1 -1 0; 1 3 -2; 4 2 -3]; >> B = [4; -6; 1]; >> X = A\B Warning: Matrix is close to singular or badly scaled. Results may be inaccurate. RCOND = 9.251859e-018. (Type "warning off MATLAB:nearlySingularMatrix" to suppress this warning.) X = 3.5000 -0.5000 4.0000 >> [x,z] = meshgrid(-4:0.5:5); >> y1 = x-4; >> y2= (-6-x+2*z)/3; >> y3= (1-4*x+3*z)/2; >> surf(x,z,y1) >> hold on >> surf(x,z,y2) >> surf(x,z,y3)

    Mostrar grficamente que tipo de solucin tiene el sistema de ecuaciones 2 3 54 4 3 32 3

    x y zx y zx y z

    + = + = + = 10 4

    23

    0

    2 5 27 7 0

    x y zx y zx y z

    + + = + + = + + =

    3 2 2 32 3 35 2 43 4 2

    x y zx y zx y zx y z

    + = + = + = + + =

    >> [x,y] = meshgrid(-3:0.2:3); >> z1=2*x+3*y-5; >> z2=(4*x+4*y-3)/3; >> z3=-1-2*x+3*y; >> surf(x,y,z1) >> hold on >> surf(x,y,z2) >> surf(x,y,z3)

    >> [x,y] = meshgrid(-3:0.2:3); >> z1=-x-y; >> z2=(2*x-5*y)/2; >> z3=7*x-7*y; >> surf(x,y,z1) >> hold on >> surf(x,y,z2) >> surf(x,y,z3)

    >> [x,y] = meshgrid(-3:0.2:3); >> z1=(3*x+2*y-3)/2; >> z2=(2*x+3*y-4)/3; >> z3=(2-5*x+2*y)/4; >> z4=(3-3*x-4*y)/2; >> surf(x,y,z1) >> hold on >> surf(x,y,z2) >> surf(x,y,z3) >> surf(x,y,z4)

    El sistema tiene solucin

    nica El sistema tiene infinitas

    soluciones El sistema es inconsistente no existe un punto o puntos

    donde se intersectan los cuatro planos

  • TRABAJO PRCTICO III SISTEMAS DE ECUACIONES CON MATLAB

    Resolver los siguientes sistemas de ecuaciones con todos los comando disponibles en Matlab

    1 2 4 13 7 2 212 11 16 5

    x y z wx y z wx y z w

    + = + + + = = 9

    2 3 23 3 3 33 3 63 3 6

    x y z wx y z wx y z wx y z w

    46

    + + = + + + = + = + = 17

    3 3 2 108 6 5 2 24 2 3 83 5 3 157 4 5 2 1

    x y z wx y z wx y z wx y z wx y z w

    + + + = + + + = + + + = + + + = + + + =

    1

    8

    2 9 27 3 3 129 27 10 1 191 3 5 9 6

    10

    02 3 4 03 6 10 04 10 20

    x y z wx y z wx y z wx y z w

    + + + = + + + =0

    + + + = + + + = 18

    2 3 43

    3 3 17 3 3

    x y z wy z wx y w

    y z w

    4 + = + = + = + + =

    3 1 0 1 2 7 41 4 21 2 2 53 0 3 6 7 2

    8

    11

    42 2

    2 2 52 2 3

    x z wx y z wx y w

    x y w

    + = + + = + = + + = 19

    2 5 10 22 4 4

    2 4 8 162 2

    x y z wx z wx y z w

    y z w0

    + + + = = + + + = + + =

    4 2 3

    2 42 2

    x y zx y z

    x y z

    + + = + = + =

    19

    6

    12

    3 7 9 44 4 7

    2 3 02 4 62

    x y z wx y z w

    x z wx y z w

    + + + = + + + = = = 20

    2 3 13 2 12 2 25 5 2 2

    x y z wx y z wx y z wx y z

    1

    + + = + + = + + = + + =

    5 5 4 1

    2 10 8 33 15 12

    x y zx y zx y z

    + + = + + = + + = 5 13

    2 22 0

    3 34 2

    5 5

    x y z w ux y z w ux y z w ux y z w ux y z w u

    + + + + = + + + + = + + + + = + + + + = + + + + =

    21 2 4 6 184 5 6 242 7 12 40

    x y zx y zx y z

    + + = + + = + + =

    6

    2 3 02 4 2 63 6 3 9 0

    3 2 0

    x y z wx y z wx y z w

    x y z w

    + + = + + = + + = + + + =

    06

    14

    2 8 8 102 3 8

    3 4 102 3 4

    x y z wx y z wx y z w

    x y z w

    + + = + + = + + = + = 22

    3 4 52 3 4

    3 2 5 14 3 5 5

    x z wx z wx y wx y z

    2

    + = + = + = + =

    7

    2 3 13 22 3

    2 3

    x y z wx y z wx y z w

    x y z w

    + + + = = + = + =

    464

    4

    15

    2 3 43

    3 3 17 3 3

    x y z wy z wx y w

    y z w

    + = + = + = + + = 23

    2 3 13 22 3

    2 3

    x y z wx y z wx y z w

    x y z w

    464

    + + + = = + = + =

    8

    2 3 2 62 2 33 2 2 42 3 2

    x y z wx y z wx y z wx y z w

    + + = = + + = + + =

    8

    82

    16

    3 4 52 3 4

    3 2 5 14 3 5 5

    y z wx y wx y zx y z

    + = + = + = + = 24

    2 3 23 3 3 23 3 2 63 3 6

    x y z wx y z wx y z wx y z w

    + + = + + + = + = + =

    46

  • Resolver por el mtodo de operaciones elementales.

    1

    3 3 2 108 6 5 2 24 2 3 83 5 3 157 4 5 2 1

    x y z wx y z wx y z wx y z wx y z w

    + + + = + + + = + + + = + + + = + + + =

    1

    8

    00

    00

    4

    4 6 44 6 4

    4 6 06 4

    4 6 4

    x y z w ux y z w ux y z w ux y z w u

    x y z w u

    + + + + = + + + + = + + + + = + + + + = + + + + =

    7

    2 3 4 22 3

    2 3 102 2 6 23

    5 4 3 3 12

    x y z u wx y z ux y z uy z u wx y z u w

    2 + + = + = + = + + + = + + + =

    2

    4 3 102 2 14 44

    8 4 8 35 17 5 13 44

    x y z wx y z

    x y z wx y z w

    + + = + = + + = + + = 5

    2 4 8 2 43 5

    4 6 14 2 12 11

    x y z wx y z

    x y z wx y z w

    + + = + + = 4+ + = + + = 8

    4 2 2 02 3 2 0

    3 4 34 4 0

    x y wx z w

    x y z wx z w

    + = + = 0+ + = + =

    3 2 12 1

    5 5

    x y z wx y z wx y z w

    + + = + = + + = 6

    5 4 3 12 235 3 8 1

    x y z wx y z wx y z w

    0+ + + = + = + + + =

    9 7 4 3 13

    6 8 5 03 3 11 2 1

    x y z wx y z wx y z w

    + + = + = 3+ + =

    Resolver simultneamente los sistemas utilizando el comando rref.

    1 2 3 4 1

    2 3 15 11

    x y zx y z

    x y z

    + = + = + = 6 7 2

    2 3 4 12 3 0

    5 11

    x y zx y z

    x y z

    + = + = + = 3

    2 3 4 12 3 2

    5 11

    x y zx y z

    x y z

    + = + = 7 + =

    Resolver con el comando rank.

    1

    3 22 5

    2 82 1

    3 1

    x y z wx y t w

    x t wy z t w

    x y z t

    + + = + + = + = + + = + + =

    187

    03

    2

    2 02 13 3 3 4 24 5 5 7

    x y z wx y z wx y z wx y z w

    + = + + = + + = + + = 3

    12

    1 23 5

    72

    3 3 14 15 1

    3 2

    x y zx zx y zx y z

    + = = + = + = 2

    0

    Mostrar grficamente que tipo de solucin tiene los sistemas de ecuaciones

    1 2 4 6 184 5 6 242 7 12 40

    x y zx y zx y z

    + + = + + = + + = 4

    2 32 0

    0

    x y zx yy z

    + + = + = + = 7

    2 23 43 2 3

    x y zx y zx y z

    + + = + + = + + =

    1

    50

    2 2 5

    2 27 1

    x y zx y z

    x y z

    + = + = + = 5

    2 4 6 184 5 6 242 7 12 40

    x y zx y zx y z

    + + = + + = + + = 8

    03 6 5

    4 3 0

    x y zx y z

    x y z

    + + = + + = + + =0

    6

    3 5 4 1

    2 10 8 33 15 12 5

    x y zx y zx y z

    + + = + + = + + = 6

    5 02 3 14

    4 3 2 1

    x y zx y z

    x y z

    = + + = + + = 9

    2 23 43 2 3

    x y zx y zx y z

    + + = + + = + + =

    1

    Utilizando el comando inv(A) resolver.

    o A=matriz mgica (5x5) B=vector randonico de(5x1) o Amatriz magica de (7x7) B matrisnula de (7x1)

    Introducir la matriz de coeficientes solo utilizando el comando ones, y luego resolver el sistema.

  • :

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    3 5 0 0 0 0 0 0 0 0 16 3 5 0 0 0 0 0 0 0 0.780 6 3 5 0 0 0 0 0 0 3.140 0 6 3 5 0 0 0 0 0 70 0 0 6 3 5 0 0 0 0 100 0 0 0 6 3 5 0 0 00 0 0 0 0 6 3 5 0 00 0 0 0 0 0 6 3 5 00 0 0 0 0 0 0 6 3 50 0 0 0 0 0 0 0 6 3

    xxxxxxxxxx

    =

    10013

    5.732

    Resolver por el mtodo de operaciones elementales utilizando la funcion solucion anteriormente desarrollada.

    1

    1

    2

    3

    4

    1 2 2 0 12 4 1 0 43 6 12 2 12

    1 2 2 4 3

    xxxx

    =

    3

    1

    2

    3

    4

    5

    1 3 5 7 9 22 4 3 1 8 20 2 1 1 7 03 3 4 7 6 22 6 8 9 1 2

    xxxxx

    =

    2

    1

    2

    3

    4

    5 6 1 2 32 1 1 1 08 1 2 1 3

    5 2 3 1 4

    xxxx

    = 4

    1

    2

    3

    4

    1 3 5 7 123 5 7 1 05 7 1 3 47 1 3 5 16

    xxxx

    =

    5 Si ( ) ( ) ( ) ( )C 2 A :,1 A :, 2 3 A :,3 4 A :, 4= + + resolver 2 4 4 06 12 24 4

    X=C5 2 2 41 9 7 8

    Preparar tres funciones que efecten cada una de las tres operaciones elementales sobre una matriz dada. Las funciones tendran los siguientes encabezamientos function B=mprodf(A,i,lambda) % multiplica la fila i de la matriz A por lambda function B=msumf(A,i,j,lambda) % suma a la fila i de la matriz A, la fila j % multiplicada por lambda function B=minterf(A,i,j) % intercambia las filas i y j de la matriz A

  • APLICACIN AL ALGEBRA LINEAL (SIMBLICO)

    Las matrices simblicas se introducen de dos formas:

    Igual que las numricas, declarando previamente las variables como simblicas:

    >> syms a b c d >> H=[a b;c d]

    En una nica entrada, mediante el uso de la comilla simple de la siguiente manera:

    >> H=sym([a,b;c,d]) Notar que tanto 1) como 2) sirven para introducir en Matlab la matriz

    COMANDO ACLARACION >>sym2poly(S) Convierte S en un vector de coeficientes de polinomio. >> symadd(A,B) Realiza una suma simblica, A+B >> symsub(A,B) Realiza una resta simblica, A-B >> symmul(A,B) Realiza una multiplicacin simblica, A*B >> symdiv(A,B) Realiza una divisin simblica, A/B >> sympow(A,B) Realiza una elevacin a potencia simblica, A^B >> sympow(A,n) Realiza una elevacin a potencia simblica, A^n >> sympow(A,-1) Devuelve la inversa de A >> sym(A,i,j,n) Reemplaza el elemento (i,j) de la matriz A por el numero n >> sym (A,i,j) Selecciona y extrae el elemento (i,j) de la matriz A >> symsize(A) Devuelve las dimensiones de una matriz (numero de filas y columnas) >> sym(zero(m,n)) Devuelve una matriz mxn de ceros >> sym(eye(n)) Devuelve una matriz identidad de orden n >> sym(hilb(n)) Crea la matriz simblica de Hilbert de orden n a partir de su numrica >> sym(toeplitz(n)) Crea la matriz simblica de Toeplitzde orden n a partir de su numrica

    >> sym(vander(n)) Crea la matriz simblica de Vandermonde de orden n a partir de su numrica >> det calcula el determinante >> diag escribe la diagonal de una matriz >> expm exponencial matricial >> inv calcula la matriz inversa >> null escribe una base del espacio nulo >> rank rango de una matriz >> tril matriz triangular superior. >> triu matriz triangular inferior >> rref Reduce a la forma echelon. >> [V,E]=eig(A) calcula autovalores y autovectores >> [Q,D]=eigensys(A) Proporciona los autovectores y autovalores simblicamente. >> svd calcula los valores y vectores singulares >> poly escribe el polinomio caracterstico >> factor(A) Factoriza el polinomio caracterstico de A >> jordan Forma cannica de Jordan >> colspace Forma una base para el espacio de columnas A. Para calcular el rango.

    >> subexpr(V,'S') Asigna una subexpresin presente en V a la variable S. reescribe la expresin simblica con alguna sub expresin comn >> subs(V,a,N) Asigna el valor N a la variable a en el vector V >> simple(A) Simplifica la matriz A >> H = sym(H) Transforma una matriz numrica en una simblica >> V = vpa(A) Devuelve una matriz numrica con exactitud de 16 dgitos >> transpose(A) Obtiene la transpuesta de la matriz A

  • ccode C code representation of symbolic expression char Convert symbolic objects to strings double Convert symbolic matrix to MATLAB numeric form emlBlock Convert symbolic expression to Embedded MATLAB Function block fortran Fortran representation of symbolic expression int8, int16, int32, int64

    Convert symbolic matrix to signed integers

    latex LaTeX representation of symbolic expression matlabFunction Convert symbolic expression to function handle or file poly2sym Polynomial coefficient vector to symbolic polynomial simscapeEquation Convert symbolic expressions to Simscape language equations single Convert symbolic matrix to single precision sym2poly Symbolic-to-numeric polynomial conversion uint8, uint16, uint32, uint64

    Convert symbolic matrix to unsigned integers

    Back to Top

    ceilRound symbolic matrix toward positive infinityconjSymbolic complex conjugateeqPerform symbolic equality testfixRound toward zerofloorRound symbolic matrix toward negative infinityfracSymbolic matrix elementwise fractional partsimagImaginary part of complex numberlog10Logarithm base 10 of entries of symbolic matrixlog2Logarithm base 2 of entries of symbolic matrixmodSymbolic matrix elementwise modulusprettyPretty-print symbolic expressionsquoremSymbolic matrix elementwise quotient and remainderrealReal part of complex symbolic numberroundSymbolic matrix elementwise roundsizeSymbolic matrix dimensionssortSort symbolic vectors, matrices, or polynomialssymSymbolic numbers, variables, and objectssymsShortcut for constructing symbolic objectssymvarFind symbolic variables in symbolic expression or matrix Ntese que en el calculo simblico se prescinde del punto que se antepona con algunas operaciones para indicar que dicha operacin se hacia coordenada a coordenada. Si en algn momento dudamos si una funcin es de datos o simblica se puede recurrir a la instruccin class. >>class(x) ans sym Que nos advierte de que x es una variable simblica. El Symbolic Math Toolbox tiene otras funciones algunas de ellas dan acceso al Maple llamadas mfun cuya lista puede verse escribiendo mfunlist.

    Para la matriz Aa b cb c ac a b

    = >>>

    syms a b c > A = [a b c; b c a; c a b]

    definimos de cualquiera de las dos formas >> A=sym('[a b c;b c a;c a b]')

    A = [ a, b, c] [ b, c, a]

  • [ c, a, b] Suma los elementos de la primera fila

    >> sum(A(1,:)) ans = a+b+c

    Suma >> S=A+A

    S = [ 2*a, 2*b, 2*c] [ 2*b, 2*c, 2*a] [ 2*c, 2*a, 2*b]

    Multiplicacin por un escalar

    >> 1/2*A

    a ns = [ 1/2*a, 1/2*b, 1/2*c] [ 1/2*b, 1/2*c, 1/2*a] [ 1/2*c, 1/2*a, 1/2*b]

    >> M=A*A

    Multiplicacin

    >> A^2

    >> M=A*A M = [ a^2+b^2+c^2, a*b+b*c+c*a, a*b+b*c+c*a] [ a*b+b*c+c*a, a^2+b^2+c^2, a*b+b*c+c*a] [ a*b+b*c+c*a, a*b+b*c+c*a, a^2+b^2+c^2]

    Rango >> rank(A) ans = 3

    Determinante >> determinate=det(A) determinate = 3*a*b*c-a^3-b^3-c^3

    >> transpuesta=A' transpuesta

    >> transpuesta=transpose(A)

    transpuesta = [ conj(a), conj(b), conj(c)] [ conj(b), conj(c), conj(a)] [ conj(c), conj(a), conj(b)]

    Inversa >> inv(A)

    Para la matriz calcular

    a b c db a d cc d a bd c b a

    B

    =

    -1BB B

    1 Define matriz >> syms a b c d >> A=[a b c d;-b a -d c;-c d a -b;-d -c b a]

    2 Calcula el determinante y simplifica la respuesta >> deter=det(A) >> Deter_2=simple(deter)

    3 Multiplica la matriz por su inversa y asigna una subexpresion comn en la matriz para simplificar >> M=A*inv(A); >> Q=subexpr(M,'S')

    Los resultados obtenidos despus de cada operacin:

    1

    A = [ a, b, c, d] [ -b, a, -d, c] [ -c, d, a, -b] [ -d, -c, b, a]

  • 2

    d eter = a^4+2*a^2*b^2+2*c^2*a^2+2*a^2*d^2+b^4+2*d^2*b^2+2*b^2*c^2+c^4+2*c^2*d^2+d^4

    D eter_2 = (a^2+b^2+c^2+d^2)^2

    3

    S = a^2/(a^2+b^2+c^2+d^2)+b^2/(a^2+b^2+c^2+d^2)+c^2/(a^2+b^2+c^2+d^2)+d^2/(a^2+b^2+c^2+d^2)

    Q =

    [ S, 0, 0, 0] [ 0, S, 0, 0] [ 0, 0, S, 0] [ 0, 0, 0, S]

    Para la matriz discutir el valor de x

    3 1 1 44 10 1

    A1 7 17 32 2 4 3

    x =

    C = [ 3, 1, 1, 4] [ x, 4, 10, 1] [ 1, 7, 17, 3] [ 2, 2, 4, 3]

    >> syms x C=[3 1 1 4;x 4 10 1;1 7 17 3;2 2 4 3]

    C = [ 1, -1, -3, 1] [ x, 4, 10, 1] [ 1, 7, 17, 3] [ 2, 2, 4, 3]

    >> C(1,:)=-C(4,:)+C(1,:)

    C = [ 1, -1, -3, 1] [ x, 4, 10, 1] [ 0, 8, 20, 2] [ 0, 4, 10, 1]

    >> C(3,:)=-C(1,:)+C(3,:); >> C(4,:)=-2*C(1,:)+C(4,:)

    C = [ 1, -1, -3, 1] [ x, 0, 0, 0] [ 0, 0, 0, 0] [ 0, 4, 10, 1]

    >> C(2,:)=-C(4,:)+C(2,:); >> C(3,:)=-2*C(4,:)+C(3,:)

    De la ultima expresin : Si rango 2 0x = Si rango 3 0x

    TRABAJO PRCTICO IV MATRICES, DETRMINANTES Y SISTEMAS DE ECUACIONES CON MATLAB SIMBOLICO

    Discutir el rango de las matrices utilizando comandos propios de Matlab:

    1 1 3 1

    A 0 2 2 34 6 1

    x

    x

    = 4

    1 0 1 3A 0 1 2 6

    0 0a b

    = 7

    1 1 0 3A 0 0 1 2

    0 2a b

    =

    2

    3 2 5 4 05 3 2 1 1

    A11 7 12 94 3 13 11

    ab

    =

    5

    1 10 2 34 2 4 6

    A1 4 11 0

    ab a

    =

    8

    1 4 2 11 3 0 2

    A2 625 8 / 2

    a ab a

    =

  • 3

    1 3 1 52 1 3 3

    A1 1 24 3 6 10

    a

    =

    6

    1 4 2 11 3 0 2

    A13 5

    1 4a a

    b 4

    =

    9

    3 1 1 40 4 10

    A1 7 17 32 2 4 3

    x =

    Discutir el rango de las matrices escalonando esta por operaciones elementales:

    1 1 2 5 0 5

    A 0 0 2 20 0 0 2

    ab

    = 4

    2 1 1 24 1 2

    A 5 2 2 21 28 3 2

    xx

    x

    4

    8x

    + = +

    7

    2 1 1 24 2 2 4

    A 5 2 3 21 3 28 3 2 1

    x

    x xx

    = + 6

    2

    1 00 1

    A1 0

    0 1

    x xx xx x

    x x

    =

    5 ( )2

    2

    2 4

    1 2 2A 1 2 4

    1

    x xx x

    x x

    + + = 8

    1 0 1 2A 2 1 0 5 7

    1 10 0 6 1 2

    xx

    =

    3

    3

    1 3 02 2 6 1

    A2 6 21 1 3 0

    aa

    a

    =

    6

    2 1 12 1 0 1

    A 0 0 1 12 1 1 20 1 2 3

    a =

    9

    1 3 5 0 12 1 3 1 5

    A 2 5 1 65 1 11 2 3 25 8 18 8

    a aa

    a

    = + +

    Calcular la inversa de

    1

    2 4 3 11 1 1 3

    A2 0 3 0

    4 3 3 0

    =

    3

    0 2 0 43 0 2 4

    A1 3 4 21 1 0 1

    =

    5

    2 3 4 23 3 0 3

    A2 1 1 3

    3 2 1 4

    =

    0

    2

    3 4 2 31 0 3 2

    A2 3 3 13 2 4 2

    =

    4

    0 00 0 0

    A0 0 00 0 0

    xx

    xx

    =

    6 2 2 2 2

    2 2 2 2

    2 1 1 2

    A1 2 2 1

    x x x x

    x x x x

    =

    Calcular el determinante desarrollando la regla de Chio y verificar con el comando det

    1 2 2 2 23 3 3 3

    1 1 1 1

    Aa b c da b c da b c d

    =

    4

    1 0 1 10 1 1 1

    A

    1 1 1 0a b c d

    =

    7

    0 1 1 11 0

    A1 01 0

    a ba cb c

    =

    2 A

    a b c db a d cc d a bd c b a

    =

    5

    1 1 1 11 1 1 1

    A1 1 1 11 1 1 1

    xx

    x

    + = + +

    8

    2

    2

    2

    2

    11

    A11

    a a b c db b a c dc c a b dd d a b c

    + + + + = + + + +

  • 3 2

    2

    1 1 2 31 2 2 3

    A2 3 1 52 3 1 9

    x

    x

    =

    6

    0 1 1 01 1 1

    A 1 0 1 0 10 1 1 10 1 1 0

    xx

    xx

    0

    x

    =

    9

    0 0 0 00 0 0 00 0 0 0

    A0 0 0 00 0 0 0

    0 0 0 0

    a ba b

    a bb a

    b ab a

    =

    Hallar los valores de x si el determinante es cero

    1

    1 1 1 11 1 1 1

    A 1 1 1 11 1 1 1

    1 1 1 1

    xx

    xx

    x

    =

    2

    11

    A 111

    x a b ca x b ca b x ca b c xa b c d

    =

    3 A

    x y y y yy x y y yy y x y yy y y x yy y y y x

    =

    Calcular el determinante transformndola a una matriz triangular

    1

    1 0 0 04 2 0

    A 0 3 3 00 0 2 40 0 0 1

    aa

    aa

    a

    =

    0 0 2

    0 1 1 01 1 1

    A 1 0 1 0 10 1 1 10 1 1 0

    xx

    xx

    x

    =

    3

    1 1 1 1 1 11 1 1 1 1 11 1 1 1 1 1

    A1 1 1 1 1 11 1 1 1 1 11 1 1 1 1 1

    xx

    yy

    zz

    + += + Hallar el valor de a para que la matriz tenga inversa

    1) 2)

    1 2 6 21 3 1

    A3 0

    0 4 8 1

    aa

    = 2

    1 3 4 61 2 4

    A1 4 6 8

    0 1 2

    a

    a

    =

    Para la matriz hallar

    0 00 0 0

    A0 0 00 0 0 0

    ab

    c

    =

    0

    1

    1

    20A

    Una matriz es nilpotente si , probar que si es nilpotente entonces

    es inversible y

    N N 0r r= N

    A=I-N ( ) 1 2 3I-N =I+N+N +N + +Nr L . Verificar para la matriz 1 2 3 4 50 1 2 3 4

    A 0 0 1 2 30 0 0 1 20 0 0 0 1

    = Resolver los siguientes sistemas de ecuaciones con todos los comando disponibles en Matlab

  • 1

    3 7

    5 13 5 22 1

    x y mx y nx y m

    x y m n

    = + = = + = + n

    3

    3 2 5 45 3 211 7 12 94 3 13 11

    x y z wx y z w kx y z w m

    x y z w n

    + + + = + + + = + + + = + + + = 5

    3 25 8 9 32 1

    x y z bx y zx y az

    + = + = + + =

    2

    ( )( )

    2 24 1 2

    2 22 8

    8 3 2

    x y zx a y zx a y z

    x ay zx y z a

    + = + + = + + + = = + =

    4

    1 4 ( )

    ( )

    2 12 1 3 1

    3 2

    ax by zax b y zax by b z b

    + = + + = + + = 6

    ax by bz abx ay bz bbx by az a

    + + = + + = + + =

    Hallar los valores de a b, c y d para que se verifique:

    1

    1 0 2 00 0 1 1 1 0 6 5

    1 3 9 2 0 1 0 0 1 9 8 40 0 1 0

    a b c d =

    0b

    2

    1 1 2 02 1 3 0 1 2 11 5

    A2 1 0 3 0 0 5 7 1

    0 0 1 1

    b d aa c

    =

    Hallar la inversa de la matriz aplicando Operaciones elementales (Gauss Jordan):

    1 1 1 11 1 1 1

    A 1 1 1 11 1 1 1

    1 1 1 1

    xx

    xx

    x

    =

    y a partir de ella obtener: La tercera fila. La cuarta columna. El vector formado por los elementos que ocupan las posiciones impares de la fila 4. El vector formado por los elementos que ocupan las posiciones pares de la columna 1. La submatriz formada por los elementos que ocupan las posiciones donde se cruzan las filas 2

    y 4 y las columnas 1, 3 y 5. La submatriz que se obtiene al suprimir las filas 2 y 4, y las columnas 1 y 3. La matriz que se obtiene de A al aadirle (pegarle) una fila cuyo i-esimo elemento sean la

    suma de la i-esima columna de A, y una columna cuyo i-esimo elemento sea la suma de lai-esima fila de A (El comando sum te puede ser de ayuda).

    PROGRAMACIN LINEAL CON MATLAB La caja de herramientas de optimizacin o denominado Toolbox extiende la capacidad de MATLAB, acercndolo a un ambiente numrico computacional. Toolbox incluye rutinas de muchos tipos, incluyendo la optimizacin

    Minimizacin no lineal sin restricciones. Minimizacin no lineal con restricciones, problemas de minimizar y maximizar, y problemas de

    minimizacin semi-infinitos. Programacin cuadrtica y lineal. No lineal, mnimos cuadrados y curvas adecuadas.

  • Solucin de ecuaciones de sistemas no lineales. Restricciones lineales de mnimos cuadrados. Problemas de larga escala

    Se pueden afrontar problemas de optimizacion de tres maneras:

    Extender la capacidad de optimizacin de la caja de herramientas escribiendo sus propios m-files,

    Usando la caja de herramienta optimization toolbox con otras cajas de herramientas, o con MATLAB o Simulink

    Utilizando la herramienta de optimizacin (optimtool), que es un GUI , para seleccionar la solucin, especificando las opciones de optimizacin y los problemas corrientes. Se puede definir y modificar los problemas rpidamente con GUI

    Aqu se describir como se deber realizar la utilizacin de cada una de estas funciones de optimizacin: Definicin de la Funcin Objetivo Muchas de las funciones de optimizacin requieren que se cree una funcin de Matlab que calcule la funcin objetivo. La funcin, en la entrada debe aceptar vectores, y retornar a la salida un escalar de tipo doble. Existen dos maneras de crear la funcin objetivo:

    Se crea una funcin annima en la lnea de comando. Por ejemplo, si se crea una funcin annima para 2x , se coloca:

    >> square = @ [(x)]* x.^2; Y se llama a la funcin de optimizacin con el cuadrado del primer argumento de la entrada. Se puede usar este mtodo si la funcin objetivo es relativamente sencilla, y no requiera ser utilizada en una sesin futura de Matlab.

    Si se escribe un M-file para la funcin, por ejemplo, para escribir la funcin 2x como un m-file,

    se debe abrir un nuevo archivo en el editor MATLAB y se deber colocar el siguiente cdigo:

    function y = square(x) y = x.^2; Se puede llamar la funcin de optimizacin con @ al cuadrado como el primer argumento de entrada. El signo @ crea una funcin manejable al cuadrado. Este mtodo se emplea si la funcin objetiva es complicada o si se sospecha que tal funcin ser utilizada en una prxima sesin de MATLAB.

    Maximizacin. Las funciones de optimizacin fminbnd, fminsearch, fminunc, fmincon, fgoalattain, fminimax, lsqcurvefit, y lsqnonlin todas realizan la minimizacin de la funcin objetivo ( )xf . La maximizacin es alcanzada sustituyendo en las rutinas con ( )xf . Asimismo para alcanzar la maximizacin para quadprog se sustituye H y f , y para linprog f . Restricciones Mayores que Cero. La Caja de herramientas de Optimizacin (Toolbox) asume que las restricciones de desigualdad no lineales son de la forma ( )iC x 0. Las restricciones mayores que cero son expresadas como menores que cero multiplicndolas por -1. Por ejemplo, una restriccin de

  • la forma 0 es equivalente a la restriccin ( )iC x ( ) 0iC x ; una restriccin de la forma ( )iC x b es equivalente a la restriccin ( ) 0iC x b + Maximizacin vs Minimizacin. La optimizacin funciona en la caja de herramienta minimizando la funcin objetivo. Para maximizar la funcin f se aplica una optimizacin para minimizar la funcin f . El punto resultante donde el mximo f ocurre tambin es el punto donde el mnimo de f ocurre. Problemas Cubiertos por la Caja de Herramientas. Las siguientes tablas muestran las funciones disponibles para la minimizacin y maximizacin de las funciones a utilizar en este trabajo especial de grado, donde la funcin objetivo es una ecuacin lineal con restricciones lineales o no lineales de desigualdad.

    TIPO NOTACION FUNCION

    Programacin Lineal min

    , , 1

    T

    eq eq

    f x tal queAx b A x b x u = >> linprog

    Minimizacin de restricciones ( ) ( )min

    0 0

    , , 1

    T

    eq

    eq eq

    f x tal quec x c xAx b A x b x u

    = =

    >> fmincon

    Comando linprog >> linprog se utiliza para resolver problemas de programacin lineal de la forma:

    min tal queT eq eq

    Ax bf x A x b

    Ib x ub

    =

    Donde: , , , , , eqf x b b Ib ub son vectores y A y son matrices eqA >> x = linprog(f,A,b) soluciona min f'*x tales que A*xb

    >> x = linprog(f,A,b,Aeq,beq)

    Soluciona el problema descrito inicialmente (1), mientras que adems satisface la igualdad de las restricciones Aeq*x = beq. Se coloca A=[ ] y b=[ ] si no existen desigualdades

    >> x = linprog(f,A,b,Aeq,beq,lb,ub)

    Se definen los limites inferior y superior sobre la variable de diseo en x, de modo que la solucin este siempre entre el rango lb x ub. Se coloara Aeq = [ ] y beq = [ ] si no existen igualdad.

    >> x = linprog(f,A,b,Aeq,beq,lb,ub,x0)

    fija el punto de partida x0. Esta opcin esta solamente disponible con el algoritmo a media escala (la opcin de Larga Escala, se fija a off usando optimizacin). El defecto del algo