sistemas_lineales

download sistemas_lineales

of 20

description

Ayuda para los sistemas lineales, solo aquí aportando para descargar unas cosas.

Transcript of sistemas_lineales

  • Indice

    Aplicaciones de los Sistemas Lineales

    Mtodo de eliminacin de Gauss

    Limitaciones de los Mtodos Directos

  • AplicacionesUna red elctricaLeyes de Kirchhoff y OhmFormulacin algebraicaUna red de callesGrafo dirigidoMatriz de incidenciaFormulacin algebraicaExpresin matricialLa ecuacin del calor

  • Una red elctrica

  • Leyes de Kirchhoff y Ohm

    Ley de los nudosIbc = I1 - I2Ley de las mallasVab + Vbc + Vcd = VLey de OhmVbc = R2 ( I1 - I2 )Formulacin algebraicaMalla 1R1 I1 + R2 ( I1 - I2 ) + R4 I1 = VSistema de ecuaciones( R1 + R2 + R4 ) I1 - R2 I2 = V - R2 I1 + ( R1 + 2R2 + R4 ) I2 - R2 I3 = 0- R2 I2 + ( R1 + 2R2 + R4 ) I3 - R2 I4 = 0- R2 I3 + ( R1 + R2 + R3 + R4 ) I4 = 0

  • Una red de calles

  • Grafo dirigido

  • Formulacin algebraicaSistema de ecuaciones lineales Forma matricial

  • Matriz de incidencia

  • Ecuacin del CalorModelo matemticoMatriz asociadaT0T1T2 . . .TnTn+1

  • Resolucin de Sistemas Lineales por Mtodos directos Teorema de Rouch-Frobenius Operaciones elementales Triangularizacin Sustitucin regresiva Factorizacin LUResolucin de mltiples sistemas con la misma matrizInversa por el mtodo de Jordan-Gauss

  • Teorema de Rouch-FrobeniusEl sistema Amnx = b es compatible si y slo sirank(A) = rank(A|b)Un sistema compatible es determinado siirank(A) = nUn sistema compatible indeterminado tiene n - rank(A) variables libresSolucin xc = xp + null(A)

  • Operaciones elementalesEliminar fila i tomando la fila k como pivotelik = aik / akk , aij = aij - lik * akjA(i,:) = A(i,:) - L(i,k)*A(k,:);Escalar fila i dividindola por el pivote aiiaij = aij / aiiA(i,:) = A(i,:)/A(i,i);Permutar las filas i y jaij aji A([i,j],:) = A([j,i],:);

  • Fases de la eliminacinEliminacin gaussiana Ax=bTriangularizacinArchivo triangul.m Ux=cSustitucin regresivaArchivo regresiv.m x=A-1b

  • Factorizacin LUSistema originalAx = b LUx = bSistemas triangularesLy = bUx = y>> [L,U] = lu(a)>> [L,U,P] = lu(a)Resolucin de mltiples sistemas con la misma matriz.Inversa por el mtodo de Jordan-Gauss

  • Limitaciones de los Mtodos DirectosAcumulacin del error de redondeoCoste de la eliminacin: O(n3)Sensibilidad al error de redondeoSistemas mal o bien condicionadosNmero de condicinEstrategia de Pivotacin ParcialLlenado de la matriz. Matrices dispersas

  • Sensibilidad al error de redondeo Sistema mal condicionado : un pequeo cambio la matriz causa un gran cambio en la solucin. Sistema bien condicionado : pequeos cambios en la matriz causan pequeos cambios en la solucin. Condicionamiento de una matriz

  • Nmero de condicin de una matriz cond mide el mal condicionamiento cond(eye(n))=1 cond(matsingular) = inf rcond mide el buen condicionamiento rcond(eye(n))=1rcond(matsingular) = 0 malcon1\ti1, malcon2\ti1rcond y det

  • Pivotacin parcialUn algoritmo deficiente puede arruinar un sistema bien condicionadoMatriz dosbEstrategia: Elegir como pivote el elemento de mayor valor absoluto del resto de la columnaArchivo pivparc.mArchivo resolver.mEl operador \ para resolver Ax = b

  • ConclusinLos mtodos directos son apropiados para matrices generales de tamao moderadoEs preciso aplicar una estrategia de pivotacin para evitar que el error de redondeo crezca.Algunos sistemas son muy sensibles a estos errores: mal condicionados.Los sistemas dispersos o estructurados merecen un tratamiento especial.

    Muchos problemas en ciencias sociales, ingeniera, gentica, etc, se reducen finalmente a resolver un sistema de ecuaciones lineales. Este es uno de los problemas centrales del lgebra Lineal, junto con el clculo de valores y vectores propios.Los sistemas lineales pueden aparecer directamente al aplicar el modelo, pero tambin muy frecuentemente surgen de la discretizacin de problemas de frontera de ecuaciones diferenciales lineales, ordinarias o en derivadas parciales. La discretizacin consiste en sustituir las derivadas por cocientes en diferencias en ciertos puntos del dominio. As se obtienen sistemas de ecuaciones que se caracterizan por tener un elevado nmero de incgnitas, al tiempo que en cada ecuacin slo aparecen unas pocas. Las matrices de estos sistemas se denominan matrices dispersas y son de gran importancia en las aplicaciones.Este tema trata de la resolucin de sistemas de ecuaciones lineales por mtodos directos, en concreto el mtodo de eliminacin de Gauss.Mtodos Directos para la resolucin de Sistemas de Ecuaciones Lineales

    Aplicaciones de los Sistemas Lineales Una red elctricaLeyes de Kirchhoff y OhmFormulacin algebraica Una red de callesGrafo dirigidoMatriz de incidenciaFormulacin algebraica La ecuacin del calorResolucin de Sistemas Lineales por Mtodos directos Teorema de Rouch-Frobenius Operaciones elementales Fases de la eliminacinTriangularizacinSustitucin regresiva Factorizacin LUResolucin de mltiples sistemas con la misma matrizInversa por el mtodo de Jordan-GaussLimitaciones de los Mtodos Directos Acumulacin del error de redondeoCoste de la eliminacin: O(n3) Sensibilidad al error de redondeoSistemas mal o bien condicionadosNmero de condicin Estrategia de Pivotacin Parcial Llenado de la matriz Matrices dispersasMatrices estructuradas

    Ilustramos la importancia de los sistemas lineales mediante tres ejemplos: un circuito elctrico sencillo, el flujo de trfico en una red de calles y la distribucin de la temperatura en una barra en estado estacionario.En el primer caso, se considera un circuito con slo resistencias y fuentes de potencial. Aplicando las leyes de Kirchhoff y de Ohm obtenemos un sistema de ecuaciones lineales, que por razones fsicas tiene solucin. En el ejemplo del trfico, hay infinidad de soluciones. Imponiendo condiciones adicionales, se puede forzar la unicidad de solucin o llegar a un sistema incompatible.La estructura de conexin del circuito elctrico, al igual que la del urbano se describen mediante una matriz especial, llamada matriz de incidencia, que guarda la informacin relativa a la topologa de la red. Esta matriz puede usarse en la generacin automtica de las ecuaciones del circuito. El problema del calor ilustra la obtencin de sistemas lineales por discretizacin de problemas continuos, normalmente formulados en trminos de ecuaciones diferenciales o en derivadas parciales. La discretizacin consiste en aproximar las derivadas por cocientes en diferencias de los valores de la funcin en ciertos puntos llamados nodos.La derivada es lmite del cociente incremental

    En lugar del lmite, tomamos el valor del cociente para un h pequeo

    y evaluamos este cociente en una serie de nodos a distancia h entre ellos: xk=x0+kh, k=0,1,2,

    Al discretizar una ecuacin diferencial, se obtiene un sistema de ecuaciones algebraicas. Si la ecuacin diferencial es lineal, queda un sistema de ecuaciones lineales.Consideremos el circuito elctrico de la figura. Suponemos conocidos el voltaje V y los valores de las resistencias Ri, i=1,2,3,4. Queremos determinar las intensidades en cada rama del circuito.Aplicando las leyes de Kirchhoff y la ley de Ohm obtendremos un sistema de ecuaciones lineales. Las ecuaciones necesarias pueden desarrollarse utilizando la ley de Ohm y la segunda ley de Kirchhoff. Ley de los nudos: la suma algebraica de las intensidades que concurren en un nudo es cero.Ley de las mallas: la cada de potencial a lo largo de un camino cerrado del circuito es nula.Estas leyes no dependen de los elementos fsicos del circuito, sino slo de las conexiones entre los mismos. En el caso de resistencias, su influencia queda establecida mediante la Ley de Ohm: La cada de potencial en cada rama es el producto de la intensidad que circula por ella por su resistencia: V = IR

    Aplicamos implcitamente la ley de los nudos al considerar que las intensidades estn vinculadas a las mallas, en lugar de a los arcos. De este modo reducimos el nmero de incgnitas. As, en la figura, la corriente I1 circula sobre el circuito cerrado abcd. Como el cable bc es comn a dos mallas, la corriente que circula por l es I1-I2. Aplicando la ley de las mallas a abcd tenemos Vab + Vbc + Vcd = V(1)

    La ley de Ohm para el cable que conecta b y c establece queVbc = R2(I1 - I2)donde R2 es el valor de la resistencia que conecta b con c. Aplicando esta ley al resto de las ramas de la malla y sustituyendo en (1) quedaR1I1 + R2(I1 - I2) + R4I1 = V.siendo V el voltaje de la fuente.

    Repitiendo este proceso para cada malla, obtenemos el siguiente sistema de ecuaciones lineales en el que las R se suponen conocidas y las I son incgnitas.

    ( R1 + R2 + R4 ) I1 - R2 I2 = V - R2 I1 + ( R1 + 2R2 + R4 ) I2 - R2 I3= 0 - R2 I2 + ( R1 + 2R2 + R4 ) I3 - R2 I4 = 0 - R2 I3 + ( R1 + R2 + R3 + R4 ) I4 = 0

    Observemos el mapa que muestra una pequea zona de Valencia:

    En el mapa se indica el flujo de trfico que entra o sale a cada calle, en nmero de vehculos por hora. Ya que el flujo de trfico vara bastante durante el da, supondremos que los nmeros mostrados representan el trfico promedio a las horas puntas.

    Supongamos que el Ayuntamiento pretende pavimentar la calle Salamanca. La polica puede, hasta cierto punto, controlar el flujo de trfico reajustando los semforos, cerrando alguna calle, etc. La cuestin es minimizar el trfico en la calle Salamanca sin ocasionar congestin en las otras calles.

    Veamos que este problema puede modelizarse mediante un sistema de ecuaciones lineales.Para resolver nuestro problema agregamos algunas variables a nuestro mapa.Marcamos los 6 cruces de "A" hasta "F" y denotamos el flujo de trfico entre los cruces por las variables xi , i = 1, 2, ..., 7. El problema consiste en minimizar x6 y x7 sujetas a las restricciones del problema.Para encontrar estas restricciones, veamos, por ejemplo, la interseccin E. El trfico que fluye al cruce E es, segn el mapa, x7 + 600. El trfico que sale del cruce E es x4 + x6. Suponiendo que el trfico no se acumula en la interseccin E, el trfico de "entrada" es el mismo que el de "salida". As obtenemos x4 + x6 = 600 + x7, o bienx4 + x6 - x7 = 600.A partir de este anlisis en cada cruce, se obtiene el siguiente sistema:

    que puesto en forma matricial resulta

    Analicemos por un momento la estructura de la matriz del sistema.Las filas corresponden a los cruces y las columnas a las calles que los conectan. En la fila correspondiente a un cruce, aparece un 1 por cada calle que 'sale' de ese cruce y un -1 por cada calle que 'entra' en el mismo.Recprocamente, en la columna de cada calle, hay un 1 en la posicin del cruce donde 'empieza' la calle y un -1 en el lugar del cruce en que 'termina' la calle.En este ejemplo, el mximo nmero de elementos no nulos en cada columna es de 2, por lo que la matriz puede ser muy grande, pero tiene muchos ceros, lo cual debe ser aprovechado si es posible para simplificar los clculos.

    Consideramos una barra conductora del calor cuyos extremos estn a temperatura conocida Ta y Tb, respectivamente. Queremos hallar la temperatura a lo largo de la barra en estado estacionario.Para resolver numricamente problemas de este tipo, consideramos un nmero finito de puntos a lo largo de la barra, por ejemplo, dividimos la longitud en n+1 partes iguales, tomando n puntos equiespaciados llamados nodos, x1, x2, ..., xn y estimaremos la temperatura de estos puntos, T1, T2,..., Tn.En el estado estacionario, suponemos que la temperatura en cada nodo es la media de las temperaturas de los nodos adyacentes. Al imponer esta condicin a cada nodo obtenemos un sistema de ecuaciones lineales. Los valores de la temperatura en los extremos pasan al segundo miembro constituyendo los trminos independientes.La matriz de este sistema tiene unas caractersticas especiales que aprovecharemos para su resolucin. Se trata de una matriz tridiagonal simtrica, la diagonal principal est formada por doses y las diagonales situadas inmediatamente por encima y por debajo de la diagonal principal tienen todos sus elementos iguales a -1.Construimos esta matriz utilizando la orden diag(v) de MATLAB, que sita en una diagonal determinada los elementos del vector v. En nuestro caso hacemos:n=5;v=ones(n-1,1);calor=2*eye(n)-diag(v,-1)-diag(v,1)El segundo argumento de diag indica en qu diagonal hay que colocar los elementos de v. Las diagonales se numeran a partir de la principal, que es la diagonal 0. La 1 est situada justo encima de la principal y la -1 justo debajo. En general la diagonal k est formada por los elementos aij tales que k=j-i.Elabora un fichero.m para construir una matriz del calor de orden n. Como introduccin terica a la resolucin de sistemas lineales, recordemos los resultados fundamentales respecto a la existencia y unicidad de soluciones de Ax=b en trminos del rango de las matrices del sistema, A, y ampliada, [A b].

    Existencia: el sistema es compatible si y slo si el rango de su matriz coincide con el rango de la matriz ampliada. En trminos vectoriales diramos que la columna de trminos independientes es combinacin lineal de las columnas del sistema.

    Unicidad: un sistema compatible es determinado si y slo si su rango es igual al nmero de incgnitas.

    Las soluciones del sistema Ax=b pueden expresarse de la formax = xp + Ker(A)siendo xp una solucin particular del sistema y Ker(A) el subespacio de soluciones del sistema homogneo asociado Ax=0. La dimensin de este subespacio es s = n - rang(A)

    Apliquemos este estudio terico al ejemplo del trfico, usando MATLAB:A=barrio; b=calles; [m,n]=size(A)rank(A) % Si coinciden, el sistemarank([A,b]) % es compatiblen-rank(A) % dimensin del ncleonull(A) % base ortogonal del ncleo

    Insistiendo una vez ms en el calificativo de terico, indiquemos que el clculo del rango cuesta lo mismo que la resolucin del sistema. En la prctica, obtendremos el rango como resultado del proceso de eliminacin.

    La idea del mtodo de Gauss consiste en transformar el sistema en otro equivalente ms sencillo de resolver. Este sistema tiene forma triangular, de modo que, para resolverlo, basta ir despejando las variables empezando por la ltima y sustituyendo en las ecuaciones anteriores.Para preservar la equivalencia utilizamos nicamente operaciones elementales, que no afectan al conjunto de soluciones del sistema. Consideraremos las operaciones elementales sobre las filas de la matriz del sistema, o la matriz ampliada. Las hay de tres tipos: Restar a una fila un mltiplo de otra. Multiplicar una fila por un escalar no nulo. Intercambiar dos filas.Vemos en la transparencia que MATLAB puede operar por filas, sin necesidad de hacer referencia explcita a cada elemento. Las operaciones elementales son invertibles, o sea, se pueden deshacer, recuperando el estado inicial de la matriz. La primera operacin se deshace sumando el mismo mltiplo antes restado. La del segundo, dividiendo por el mismo escalar (para eso es no nulo). El intercambio de dos filas es su propio inverso.

    Apliquemos algunas de estas operaciones a la matriz del circuito elctrico, supuestas todas las resistencias iguales a 1k, con el objetivo de triangularizar la matriz:A=circuito Eliminacin de a21: A(2,:)=A(2,:)+1/3*A(1,:)Eliminacin de a32: A(3,:)=A(3,:)+1/A(2,2)*A(2,:)Eliminacin de a42: A(4,:)=A(4,:)+1/A(3,3)*A(3,:)Los elementos que aparecen en el denominador de estas expresiones son los pivotes de la eliminacin. Si alguno fuera nulo tendramos que intercambiar filas para poder eliminar.Puedo hacer que a11 sea 1 con una operacin del segundo tipo:Divido la fila 1 por a11: A(1,:)=A(1,:)/A(1,1)MATLAB intercambia filas de una manera curiosa:Intercambio las filas 1 y 4: A([1,4],:)=A([4,1],:)El proceso de eliminacin de Gauss consta de dos fases. En la primera se reduce el sistema a forma triangular y en la segunda se resuelve es sistema (triangular) resultante por sustitucin regresiva. Las siguientes funciones de MATLAB aplican estos procesos a un sistema de matriz A y trmino independiente b.Eliminacinfunction [U,c,L] = triangul(A,b)[m,n]=size(A); p=length(b); L=eye(m); A=[A b];k=1; while k < n, if A(k,k) == 0,% Pivote disp('Es necesario intercambiar ecuaciones'); k=n; % Para salir del bucle else for i = k+1:m L(i,k) = A(i,k) / A(k,k); % Multiplicador A(i,:) = A(i,:) - L(i,k) * A(k,:); % Eliminacin end k = k+1; endendU = A(:,1:n);% Matriz reducidac = A(:,n+1:n+p);% Terminos independientesSustitucin regresivafunction x = regresiv(A,b)% x = regres(A,b)% Resuelve el sistema triangular superior% Ax = b % por substitucin regresiva.% El trmino independiente puede tener varias columnas.n = length(A);for k = n: -1: 1if A(k,k)==0 error('El sistema no es compatible determinado')endx(k,:)=b(k,:)/A(k,k);b(1:k-1,:) = b(1:k-1,:) - A(1:k-1,k)*x(k,:);end

    El proceso de eliminacin, si funciona sin dificultades, produce adems de la matriz triangular superior U otra matriz triangular inferior unidad L tal que A=LU.El elemento (i,k) de la matriz L, con i>k, es el multiplicador usado para eliminar la variable xk de la ecuacin i-sima, utilizando akk como pivote. El conocimiento de la descomposicin de una matriz A en factores triangulares LU facilita la resolucin de posteriores sistemas de ecuaciones lineales con la misma matriz A y distintos trminos independientes. En lugar de resolver el sistema de matriz A, resolvemos dos sistemas triangulares Ly=b y Ux=y.As se ahorra trabajo, pues no hay que repetir los pasos de la fase de eliminacin sobre toda la matriz, sino slo sobre los nuevos trminos independientes (mediante la sustitucin progresiva en Ly=b).Obtenido y, se resuelve el segundo sistema Ux=y, por sustitucin regresiva. El coste de resolucin de estos sistemas triangulares es del orden de n2 operaciones, mientas que la eliminacin sobre la matriz completa ha costado del orden de n3 operaciones.

    MATLAB proporciona tambin la descomposicin LU de una matriz, mediante la funcin lu.Si la eliminacin tiene lugar sin intercambio de filas, utilizamos[L,U]= lu(A)En el caso general, hay que efectuar una permutacin de filas de A para poder factorizar. La matriz de esta permutacin se obtiene junto con los factores L y U de [L,U,P]= lu(A)verificndose la relacin PA = LU. Las operaciones elementales de la eliminacin pueden aplicarse simultneamente a varios trminos independientes, con lo que resolvemos varios sistemas de una vez. Un caso particular interesante es el clculo de la inversa de una matriz A, que puede interpretarse como la resolucin de n sistemas lineales de matriz A y trminos independientes, las columnas de la matriz identidad del mismo orden que A, In. Al resolver un sistema por un mtodo directo trabajando en precisin finita, los errores de redondeo se van acumulando de un paso a otro. Aunque el error de cada operacin es pequeo, como el nmero de operaciones puede ser muy grande (del orden de n3, siendo n el tamao del sistema), al final, el resultado puede verse muy afectado.Aunque las operaciones se realicen en modo exacto, puede que los coeficientes del sistema sean imprecisos, por ejemplo si se han obtenido de medidas experimentales. Es importante conocer de qu modo afecta la incertidumbre de los datos al resultado final.Veremos que hay sistemas que amplifican el error durante la eliminacin, los sistemas mal condicionados, mientras que otros lo mantienen dentro de ciertos lmites, los bien condicionados.En todo caso, es de vital importancia para controlar el error, seguir alguna estrategia al elegir los pivotes de la eliminacin, pues un pivote pequeo causa un aumento grande del error. La pivotacin parcial consiste en elegir como pivote el elemento de mayor valor absoluto en la columna a eliminar. Dado que a veces hay que buscar un pivote no nulo, no cuesta mucho ms buscarlo siempre con la condicin de tener valor absoluto mximo, y con ello se minimiza el error de la eliminacin.Otra dificultad importante es que al eliminar en una matriz con muchos elementos nulos (matrices dispersas), se produce el "llenado", o sea, la aparicin de elementos no nulos en las posiciones antes ocupadas por ceros. Para minimizar el llenado, se recurre a reordenaciones de las ecuaciones y las variables de modo que al eliminar se conserve en lo posible la dispersin de la matriz.Hay sistemas en los que un pequeo cambio en los coeficientes provoca un gran cambio en la solucin. Estos sistemas se llaman mal condicionados . Por ejemplo, el sistema

    tiene solucin exacta x=y=1. Si cambio el trmino independiente de la segunda ecuacin a 2.0002,

    la solucin cambia a x=0, y=2. Cambiando el coeficiente de x en la segunda ecuacin a 1.0001, el primer sistema resulta incompatible y el segundo indeterminado. Esto indica que el sistema es muy sensible a los errores de redondeo y su solucin poco fiable. Si representamos grficamente las ecuaciones del sistema, obtenemos dos rectas que se cortan formado un ngulo muy pequeo. El punto de interseccin cambia mucho al mover poco una de las rectas.

    En cambio, el sistema

    est bien condicionado, pues la solucin es poco sensible a los errores de los datos. En la representacin grfica vemos dos rectas cuya interseccin est claramente situada.Para sistemas de ms de dos ecuaciones no es fcil analizar grficamente su condicionamiento. Algortmicamente, el mal condicionamiento se puede observar por el pequeo tamao de los pivotes. MATLAB dispone de medidas numricas del condicionamiento.Las funciones de MATLAB cond y rcond miden la sensibilidad al error al invertir una matriz o resolver un sistema con dicha matriz.La funcin cond toma valores de 1 a infinito. Cuanto mayor es cond, peor es el comportamiento de la matriz. Inversamente, la funcin rcond toma valores de 0 a 1, correspondiendo los prximos a cero a matrices mal condicionadas y los valores prximos a 1, a matrices bien condicionadas.

    Por ejemplo, el sistema

    tiene solucin exacta x=y=z=1 (con MATLAB: malcon1\ti1) , pero el sistema

    obtenido variando ligeramente a22 tiene soluciones muy distintas. malcon2\ti1cond(malcon2)Para conocer la fiabilidad de la solucin, hallamos la condicin de la matriz del sistema y vemos que es muy elevada, como era de esperar. La solucin, por tanto no es muy fiable.Podemos decir que rcond mide lo cerca que est una matriz de ser singular. La matriz anterior, malcon1, tiene rcond pequeo, por lo que es casi singular. El criterio terico de singularidad, la anulacin del determinante, no es vlido para estudiar la casi singularidad, pues, entre otras cosas depende de la escala. En efecto, aunque en general una matriz casi singular tendr determinante pequeo, el recproco no es cierto. Por ejemplo, la matriz In/10 tiene condicin 1, pero su determinate es muy pequeo: 10-n.El mal condicionamiento de un sistema es difcil, si no imposible de resolver, pero hay que tener cuidado para no arruinar un sistema bien condicionado aplicndole un algoritmo de eliminacin deficiente. Por ejemplo, hemos visto que el sistema

    est bien condicionado. Sin embargo, si elimino normalmente x1 en la segunda ecuacin, obtengo un sistema casi singular.

    El empeoramiento es por utilizar como pivote el coeficiente a11 que es diez mil veces menor que el coeficiente a eliminar, a21. El remedio obvio ser intercam- biar las dos ecuaciones antes de eliminar. Al tomar 1 como pivote, queda el sistema

    que sigue siendo bien condicionado.

    La funcin A\ b que usamos para resolver sistemas con MATLAB aplica pivotacin parcial. En el caso de sistemas incompatibles, obtiene la solucin ms aproximada en sentido mnimo cuadrtico (ver el prximo Tema: Interpolacin y aproximacin de funciones).00.511.52012