Sistema de equações lineares Caracterização Um sistema de m equações a n variáveis é é chamado sistema de equações lineares. Ele tem a forma genérica seguinte: a11 x1 a12 x2 .... a1n xn b1 a21 x1 a22 x2 .... a2 n xn b2 ............................................ am1 x1 am 2 x2 .... amn xn bm Solução Um conjunto de n valores (x1, ..., xn) verificando as equações do sistema é uma solução do sistema. Um sistema cujo os valores dos coeficientes bn são iguais a 0 é um sistema homogêneo: a11 x1 a12 x2 .... a1n xn 0 a21 x1 a22 x2 .... a2 n xn 0 ............................................ am1 x1 am 2 x2 .... amn xn 0 Caracterização matricial O sistema pode ser escrita sobre a forma de um produto de matrizes: onde as matrizes são definidas por: Combinação linear A combinação linear de equações é a soma dessas equações multiplicado por coeficientes reais: a1eq1+a2eq2+...+aneqn onde ai0, i{1,...,n} é uma combinação linear de eq1, eq2, ..., eqn. Em relação com as variáveis envolvidas nas equações, uma equação linear, combinação linear entre as outras equações não introduz novas relações entre as variáveis. Sistemas equivalentes Num sistema de equações lineares independentes, se uma equação é trocada por uma combinação linear dela mesma e outras equações do sistema, o novo sistema é equivalente o primeiro. Os dois sistemas têm a mesma solução. a1.eq1 a 2 .eq2 ... a n eqn ,a1 0 eq1 eq eq 2 2 ... ... eqn eqn Sistemas equivalentes Num sistema, se uma equação é combinação linear das outras, ele é equivalente ao sistema sem essa equação: a 2 .eq2 ... a n eqn eq2 eq eq 2 3 ... ... eqn eqn Equações e variáveis Um sistema de m equações a n variaveis: Tem uma solução unica se ele pode ser reduzido a um sistema de n equações independentes a n variáveis. Tem uma infinidade de soluções, se ele é equivalente a um sistema de m’ equações independentes com m’<n Determinante Um determinante é um número associado a um matriz quadrada (mesmo número de linha e coluna). A definição do determinação envolve a noção de permutação. O determinante de uma matriz A (aij é o coeficiente da i-ésima linha e j-ésima coluna) é, onde an são elementos distintos de (1,...,n) e k é o número de permutações para passar de (1,...,n) para (a1,..., an): k n! A (1) a1a1 a2a2 ...anan Calculo do determinante, caso 2x2 e 3x3 O calculo do determinante 2x2: a11 a12 a21 a22 a11a22 a21a12 O calculo do determinante 3x3 é feito da forma seguinte: Det A= = a11a22a33 a21a32a13 a31a12a23 a31a22 a13 a11a32 a23 a21a12 a33 Determinante, caso nxn O desenvolvimento de Laplace permite o calculo do determinante da forma seguinte: a11 a12 ... a1n a21 a22 ... a2 n ... ... ... an1 an 2 ... ann ... j n j n j 1 j 1 aij D ij a ji D ji , D ij (1)i j akp ,k i , p j Onde Dij é o determinante da submatriz obtido de A retidandose a i-ésima linha e j-ésima coluna e multiplicado por (-1)i+j. O número i pode ser qualquer número de {1,...,n}. Esse princípio funciona para qualquer linha ou coluna. Determinante, caso nxn O calculo do determinante pode ser implementado com um procedimento recursivo. O calculo de um determinante nxn é determinado a partir de determinantes (n-1)x(n-1). O preço do cálculo de um determinante é elevado. Considerando a formula da definição, são necessárias n!(n-1)+(n!-1) ou seja n!n-1 operações para um determinante de dimensão n: (n!-1) somas de n!(n-1) produtos, sem considerar os elementos anexos necessários (posição de memoria, sinal, etc). Determinante, um algoritmo O calculo é feito usando os coeficientes da primeira linha. Determinante(m) // m: matriz se dim(m)=2 resultado=m[0][0].m[1][1]-m[1][0].m[0][1] se dim(m)=1 resultado=m[0][0] Se dim(m)>2 resultado=0 i de 1 a dim(m) construír a submatriz de m sem a primeira linha e a i-ésima coluna (subm) resultado=resultado+(-1)i.m[0][i].Determinante(subm) Determinante e sistema Se um sistema de n equações lineares a n variáveis tem um determinante diferente de 0: det A0, as equações do sistema são independentes. Nesse caso, o sistema tem uma solução única. Em caracterização matricial, essa solução escreve-se: 1 x A b onde A-1 é a matriz inversa da matriz A. Determinante e matriz inversa Se o determinante de uma matriz é não nulo, a matriz inversa pode ser calculada. a11 ... a1n D11 ... D n1 1 A ... ... ... , A1 ... ... ... A a ... a D ... D nn nn n1 1n Onde Dij é o determinante da matriz formada a partir da matriz A retirando a i-ésima linha e j-ésima coluna. Formula de Cramer Pela formula de Cramer, se o determinante do sistema é não nulo, o valor solução da variável xi é dado pela formula seguinte: a11 ... a1i 1 b1 a1i 1 ... a1n 1 a21 ... a2i 1 b2 a2i 1 ... a2 n xi det A ... ... ... ... ... ... ... an1 ... ani 1 bn ani 1 ... ann O numerator da fração é o determinante da matriz formada da matriz A do sistema onde a coluna dos coeficientes de xi são subsituídos pelos termos constantes bi. Exemplo 2 x1 3 x2 x3 0 x1 x2 4 x3 3 x 8x x 1 2 3 1 0 x1 2 3 1 det 1 1 4 2 8 12 3 64 1 64 1 8 1 3 1 4 1 8 1 64 2 x2 46 64 0 1 1 3 4 1 1 1 64 2 x3 1 3 3 10 64 0 1 1 3 1 8 1 64 62 64 Custo da formula de Cramer Para resolver um sistema de n equações a n variáveis, pela formula de Cramer precisam ser calculados n+1 determinante de ordem n (n linhas, n colunas). O custo da resolução desse sistema é de: (n!n-1)(n+1) operações. Para 10 variaveis: 399167989 Eliminação Gaussiana A eliminação Gaussiana usa a propriedade de equivalência de sistema para eliminar progressivamente as variáveis ate chegar a uma equação de uma variável. a11 x1 a12 x2 .... a1n xn b1 a22 x2 .... a2 n xn b2 ............................................ ann xn bn Sistema triangular No novo sistema, podemos determinar: n bn bn1 an1n xn 1 xn , xn1 ,......, xi (bi aij x j ) ann an1n1 aii j i 1 O sistema é chamado sistema triangular e a matriz associada é uma matriz triangular. Se fala também de triangular superior ou inferior para caracterizar a posição dos coeficientes não nulos. Eliminação Gaussiana e determinante O determinante de um sistema triangular é o produto dos termos da diagonal. a11 a12 ... a1n 0 a22 ... a2 n ... 0 ... ... 0 ... 0 ann a11a22 ...ann Em um determinante, adicionar os termos (ou os termos multiplicado por um fator) de qualquer linha (resp. coluna) a qualquer outra linha (resp. coluna) não muda o valor do determinante. Método Escolhe uma das equações (i-ésima) com o coeficiente (ai1) de x1 não nulo. Esse coeficiente é chamado de pivot (ou pivot de Gauss). Adicionar a cada uma das equações restantes (j, ji), a primeira equação multiplicada por: -aj1/ai1 Aplicar de novo o algoritmo com o sub-sistema de n-1 variáveis ate chegar a uma equação de uma variável. Exemplo 2 x1 3x2 x3 0 x1 x2 4 x3 3 x1 8 x2 x3 1 2 x1 3 x2 x3 0 5 7 x2 x3 3 2 2 19 1 x2 x3 1 2 2 2 x1 3 x2 x3 0 5 7 x2 x3 3 2 2 128 62 x3 10 5 46 x 1 64 10 x2 64 62 x3 64 Matriz O processo pode ser aplicado com matrizes. Nesse caso, se considera a matriz aumentada com as constantes da matriz do sistema: a11 a21 [A ] ... an1 a12 ... a1n a22 ... a2 n ... ... ... an 2 ... ann b1 b2 ... bn E as combinações lineares entre as equações são feitas entre as linhas de coeficientes. Exemplo com matriz 2 3 1 0 1 1 4 3 1 8 1 1 2 3 1 0 5 7 0 3 2 2 19 1 0 1 2 2 2 0 0 1 7 2 128 0 10 3 5 2 0 3 62 5 Exercício x1 3 x2 5 x3 2 x4 10 x 9 x 8 x 4 x 15 1 2 3 4 Solução: x1=-1, x x 2 x2=0, x3=1 e 2 4 x4=2 2 x1 x2 x3 x4 3 Custo da eliminação Gaussiana Para eliminar o primeiro termo das n-1 equações de um sistema a n equação, precisamos de n-1 divisões, (n-1)(n+1) multiplicações e (n-1)(n+1) adições: 2n2+n-3. Para eliminar osi ntermos ate a ultima equação precisamos de 2i 2 i 3 operações, da ordem i2 de 2n3/2. A resolução do sistema triangular necessita: n divisões, n(n-1)/2 multiplicações e n(n-1)/2 adições. Velocidade da resolução Uma das razões de escolher uma algoritmo no lugar de um outro é em geral baseado sobre a relação entre velocidade e precisão. No caso da resolução de sistemas lineares, a formula de Cramer precisa de muito mais operações que a eliminação Gaussiana. Estratégia de pivoteamento Resolução do sistema seguinte usando sucessivamente 0.004 e 0.423 como pivot e calculando usando somente 4 algarismos significativos: 0.004 x1 15.73x2 15.77 0.423x1 24.72 x2 20.49 A solução do sistema e (10,1). Com 0.004 como pivot achamos (12.5,0.9994) e com 0.423 achamos (10,1). Estratégia de pivoteamento No caso geral, para diminuir os erros de arredondamento, é preferível usar como pivot o maior coeficiente em valor absoluto da variável a eliminar nas equações do sistema. pivot ( xi ) max( aij ) j 1..n Eliminação Gaussiana, algoritmo n: numero de variáveis, m: matriz aumentada Eliminacao_gauss(n, m) para i de 1 a n para j de i a n, procure o coeficiente maior em valor absolute: linha max troca a linha max com a linha i de m para j de i+1 a n, para k de i a n+1, subtrai m[j][i]/m[i][i] de m[j][k] Soluções particulares Certas situações precisam de determinar as soluções de sistemas onde somente os termos constantes (bi) mudam: a11 x1 a12 x2 .... a1n xn b1 ............................................ a x a x .... a x b nn n n n1 1 n 2 2 solução de: e solução de: a11 x1 a12 x2 .... a1n xn b '1 ............................................ a x a x .... a x b ' nn n n n1 1 n 2 2 Soluções particulares Nesses casos, é mais eficiente de triangular o sistema uma vez e resolve-lo com os diversos valores dos termos constantes (bi). Nesse caso uma segunda matriz é necessária para calcular os termos constantes do sistema triangular em fonções dos coeficientes de origem. Soluções particulares Nesse caso, a matriz coluna dos termos constantes é considerada como o produto da matriz identidade como essa matriz coluna. As transformações operadas pela triangularização serão aplicadas à matriz identidade e não à matriz coluna dos termos constantes. a11 ... a1n x1 1 0 0 b1 ... ... ... ... 0 1 0 ... a x 0 0 1b ... a nn n n1 n Matriz Inversa Se o processo de transformação do sistema continua ate obter um sistema cuja matriz é a matriz identidade, a matriz de transformação dos termos constantes é a matriz inversa da matriz do sistema inicial: 1 0 0 x1 b1 1 0 1 0 ... A ... 0 0 1 x b n n Exemplo 2 1 A 0 1 1 0 0 1 1 1 0 0 0 1 1 3 3 3 3 2 5 6 2 4 1 A 4 5 4 3 1 1 1 1 Erros de aproximação Os erros de arredondamento têm um papel importante na solução de sistemas de equações lineares, principalmente por conto do grande número de calculo a ser efetuados. A um efeito de “condensação pivotal” no caso da eliminação gaussiana. Cada calculo depende dos resultados anteriores. Avaliação dos erros Uma forma de avaliar o erro é trocar as variáveis nas equações pelos valores determinados e comparar os resultados com os termos constantes: 3 x1 4 x2 7 Sistema: 5 x1 2 x2 3 x1 0.999 soluções: x1 1.002 Trocando nas equações: 3(0.999) 4(1.002) 7.005 5(0.999) 2(1.002) 2.991 Avaliação dos erros Um pequeno erro sobre os resultados conduz a considerar que os valores das variáveis determinados são boas aproximações dos resultados exatos. Existem casos nos quais não podemos afirmar isso. Sistema mal condicionado Considerando o sistema seguinte: x1 x2 2 1.0001x1 x2 2.007 Uma solução como x1=100, x2=-98 é uma solução aceitável do ponto de vista do critério precedente, porém ela é longe da solução exata (70,-68). Sistema mal condicionado Um sistema de equações que pode ser satisfeito por soluções erradas é um sistema mal condicionado. Do ponto de vista gráfico, no caso da dimensão 2, o sistema é mal condicionado quando as duas retas representando as equações são próximas: Sistema mal condicionado Um sistema é mal condicionado quando seu determinante é próximo de zero. O que significa, um determinante próximo de zero ? Como multiplicando qualquer equação por um fator não muda a solução do sistema, enquanto multiplica o determinante por esse fator, falar de um valor pequeno do determinante não significa nada. Sistema mal condicionado Para determinar se um sistema é mal condicionado, existem duas possibilidades: O determinante normalizado é próximo de 0: cada linha é dividida por um fator de proporcionalidade, 1 raiz quadrada da soma dos n 2 2 quadrados dos coeficientes da linha. k a ij i j 1 Se uma pequena mudança de um termo constante do sistema provoca uma uma mudança importante no resultado, o sistema é mal condicionado. Método iterativo de Gauss-Seidel O sistema é transformado de tal forma que cada equação pode dar o valor de uma variável (no caso que um dos aii é nulo, o sistema pode ser reordenado para ter a condição: aii, i={1,...,n}): 1 x1 (b1 a12 x2 .... a1n xn ) a11 a11 x1 a12 x2 .... a1n xn b1 ............................................ ............................................ a x a x .... a x b 1 nn n n n1 1 n 2 2 xn (bn an1 x1 .... ann 1 xn1 ) ann Método iterativo de Gauss-Seidel Em seguida, a cada passo e a partir de valor iniciais de (x2, ..., xn), novos valores de (x1, ..., xn) são calculados. Quando converge, esse processo pode exigir muitas iterações para chegar a um resultado razoável. Ele é aconselhado somente quando o sistema é mal condicionado ou quando muitos coeficientes do sistema são nulos (convergência rápida) Método iterativo de Gauss-Seidel O algoritmo pode ser parado quando: É atingido um número de iteração dado. A diferencia entre dois valores sucessivas dos xi é menor que um valor limito: e. Critério particularmente delicado a manipular (convergência muito lenta). Método iterativo de Gauss-Seidel Se o método não converge, ele pode ser aplicado mudando a ordem das equações (ou seja mudando as equações determinando cada xn). Existe um teorema que garante a convergência: Se o termo da diagonal aii aij , i 1,..., n principal é maior em valor absoluta que a j 1 soma dos valores absolutos dos outros j i n termos da linha do coeficiente e que a aii a ji , i 1,..., n soma dos valores absolutos dos outros j 1 termos da coluna do coeficiente, a j i convergência é garantida. n