Prévia do material em texto
SISTEMAS LINEARES E NÃO LINEARES Igor Utzig Picco Sistemas lineares e não lineares Olá aluno (a) Unifacear! Seja bem-vindo (a) à aula de Sistemas lineares e não lineares através de métodos iterativos. Nessa aula irei apresentar para vocês mais métodos numéricos que visam solucionar sistemas de equações, descobrindo o valor de todas as incógnitas do sistema através do cálculo numérico. Apresento o conceito de sistemas lineares e sistemas não lineares, em seguida apresento métodos numéricos de resolução. SISTEMAS LINEARES VS SISTEMAS NÃO LINEARES Um sistema de equações corresponde a um conjunto de equações a serem resolvidas de maneira simultânea. Um sistema é considerado linear quando todas as incógnitas são elevadas somente a primeira potência. No cálculo numérico e computacional, os sistemas lineares são representados de maneira matricial, como apresentado na Equação 1. A matriz [A] é a matriz dos coeficientes, [X] é o vetor das incógnitas e [B] é o vetor das constantes ou termos independentes (CELINA, 2018). Os sistemas tem m equações e n incógnitas. [ 𝑎11 𝑎12 … 𝑎1𝑛 𝑎21 𝑎22 … 𝑎2𝑛 … 𝑎𝑚1 … 𝑎𝑚2 … … … 𝑎𝑚𝑛 ] ∗ [ 𝑥1 𝑥2… 𝑥𝑛 ] = [ 𝑏1 𝑏2… 𝑏𝑛 ] (1) Sistemas de equações não lineares são sistemas que envolvem termos com as incógnitas com potências diferentes da unidade, ou que incluem funções não lineares aplicadas as variáveis, como por exemplo, funções trigonométricas. Sistemas de equações podem ter uma única solução, muitas soluções, ou nenhuma solução. Os métodos básicos de resolução de equação, como os métodos gráficos e os métodos de resolução através de determinantes e Regra de Cramer não são abordados na disciplina, por ser conteúdo de disciplinas prévias. Sistemas lineares e não lineares ELIMINAÇÃO DE GAUSS A eliminação de Gauss é o método numérico mais básico de resolução de sistemas de equações, sendo um método de resolução direta. O método consiste de manipulação de equações para a eliminação progressiva de variáveis, visando resolução diretas através de substituição regressiva. O processo de eliminação progressiva e substituição regressiva é ilustrado na Figura 1. É possível perceber que o sistema de equação é manipulado para se transformar em um sistema triangular superior, permitindo a resolução por substituição de baixo para cima. Figura 1. Eliminação de Gauss. Fonte: Chapra, Canale, 2013. Para realizar a eliminação progressiva, inicia-se removendo a primeira variável de todas as linhas do sistema. Para isso utilizam-se elementos pivôs, ou multiplicadores (que devem, obrigatoriamente, não ser nulos). É importante ressaltar que as operações são realizadas na matriz estendida, que é a matriz que junta a matriz a e b. Toda mudança tem que ser aplicada nos dois lados da equação para que ela continue válida. As operações básicas que são realizadas são: 1) Trocas de linhas; 2) Multiplicação de uma linha por uma constante que difere de 0; 3) Multiplicação de uma linha por uma constante e soma com outra linha. Sistemas lineares e não lineares O procedimento consiste em ir eliminando, por coluna, as variáveis, até que no final tenha uma equação com somente 1 variável. Em seguida, através de substituição progressiva, encontra-se facilmente o valor de todas as variáveis. Para cada incógnita, ocorre uma etapa que consiste na identificação do pivô, elemento não nulo e da matriz principal, que é utilizado para determinar os multiplicadores da linha, que é calculado através da Equação 2. A Equação 3 é a equação elementar utilizada em cada linha da matriz no processo de eliminação da variável (CELINA, 2018). 𝑚𝑘𝑖 = 𝑎𝑘𝑖 𝑎𝑖𝑖 (2) 𝐿𝑘 − 𝑚𝑘𝑖 ∗ 𝐿𝑖 → 𝐿𝑘 (3) A melhor maneira de entender a eliminação de Gauss é através de um exemplo. O exemplo apresentado a seguir vem do livro Cálculo Numérico da autora Celina Jarletti, disponível na Biblioteca Virtual Pearson. Exemplo 1: É apresentado o sistema de equações na forma tradicional e em seguida no formato matricial estendido: 3𝑥 + 𝑦 + 2𝑧 = 9 𝑥 + 2𝑦 − 𝑧 = −2 2𝑥 + 𝑦 + 4𝑧 = 14 [ 3 1 2 9 1 2 −1 −2 2 1 4 14 ] Primeiramente temos como objetivo retirar a variável x da segunda e terceira linha. Para isso, definimos o elemento da diagonal principal da primeira linha como elemento pivô. Sendo assim, considerando o pivô como 3, calculamos os multiplicadores da segunda e terceira linha: Sistemas lineares e não lineares 𝑚21 = 𝑎21 𝑎11 = 1 3 ; 𝑚31 = 𝑎31 𝑎11 = 2 3 Sendo assim, temos as seguintes operações para as linhas 2 e 3: 𝑃𝑎𝑟𝑎 𝑎 𝑙𝑖𝑛ℎ𝑎 2: 𝐿2 − 𝑚21 ∗ 𝐿1 𝑃𝑎𝑟𝑎 𝑎 𝑙𝑖𝑛ℎ𝑎 3: 𝐿3 − 𝑚31 ∗ 𝐿1 Sendo assim, a matriz é modificada para: [ 3 1 2 9 1 − 1 3 ∗ 3 2 − 1 3 ∗ 1 −1 − 1 3 ∗ 2 −2 − 1 3 ∗ 9 2 − 2 3 ∗ 3 1 − 2 3 ∗ 1 4 − 2 3 ∗ 2 14 − 2 3 ∗ 9 ] [ 3 1 2 9 0 5 3 − 5 3 −5 0 1 3 8 3 8 ] Em seguida o processo é realizado na terceira linha, visando eliminar a segunda variável (y) da segunda coluna. Para isso, utiliza o elemento da matriz diagonal principal de a, da segunda linha, como elemento pivô. No caso, o elemento pivô é a22: 5/3. Com o elemento pivô definido, obtém-se os multiplicadores das linhas, que no caso em questão, é somente para a linha 3. 𝑚32 = 𝑎32 𝑎22 = 1/3 5/3 = 1 5 𝑃𝑎𝑟𝑎 𝑎 𝑙𝑖𝑛ℎ𝑎 3: 𝐿3 − 𝑚32 ∗ 𝐿2 Sendo assim, a matriz é modificada para: Sistemas lineares e não lineares [ 3 1 2 9 0 5 3 − 5 3 −5 0 1 3 − 1 5 ∗ 5 3 8 3 − 1 5 ∗ (− 5 3 ) 8 − 1 5 ∗ (−5)] [ 3 1 2 9 0 5 3 − 5 3 −5 0 0 3 9 ] Agora que realizamos a adaptação da matriz para o formato triangular, podemos reescrever a matriz estendida resultante como um sistema de equações: 3𝑥 + 𝑦 + 2𝑧 = 9 5 3 𝑦 − 5 3 𝑧 = −5 3𝑧 = 9 Agora podemos realizar a substituição de maneira regressiva, de baixo para cima, para descobrir os valores das variáveis. Resolvendo, da última linha para a primeira: 3𝑧 = 9 → 𝑧 = 3 5 3 𝑦 − 5 3 𝑧 = −5 → 5 3 𝑦−= −5 + 5 3 ∗ 3 → 𝑦 = 0 3𝑥 + 𝑦 + 2𝑧 = 9 → 3𝑥 = 9 − 0 − 2 ∗ 3 → 𝑥 = 1 Sendo assim, obtemos: 𝑥 = 1 𝑦 = 0 𝑧 = 3 Em relação a escolha do elemento pivô, temos alguns pontos importantes a serem observados. A escolha do elemento pivô deve evitar selecionar elementos nulos ou muito pequenos. A escolha de elementos nulos torna a divisão impossível, não sendo possível obter o multiplicador. Selecionar números muito pequenos podem ter um resultado negativo pois pode resultar em erros de arredondamento ao calcular o multiplicador, refletindo em uma dificuldade de anular as variáveis em análise. Para escolher o elemento Sistemas lineares e não lineares pivô adequado deve-se trocar linhas e colunas, visando obter um posicionamento que otimiza o processo de eliminação progressiva. Assim, antes que cada linha seja normalizada, é vantajoso determinar o maior coeficiente disponível na coluna abaixo do elemento pivô. As linhas podem ser trocadas de modo que o maior coeficiente seja o elemento pivô. Isso é chamado de pivotamento parcial. Se procurarmos o maior elemento também nas colunas, além de nas linhas, e então trocarmos, o processo é chamado de pivotamento completo (CHAPRA, CANALE, 2013). MÉTODO DE GAUSS-JACOBI O método de Gauss-Jacobi consiste em isolar cada uma das incógnitas do sistema de equações, deixando cada variável como uma função das demais variáveis. A primeira linha do sistema de equações se transforma em uma equação de x1 em função das demais variáveis, a segunda linha do sistema se transforma em uma equação de x2 em função das demais variáveis e assim por diante. Em seguida, para o sistema de n equações, com n incógnitas, teremos uma equação para cadaincógnita. Partindo de uma estimativa inicial, é possível realizar um processo iterativo que utiliza as estimativas anteriores para calcular novas estimativas. O processo para até que todas as variáveis tenham seu erro (obtido através das diferenças das estimativas) menor que a tolerância. Para ilustrar o procedimento realizado, iremos aplicar o método em um exemplo. O exemplo apresentado a seguir vem do livro Cálculo Numérico da autora Celina Jarletti, disponível na Biblioteca Virtual Pearson. Exemplo 2: 10𝑥 + 2𝑦 + 3𝑧 = 31 2𝑥 + 5𝑦 − 𝑧 = 17 𝑥 + 2𝑦 + 5𝑧 = 2 Iniciamos isolando cada variável, por ordem de linha (1º linha: primeira variável; 2° linha: segunda variável e etc...) Sistemas lineares e não lineares 10𝑥 = 31 − 2𝑦 − 3𝑧 5𝑦 = 17 − 2𝑥 + 𝑧 5𝑧 = 2 − 𝑥 − 2𝑦 Sendo assim, temos as seguintes equações: 𝑥 = 1 10 (31 − 2𝑦 − 3𝑧) 𝑦 = 1 5 (17 − 2𝑥 + 𝑧) 𝑧 = 1 5 (2 − 𝑥 − 2𝑦) Iniciando o processo iterativo com as variáveis todas estimadas como 0, iniciamos nosso processo iterativo: Iteração 1: 𝑥1 = 1 10 (31 − 2𝑦0 − 3𝑧0) 𝑦1 = 1 5 (17 − 2𝑥0 + 𝑧0) 𝑧1 = 1 5 (2 − 𝑥0 − 2𝑦0) 𝑥1 = 1 10 (31 − 2 ∗ 0 − 3 ∗ 0) = 3,1 𝑦1 = 1 5 (17 − 2 ∗ 0 + 0) = 3,4 𝑧1 = 1 5 (2 − 0 − 2 ∗ 0) = 0,4 Sendo assim, temos 𝑥1 = 3,1; 𝑦1 = 3,4; 𝑧1 = 0,4. Iteração 2: Sistemas lineares e não lineares 𝑥2 = 1 10 (31 − 2𝑦1 − 3𝑧1) 𝑦2 = 1 5 (17 − 2𝑥1 + 𝑧1) 𝑧2 = 1 5 (2 − 𝑥1 − 2𝑦1) 𝑥2 = 1 10 (31 − 2 ∗ 3.4 − 3 ∗ 0.4) = 2,3 𝑦2 = 1 5 (17 − 2 ∗ 3.1 + 0.4) = 2,24 𝑧2 = 1 5 (2 − 3.1 − 2 ∗ 3.4) = −1,58 Sendo assim, temos 𝑥2 = 2.3; 𝑦2 = 2.24; 𝑧2 = −1.58. Calculando o erro: 𝜀𝑥 = |2.3 − 3.1| |2.3| = 0,3478 𝜀𝑦 = |2.24 − 3.4| |2.24| = 0,5179 𝜀𝑧 = |−1.58 − 0.4| | − 1.58| = 1,2531 Iteração 3: 𝑥3 = 1 10 (31 − 2𝑦2 − 3𝑧2) 𝑦3 = 1 5 (17 − 2𝑥2 + 𝑧2) 𝑧3 = 1 5 (2 − 𝑥2 − 2𝑦2) 𝑥3 = 1 10 (31 − 2 ∗ 2.24 − 3 ∗ (−1.58)) = 3.126 𝑦3 = 1 5 (17 − 2 ∗ 2.3 − 1.58) = 2.164 𝑧3 = 1 5 (2 − 2.3 − 2 ∗ 2.24) = −0.956 Sendo assim, temos 𝑥3 = 3.126; 𝑦3 = 2.164; 𝑧3 = −0.956. Calculando o erro: Sistemas lineares e não lineares 𝜀𝑥 = |3.126 − 2.3| |3.126| = 0,2642 𝜀𝑦 = |2.164 − 2.24| |2.164| = 0,0351 𝜀𝑧 = |−0.956 + 1.58| | − 0.956| = 0,6527 O processo continua até que o erro das 3 variáveis satisfaça o critério pré- estabelecido. O método demora 8 iterações para finalizar, utilizando 𝜀 = 0,01. O resultado final é 𝑥 = 2.9981; 𝑦 = 1.9994; 𝑧 = −1.0015. É possível observar uma característica importante do método de Gauss-Jacobi: os valores das variáveis só são atualizados após finalizar o cálculo de todas as variáveis. MÉTODO DE GAUSS-SEIDEL O método de Gauss-Seidel é similar ao método de Gauss-Jacobi, mas com uma mudança que trás grandes melhorias na velocidade de resolução: os valores de cada estimação são atualizados instantaneamente após o cálculo, já sendo utilizado imediatamente, sem esperar que a iteração finalize para ser atualizado. Agora iremos realizar o exemplo anterior utilizando a metodologia de Gauss- Seidel invés de Gauss-Jacobi. Exemplo 3: 10𝑥 + 2𝑦 + 3𝑧 = 31 2𝑥 + 5𝑦 − 𝑧 = 17 𝑥 + 2𝑦 + 5𝑧 = 2 Reescrevendo o sistema: 𝑥 = 1 10 (31 − 2𝑦 − 3𝑧) 𝑦 = 1 5 (17 − 2𝑥 + 𝑧) 𝑧 = 1 5 (2 − 𝑥 − 2𝑦) Iniciando o processo iterativo com as variáveis todas estimadas como 0, iniciamos nosso processo iterativo: Sistemas lineares e não lineares Iteração 1: Aqui temos a diferença entre os métodos Gauss-Seidel e de Gauss-Jacobi. O valor de x calculado já é utilizado no primeiro cálculo de y. O primeiro cálculo de z já utiliza os valores calculados de x e y. As diferenças foram deixadas em negrito para que o aluno consiga percebe-las com facilidade. 𝑥1 = 1 10 (31 − 2𝑦0 − 3𝑧0) 𝑦1 = 1 5 (17 − 2𝒙𝟏 + 𝑧0) 𝑧1 = 1 5 (2 − 𝒙𝟏 − 2𝒚𝟏) 𝑥1 = 1 10 (31 − 2 ∗ 0 − 3 ∗ 0) = 3.1 𝑦1 = 1 5 (17 − 2 ∗ 3.1 + 0) = 2.16 𝑧1 = 1 5 (2 − 3.1 − 2 ∗ 2.16) = −1,084. Sendo assim, temos 𝑥1 = 3.1; 𝑦1 = 2.16; 𝑧1 = −1,084. Iteração 2: 𝑥2 = 1 10 (31 − 2𝑦1 − 3𝑧1) 𝑦2 = 1 5 (17 − 2𝒙𝟐 + 𝑧1) 𝑧2 = 1 5 (2 − 𝒙𝟐 − 2𝒚𝟐) 𝑥2 = 1 10 (31 − 2 ∗ 2.16 − 3 ∗ (−1,084)) = 2.9932 𝑦2 = 1 5 (17 − 2 ∗ 2.9932 − 1,084) = 1.9859 𝑧2 = 1 5 (2 − 2.9932 − 2 ∗ 1.9859) = −0.9930 Sistemas lineares e não lineares Sendo assim, temos 𝑥2 = 2.9932; 𝑦2 = 1.9859; 𝑧2 = −0.9930. Calculando o erro: 𝜀𝑥 = |2.9932 − 3.1| |2.9932| = 0,0357 𝜀𝑦 = |1.9859 − 2.16| |1.9859| = 0,0876 𝜀𝑧 = |−0.9930 + 1.084| | − 0.9930| = 0,9164 Comparando com os erros da segunda iteração do método de Gauss- Jacobi, percebemos que o erro é bem menor que o primeiro cálculo. O método converge para o resultado obtido com somente quatro iterações, necessitando da metade da quantidade de iterações do que o método de Gauss- Jacobi, utilizando o mesmo valor de erro especificado. O resultado final é 𝑥 = 2.9999; 𝑦 = 1.9988; 𝑧 = −0.9996. O resultado é levemente diferente. Devido a esse melhor desempenho, o método de Gauss-Seidel é o método mais utilizado para resolver sistemas de equações lineares. MÉTODO DE NEWTON-RAPHSON Os métodos abordados até então são referentes a solução de sistemas de equações lineares, não sendo adequados para sistemas de equações não lineares. Agora iremos apresentar, de maneira breve (devido a sua alta complexidade e limitação de tempo) o método de Newton-Raphson, muito utilizado na resolução de sistemas de equações não lineares. Esse método é o método numérico mais importante do estudo de fluxo de potência, na engenharia elétrica de sistemas de potência. O método de Newton-Raphson corresponde da resolução do problema linear apresentado na Equação 4: 𝑔(𝑥𝑖) = −𝐽(𝑥𝑖)∆𝑥𝑖 (4) Sendo: Sistemas lineares e não lineares 𝑔(𝑥𝑖) o sistema de equações sendo analisadas; ∆𝑥𝑖 a atualização incremental de x, descrita na Equação 5; 𝐽(𝑥𝑖) a matriz jacobiana descrita na Equação 6. 𝑥𝑖+1 = 𝑥𝑖 + ∆𝑥𝑖 (5) 𝐽(𝑥𝑖) = [ 𝜕𝑓1 𝑖 𝜕𝑥1 ⋯ 𝜕𝑓1 𝑖 𝜕𝑥𝑖 ⋮ ⋱ ⋮ 𝜕𝑓𝑛 𝑖 𝜕𝑥1 ⋯ 𝜕𝑓𝑛 𝑖 𝜕𝑥𝑛 ] (6) A matriz Jacobiana é montada com as derivadas parciais de todas as n funções do sistema de equações, em relação as n variáveis a serem resolvidas. Apresentamos no exemplo a seguir como montar a matriz jacobiana de um sistema pequeno de equações não lineares e a Equação 4. O exemplo apresentado a seguir vem do livro Cálculo Numérico da autora Celina Jarletti, disponível na Biblioteca Virtual Pearson. Exemplo 4: 𝑔(𝑥) = 𝑥 + 𝑦 − 3 = 0 𝑥2 + 𝑦2 − 9 = 0 𝐽(x) = [ 𝜕𝑓1 𝑖 𝜕𝑥 𝜕𝑓2 𝑖 𝜕𝑥 𝜕𝑓1 𝑖 𝜕𝑦 𝜕𝑓2 𝑖 𝜕𝑦 ] = [ 𝜕(𝑥 + 𝑦 − 3) 𝜕𝑥 𝜕(𝑥 + 𝑦 − 3)) 𝜕𝑦 𝜕𝜕(𝑥2 + 𝑦2 − 9) 𝜕𝑥 𝜕(𝑥2 + 𝑦2 − 9) 𝜕𝑦 ] 𝐽(x) = [ 1 1 2𝑥 2y ] Sendo assim, montamos o seguinte sistema a ser resolvido: 𝑔(𝑥𝑖) = −𝐽(𝑥𝑖)∆𝑥𝑖 Sistemas lineares e não lineares [ 𝑥 + 𝑦 − 3 = 0 𝑥2 + 𝑦2 − 9 = 0 ] = − [ 1 1 2𝑥 2y ] [ ∆𝑥𝑖 ∆y ] Algumas dicas na montagem da matriz Jacobiana: • Isole sempre a função a 0, para que você possa derivar de maneira direta. • Para cada linha da matriz Jacobiana, a função a ser derivada (parte de cima) é a mesma; • Para cada coluna da matriz Jacobiana, a variável utilizada na derivação (parte de baixo) é a mesma. A resolução completa desse exemplo e uma técnica de melhoria do método de Newton-Raphon é apresentado no livro Cálculo Numérico da autora Celina Jarletti, nas páginas 92 a 97. RESUMO Nesse capítulo foi realizado a apresentação dos métodos numéricos utilizados na resolução de sistemas de equações. Foi apresentado um método direto (eliminação de Gauss), dois métodos interativos para sistemas lineares (Gauss-Jacobie Gauss-Seidel) e um método iterativo para a resolução de sistemas não lineares (Newton-Raphson). Breves exemplos foram apresentados, não sendo finalizados devido a limitação de tempo. Sistemas lineares e não lineares REFERÊNCIAS BIBLIOGRÁFICAS CELINA, J. Cálculo Numérico. Curitiba, InterSaberes, 2018. SPERANDIO, D.; MENDES, J. T.; E SILVA, L. H. M. Cálculo numérico. 2° edição São Paulo. Pearson, 2014. CHAPRA, S. C.; CANALE, R. P. Métodos numéricos para engenharia. McGraw-Hill, 2008.