1 Modelagem conceitual, matemática e numérica em engenharia
2 Solução de sistemas de equações algébricas lineares
3 Solução de sistemas de equações algébricas não lineares
Otimização e programação linear
5
Destaca-se o Método dos Elementos Finitos, nascido na Engenharia de Estruturas Aeronáuticas, na década de 1950, e hoje aplicado a todas as áreas citadas e muitas outras. Apresentam-se, nos Anexos deste livro, algumas implementações de algoritmos em linguagem MATLAB®.
Problemas de autovalores e autovetores
6 Representação de séries de dados experimentais por curvas
7 Equações diferenciais: problemas de valor inicial
8 Integração numérica
9 Equações diferenciais: problemas de valor de contorno
10 Método dos elementos finitos: introdução
Referências Bibliográficas Apêndices
www.blucher.com.br
REYOLANDO MANOEL LOPES REBELLO DA FONSECA BRASIL Doutor em Engenharia Civil. Livre Docente do Departamento de Estruturas da Escola Politécnica da Universidade de São Paulo e Professor Titular de Engenharia Aeroespacial da Universidade Federal do ABC. Bolsista de Produtividade em Pesquisa do CNPq Nível 1B.
JOSÉ MANOEL BALTHAZAR
MÉTODOS NUMÉRICOS E COMPUTACIONAIS
4
Os autores apresentam neste trabalho um apanhado dos métodos numéricos que consideram de maior aplicabilidade às Engenharias e Ciências do século XXI. O objeto é a solução numérica das equações algébricas e diferenciais que regem os fenômenos tratados em mecânica dos sólidos, mecânica dos fluidos, eletromagnetismo, termologia, química, geociências, ciência da computação etc. Aplicações em otimização e gestão de empreendimentos também são consideradas.
BRASIL | BALTHAZAR | GÓIS
CONTEÚDO
MÉTODOS NUMÉRICOS E COMPUTACIONAIS NA PRÁTICA DE ENGENHARIAS E CIÊNCIAS
Doutor em Engenharia Mecânica. Professor Titular do Departamento de Estatística, Matemática Aplicada e Computação da Universidade Estadual Paulista "Júlio de Mesquita Filho" e Professor Senior do Instituto Tecnológico de Aeronáutica. Bolsista de Produtividade em Pesquisa do CNPq Nível 1A.
WESLEY GÓIS
REYOLANDO M. L . R. F. BRASIL JOSÉ MANOEL BALTHAZAR WESLEY GÓIS
Doutor em Engenharia Civil. Professor Adjunto de Engenharia Aeroespacial da Universidade Federal do ABC.
Métodos Numéricos e Computacionais na Prática de Engenharias e Ciências
00 abertura 00_Reyolando.indd 1
21/09/2015 12:45:43
00 abertura 00_Reyolando.indd 2
21/09/2015 12:45:43
Reyolando Manoel Lopes Rebello da Fonseca Brasil Doutor em Engenharia Civil Livre Docente do Departamento de Estruturas da Escola Politécnica da Universidade de São Paulo e Professor Titular de Engenharia Aeroespacial da Universidade Federal do ABC
José Manoel Balthazar Doutor em Engenharia Mecânica Professor Titular do Departamento de Estatística, Matemática Aplicada e Computação da Universidade Estadual Paulista “Júlio de Mesquita Filho” e Professor Senior do Instituto Tecnológico de Aeronáutica
Wesley Góis Doutor em Engenharia Civil Professor Adjunto de Engenharia Aeroespacial da Universidade Federal do ABC
Métodos Numéricos e Computacionais na Prática de Engenharias e Ciências
00 abertura 00_Reyolando.indd 3
21/09/2015 12:45:43
Métodos numéricos e computacionais na prática de Engenharias e Ciências © 2015 Reyolando M. L. R. F. Brasil José Manoel Balthazar Wesley Góis Editora edgard Blücher Ltda.
Ficha Catalográfica Rua Pedroso Alvarenga, 1245, 4º andar 04531-934 – São Paulo – SP – Brasil Tel.: 55 11 3078-5366 contato@blucher.com.br www.blucher.com.br
Brasil, Reyolando M. L. R. F. Métodos numéricos e computacionais na prática de engenharias e ciências / Reyolando M. L. R. F. Brasil, José Manoel Balthazar, Wesley Góis. – São Paulo: Blucher, 2015.
Bibliografia Segundo o Novo Acordo Ortográfico, conforme 5. ed. do Vocabulário Ortográfico da Língua Portuguesa, Academia Brasileira de Letras, março de 2009.
ISBN 978-85-212-0934-8
1. Cálculos numéricos 2. Matemática na engenharia 3. Computação – Matemática 4. Análise numérica – Processamento de dados I. Título II. Balthazar, José Manoel III. Góis, Wesley
É proibida a reprodução total ou parcial por quaisquer meios, sem autorização escrita da Editora. Todos os direitos reservados pela Editora Edgard Blücher Ltda.
00 abertura 00_Reyolando.indd 4
15-0734 CDD 518 Índices para catálogo sistemático: 1. Análise numérica
21/09/2015 12:45:43
Para nossas famílias, o nosso amor.
00 abertura 00_Reyolando.indd 5
21/09/2015 12:45:43
00 abertura 00_Reyolando.indd 6
21/09/2015 12:45:43
Se o amor for realmente apenas uma reação química... Melhor! Ela pode ser reproduzida. Rey Brasil
00 abertura 00_Reyolando.indd 7
21/09/2015 12:45:43
00 abertura 00_Reyolando.indd 8
21/09/2015 12:45:43
Prefácio
Desde a invenção do computador eletrônico digital de programa armazenado, após a Segunda Guerra Mundial, ocorreu uma grande revolução na forma como os problemas das engenharias e das ciências passaram a ser tratados. Vários métodos aproximados, gráficos, ábacos, tabelas, que honram a inteligência e a habilidade daqueles que os propuseram, tornaram-se obsoletos, em favor da implementação numérica e computacional de métodos teoricamente mais exatos que antes tinham aplicação proibitiva. Uma revolução ainda maior ocorreu a partir da década de 1980, quando apareceram os computadores pessoais e seu uso foi difundido. Os computadores pessoais levaram para a mesa do analista todo poder da computação automática a custo razoável, em dinheiro e em tempo. O objeto tem sido, em grande parte, a solução numérica das equações algébricas e diferenciais que regem os fenômenos tratados na mecânica, no eletromagnetismo, na termologia, na química etc. Nessa vertente, uma técnica de análise numérica verdadeiramente original e contemporânea ao surgimento dos computadores é o Método dos Elementos Finitos, nascido na engenharia de estruturas aeronáuticas e hoje aplicado às áreas citadas e muitas outras. Esta obra apresenta um apanhado dos métodos numéricos considerados de maior aplicabilidade às engenharias e às ciências do século XXI. A apresentação é feita na sequência que se acredita ser mais adequada ao ensino dessas técnicas a estudantes e profissionais das engenharias e das ciências. Para isso, procura-se apresentar exemplos que englobem a maior variedade possível de áreas de aplicação.
00 abertura 00_Reyolando.indd 9
21/09/2015 12:45:43
10
Métodos numéricos e computacionais na prática de engenharias e ciências
Desde já, pedimos desculpas aos colegas matemáticos pela falta de rigor da apresentação no que tange a provas de validade e ausência de análises de erros dos algoritmos propostos. Na geração dos dois autores mais velhos, a programação em linguagens de alto nível tinha como ferramenta básica de trabalho o Fortran. Atualmente, programas extremamente amigáveis dedicados à solução de problemas matemáticos e numéricos estão disponíveis, como MATLAB®, Mathcad, Maple, Mathematica; também há aplicativos de escritório, como o Microsoft Office Excel. Nos apêndices deste livro, são apresentadas algumas implementações em MATLAB®. Reconhece-se aqui o débito de gratidão com professores, livros e alunos, em particular os livros de Crandall e Chapra.
Santo André, março de 2015. Os autores
00 abertura 00_Reyolando.indd 10
21/09/2015 12:45:43
Sobre a notação
Neste texto, letras maiúsculas em negrito indicam matrizes, letras minúsculas em negrito denotam vetores e letras maiúsculas e minúsculas em itálico representam grandezas escalares. A letra “T” superescrita à direita de uma matriz indica sua transposta, isto é, a permutação de linhas por colunas. Um expoente “–1” à direita de uma matriz demonstra sua inversa. Duas barras verticais à direita e à esquerda de uma matriz ou vetor denotam sua norma. No caso de um escalar, elas representam seu valor absoluto.
00 abertura 00_Reyolando.indd 11
21/09/2015 12:45:43
00 abertura 00_Reyolando.indd 12
21/09/2015 12:45:43
Conteúdo
1. Modelagem conceitual, matemática e numérica em engenharia......
17
1.1
Erros em modelagem numérica.........................................................
21
1.2
Estabilidade numérica......................................................................
23
1.3
Balanço de ordem de grandeza: modelos adimensionais.....................................................................
24
Um exemplo de modelagem em engenharia de estruturas.................
26
2. Solução de sistemas de equações algébricas lineares.....................
29
1.4
2.1
Métodos diretos...............................................................................
30
2.1.1 Método de eliminação de Gauss sem pivotamento...............
30
2.1.2 Método de eliminação de Gauss com pivotamento...............
32
2.1.3 Método de eliminação de Gauss para determinação da matriz inversa..................................................................................
32
2.1.4 Método de eliminação de Gauss para cálculo do determinante...................................................................
34
2.1.5 Método de Cholesky para sistemas simétricos positivos definidos...............................................................................
34
2.1.6 Caso particular de sistemas tridiagonais simétricos...............
35
2.2 Métodos iterativos............................................................................
36
00 abertura 00_Reyolando.indd 13
21/09/2015 12:45:43
14
Métodos numéricos e computacionais na prática de engenharias e ciências
2.2.1 Método de Gauss-Jacobi (iteração por passos totais)............
36
2.2.2 Método de Gauss-Seidel (iteração por passos simples)..........
37
2.2.3 Exemplo numérico de aplicação dos métodos iterativos.........
38
2.3 Aplicações em engenharias e ciências...............................................
38
2.3.1 Solução de treliças planas pelo método do equilíbrio dos nós.................................................................................
38
2.3.2 Vigas contínuas pelo método dos três momentos..................
40
2.3.3 Circuito elétrico de uma ponte de Wheatstone (leis de Kirchhoff).................................................................
41
2.3.4 Condução de calor em meio a vários materiais.....................
42
3. Solução de sistemas de equações algébricas não lineares..............
45
3.1
Séries de Taylor................................................................................
46
3.2
Método de Newton-Raphson...........................................................
47
3.3
Outros métodos................................................................................
49
3.3.1 Método de Newton modificado (ou quase Newton)..............
49
3.3.2 Método de Broyden..............................................................
50
3.3.3 Método steepest descent.......................................................
50
3.3.4 Método dos gradientes conjugados.......................................
51
Aplicações em engenharias e ciências...............................................
51
3.4.1 Treliça simétrica de duas barras, grandes deslocamentos.....
51
3.4.2 O problema geral elastoestático não linear...........................
53
3.4.3 Reação química não linear...................................................
53
3.4.4 Rede de distribuição de água................................................
54
4. Otimização e programação linear...............................................
57
3.4
4.1
O problema padrão de otimização...................................................
58
4.2
Otimização unidimensional: o segmento áureo................................
59
4.3
Programação linear..........................................................................
61
4.3.1 Método SIMPLEX...............................................................
62
4.3.2 Método SIMPLEX de Dantzig.............................................
64
4.3.3 Método do Ponto Interior de Karmakar...............................
64
4.3.4 Método de Barnes................................................................
65
4.4
Programação não linear...................................................................
66
4.5
Aplicações em engenharia................................................................
67
4.5.1 Engenharia de estruturas......................................................
67
4.5.2 Engenharia de petróleo........................................................
68
00 abertura 00_Reyolando.indd 14
21/09/2015 12:45:43
15
Conteúdo
5. Problemas de autovalores e autovetores........................................ 5.1 5.2 5.3
71
Problemas padrão e generalizado...................................................... Iteração pelo método de Stodola-Vianello......................................... Aplicações nas engenharias e ciências............................................... 5.3.1 Frequências e modos de vibração livre não amortecida........ 5.3.2 Modos e cargas críticas de flambagem.................................
71 73 75 75 77
6. Representação de séries de dados experimentais por curvas..........
79
6.1 6.2 6.3 6.4
Regressão linear e linearização......................................................... Regressão não linear........................................................................ Interpolação..................................................................................... Interpolação por splines...................................................................
79 82 83 84
7. Equações diferenciais: problemas de valor inicial..........................
87
7.1 7.2 7.3 7.4
Diferenças finitas.............................................................................. Método de Newmark....................................................................... Métodos de Runge-Kutta................................................................. Aplicações em engenharias e ciências............................................... 7.4.1 Movimento de um sistema mecânico linear.......................... 7.4.2 Meteorologia: o sistema de Lorenz....................................... 7.4.3 Engenharia eletrônica: equação de Van der Pol....................
88 89 91 92 92 96 98
8. Integração numérica................................................................... 101 8.1
8.2 8.3
Fórmulas de Newton-Cotes.............................................................. 8.1.1 Regra do trapézio................................................................. 8.1.2 Regras de Simpson............................................................... 8.1.3 Regras de Newton-Cotes de ordem superior........................ Quadratura de Gauss....................................................................... Aplicações em engenharias e ciências............................................... 8.3.1 Cálculo do valor RMS de uma corrente alternada................ 8.3.2 Frequência natural de vibração de viga comprimida.............
101 102 102 103 103 104 104 105
9. Equações diferenciais: problemas de valor de contorno.................. 107 9.1 9.2 9.3
Diferenças finitas.............................................................................. Método do “chute”........................................................................... Aplicações em engenharias e ciências............................................... 9.3.1 Viga sobre base elástica........................................................ 9.3.2 Torção de Prandtl................................................................. 9.3.3 Condução de calor...............................................................
00 abertura 00_Reyolando.indd 15
107 109 111 111 113 114
21/09/2015 12:45:43
16
Métodos numéricos e computacionais na prática de engenharias e ciências
10. Método dos elementos finitos: introdução.....................................
117
10.1 Forma forte: equações diferenciais ordinárias e problemas de valor de contorno (PVC)..............................................................
117
10.2 Formulação variacional fraca: método dos resíduos ponderados e método de Galerkin.......................................................................
118
10.3 Técnica de elementos finitos aplicada ao método de Galerkin..........
125
10.4 Aplicações em engenharias e ciências...............................................
133
10.4.1 Barra sob força normal........................................................
133
10.4.2 Condução de calor...............................................................
136
Referências bibliográficas.................................................................. 139 Apêndice 1 – MATLAB® visto como uma calculadora.......................... 143 Apêndice 2 – Fundamentos de programação em MATLAB®................. 153 Apêndice 3 – Recursos gráficos e animações em MATLAB®................. 163
00 abertura 00_Reyolando.indd 16
21/09/2015 12:45:43
Capítulo
1
Modelagem conceitual, matemática e numérica em engenharia
Um sistema pode ser definido como um conjunto de componentes que atuam como um todo e que transformam variáveis de entrada no sistema em variáveis de saída. Para descrever o comportamento de um sistema físico, deve-se, primeiro, conceber um modelo conceitual (ou idealizado) desse sistema. A seguir, aplicando-se as leis físicas envolvidas, é preciso escrever um modelo matemático. Por fim, no caso usual, deve-se resolver esse modelo analítica ou numericamente. Um modelo é uma representação (substitutiva) da realidade. O verbo “modelar” significa construir representações idealizadas de uma situação real. Logo, um modelo matemático pode ser entendido ou definido como uma formulação, uma equação ou um conjunto de equações, que podem ser algébricas ou diferenciais e que expressam as características essenciais de um sistema (físico, de engenharia etc.) ou de um processo, em termos matemáticos. Ao longo dos anos, a construção de modelos tem desempenhado um papel importante na descoberta e na disseminação do conhecimento. O grau de realismo desejado a partir de um modelo matemático depende de muitas considerações. Esse processo envolve manter certas características, negligenciando algumas e aproximando outras. Existem muitos tipos de modelos. Alguns são determinísticos,
01 Cap. 01_Reyolando.indd 17
21/09/2015 12:46:08
18
Métodos numéricos e computacionais na prática de engenharias e ciências
nos quais leis bem definidas aplicadas sobre as variáveis de entrada levam ao valor das variáveis de saída. Outros são probabilísticos ou estocásticos, nos quais essas leis não existem, sendo possível encontrar apenas valores de resposta dentro de certas faixas e com certa probabilidade. Alguns são modelos simplesmente descritivos, enquanto outros são modelos de decisão; alguns são usados para fazer cálculos, ao passo que outros são usados para investigar ou prever propósitos. O desafio em modelagem matemática não é produzir o modelo descritivo mais abrangente, mas, sim, produzir o modelo mais simples possível que incorpore as principais características do fenômeno de interesse. Não há melhor modelo, apenas modelos melhores. Cientistas experimentais ocupam-se de desmontar o mundo real e estudar pequenos componentes. Desde que o mundo real é não linear, a montagem dos componentes juntos torna-se um quebra-cabeça. A combinação de ciência e modelagem leva-nos a uma completa compreensão do fenômeno estudado. O processo de modelagem matemática pode ser dividido em três etapas principais: • deve-se ter uma ideia clara dos vários tipos de leis que regem o problema; • para idealizar ou simplificar o problema, deve-se introduzir certos pressupostos e converter o problema em equações matemáticas; • para resolver as equações matemáticas e interpretar os resultados, é necessário conhecimento das ferramentas analíticas, numéricas e experimentais. Começa-se com um modelo simples que, depois, é refinado gradualmente, avaliando-se pressupostos e simplificações efetuados, para que os resultados correspondam a uma situação do mundo real. Se a solução não for aceitável nem viável, mergulha-se novamente no oceano matemático para realizar as modificações no modelo e o procedimento de solução de forma mais rigorosa. Deve-se repetir o procedimento até que uma solução satisfatória seja obtida. A técnica usual de construção de modelos matemáticos pode ser sumarizada como na Figura 1.1. É extremamente difícil classificar os modelos matemáticos de um sistema em estudo. Existem dois tipos de classificação de modelos matemáticos de acordo com a maneira como as propriedades físicas do sistema físico são descritas. Esses tipos podem ser discretos ou contínuos. Os discretos são descritos por equações algébricas ou diferenciais ordinárias (EDO), lineares ou não; os contínuos são descritos por equações a derivadas parciais (EDP), lineares ou não, ou equações integrais que são funções das coordenadas e do tempo (EI). Sabe-se que as equações básicas podem ser do tipo estático, quando as variações no tempo do sistema não são levadas em conta, ou do tipo dinâmico, quando as variações no tempo do sistema são levadas em conta.
01 Cap. 01_Reyolando.indd 18
21/09/2015 12:46:08
19
Modelagem conceitual, matemática e numérica em engenharia
Enunciado não matemático de um problema real Idealização mediante suposições
Modelo matemático
Técnicas matemáticas
Resultado de um modelo matemático
Resultados experimentais ou observados do problema real suposto
FIM Se satisfatório Comparação dos resultados
Reexaminar os resultados experimentais ou observados
Figura 1.1
Se não satisfatório
Fazer idealizações adicionais
Esquema de técnicas de modelagem de problemas reais.
Como ilustração, considere-se um sistema discreto representado por uma equação algébrica, recursiva, linear, em que X n é dobrado a cada iteração: X n +1 = 2 X n ,
n = 0, 1,..
(1.1)
Os exemplos de modelos discretos dados por uma equação diferencial ordinária são osciladores amortecidos, não forçados; portanto, a equação é independente do tempo explicitamente. m
d 2x dx = −kx − b . 2 dt dt
(1.2)
Outro exemplo de um sistema autônomo do mesmo tipo é: + bx + a (e x − 1) = 0. x
(1.3)
No caso não autônomo (dependente do tempo explicitamente), citam-se, por exemplo, os osciladores de Duffing, Van der Pol, Mathieu, Hill e Mathieu: + a x + w 02 x + bx 3 = f sin w t. x
(1.4)
− a (1 − x 2 )x + w 02 x = f sin w t. x
(1.5)
+ ( + p(t))x = 0, x
(1.6)
+ (a + p(t))x = 0, p(t) = b cos t, x
(1.7)
01 Cap. 01_Reyolando.indd 19
21/09/2015 12:46:09
20
Métodos numéricos e computacionais na prática de engenharias e ciências
O estado de um sistema pode ser definido como uma estrutura matemática constituída de um conjunto de variáveis que sejam suficientes para descrever univocamente sua configuração. Existe um número mínimo de variáveis de estado que se torna necessário para representar um sistema de modo preciso, denominado grau de liberdade do sistema. A título de ilustração, considera-se a Equação (1.6), onde é um parâmetro positivo. Fazendo-se a substituição de variáveis y1 = x e y 2 = x, obtém-se (na forma de estado): y 1 = y 2
(1.8)
y 2 = (1 − y12 )y 2 − y1
(1.9)
No caso contínuo, tem-se a expressão: F = f (p (x, y, z, t))
(1.10)
onde F é o parâmetro previsto; p é o argumento generalizado; x, y, z são as coordenadas espaciais; e t é o tempo. Quando o parâmetro p e, portanto, F, dependem das coordenadas espaciais e do tempo, os modelos são chamados dependentes do tempo, não autônomos ou dinâmicos. Quando o parâmetro p e, portanto, F, são independentes do tempo t, os modelos são chamados estacionários, autônomos ou estáticos. Eles podem ser representados pela relação F = f(p(x, y, z)). Como exposto, os modelos matemáticos também podem ser classificados como determinísticos quando o argumento generalizado p na Equação (1.10) puder ser definido por um valor do parâmetro previsto F. Entretanto, se as medidas incluem alguma componente estatística, como média, dispersão e desvio padrão, um modelo é estocástico. O valor previsto, nesse caso, apresenta-se por um espectro de valores possíveis (como na ação de ventos ou sismos em estruturas). Os modelos que incluem aleatoriedade são chamados estocásticos. Ressalta-se que o material discutido aqui serve como ponto de partida para discussões mais amplas. Os resultados obtidos por meio de modelos matemáticos são sempre diferentes daqueles que seriam obtidos por cuidadosos ensaios experimentais. Dessa forma, é claro que não existe um único modelo matemático para o problema real, mas sim vários, cada um com diferentes graus de aproximação e de validade. Nos estágios iniciais de uma análise de engenharia ou física, por exemplo, procura-se começar com um modelo matemático mais simples, com o objetivo de adquirir um bom conhecimento do problema sem esforço excessivo. Entretanto, à medida que são necessários modelos matemáticos com menos limitação, é preciso acrescentar novos aspectos do problema real que podem resultar na elaboração de
01 Cap. 01_Reyolando.indd 20
21/09/2015 12:46:09
21
Modelagem conceitual, matemática e numérica em engenharia
modelos matemáticos mais complexos e de difícil solução. O estudo de modelos mostra semelhanças de comportamento de uma grande variedade de sistemas da engenharia, da física etc. Pretende-se, neste livro, oferecer ferramentas numéricas para a solução dos modelos matemáticos. Essas ferramentas constituem, em geral, algoritmos. Um algoritmo pode ser entendido como uma sequência de instrução ordenada de maneira a dar, em seu decurso, a solução para um problema específico. Os algoritmos têm a seguintes características: • devem identificar todas as etapas do modelo; • podem falhar por violar restrições físicas da máquina (computador), que são detectadas em tempo de execução; • como muitos problemas numéricos são resolvidos por métodos iterativos (repetitivos), faz-se necessário estabelecer um critério de parada, para que o algoritmo possa terminar após um número finito de passos, sendo aconselhável que o número de passos seja determinado a priori; • devem ter independência de máquina; • precisam ter eficiência (economia de memória e de tempo); • o resultado deve ser <= valor aproximado + limite erro. Pode-se dizer que, geralmente, os erros cometidos no processo de estudo de um problema real provêm de três fontes distintas: modelagem matemática do problema (inevitável); precisão dos dados; erros de arredondamentos e truncamentos nas operações. Nos estudos qualitativos e quantitativos dos problemas de engenharia e física, por exemplo, devem-se utilizar algoritmos de análise adequados para os modelos matemáticos que foram associados a esses problemas.
1.1
Erros em modelagem numérica
Ressalta-se a importância do conhecimento da precisão dos dados, que depende de vários fatores do problema analisado. A título de exemplo, pode-se considerar a determinação da velocidade média do movimento de um objeto. Deve-se medir o percurso S e o tempo gasto t; e a velocidade média é obtida, indiretamente, ∆S . Se as grandezas S e t são afetadas por erros, na divisão tais pela divisão V = ∆t desvios vão combinar-se e afetar o valor da velocidade média. Em outras palavras, tem-se uma propagação de erros. Por outro lado, deve-se assegurar a minimização dos erros resultantes da representação de números no computador e dos erros resultantes das operações numéricas efetuadas no processo de solução numérica de um modelo matemático.
01 Cap. 01_Reyolando.indd 21
21/09/2015 12:46:09
22
Métodos numéricos e computacionais na prática de engenharias e ciências
A representação interna de um número depende da base de sua representação interna (base binária, decimal, hexadecimal etc.) e do máximo de dígitos usados na sua representação na máquina. Dependendo desses parâmetros, tem-se um resultado mais ou menos preciso. Outro ponto que se pode observar é que um número pode ter uma representação finita em certa base – decimal, por exemplo – e infinita em outra base. O número 0,11 na base decimal, quando representado no sistema binário, não possui representação finita, por exemplo. Um computador representa um número real qualquer no sistema denominado aritmética de ponto flutuante, onde sua mantissa possui certo número de dígitos e o expoente de 10 indica o expoente no intervalo considerado. Como, em geral, certo número sempre vai estar limitado a sua representação na aritmética de ponto flutuante, sabe-se, então, que ele quase nunca pode ser perfeitamente representado e quase sempre sofre um arredondamento ou um truncamento, dependendo das regras que se aplicam ao se desprezar os dígitos restantes. Como destacado, um número ao ser usado por determinada máquina é tratado com certo truncamento ou arredondamento, o que com certeza vai resultar erro a ser considerado e tratado pelo programa do usuário. Ao se executar um programa, vão sendo gerados erros que se propagam pelas diversas fases, podendo ocasionar erros maiores ou menores ao final da execução. Logo, é preciso ter sempre em mente que um erro é relativo, motivo pelo qual esse erro deve ser previsto e tratado pelo programa. Define-se o erro como a aproximação da iteração atual (Eatual) menos o erro da iteração anterior (Eanterior), dividida pela aproximação atual. Impõe-se que ele deve estar dentro de certa precisão (∈) dada a priori: E=
E Eatual − Eanterior − Eanterior 〈∈ ou E = atual 〈∈ Eanterior Eatual
(1.11)
A propagação de erros pode ser facilmente detectada nas operações aritméticas básicas, e esses conceitos podem ser estendidos também para outras operações, tais como potenciação, exponenciação e extração de logaritmos, usando a metodologia exposta a seguir. Se x é erro em X e h é erro em Y, isto é: xv = xa + x
(1.12)
yv = ya + h
(1.13)
então, para as operações de soma ou subtração, o erro do resultado é a soma dos erros cometidos em X e Y, ou seja: Re l[ x a + y b ] = x + h = Re l[ x a ] + Re l[y a ]
01 Cap. 01_Reyolando.indd 22
(1.14)
21/09/2015 12:46:10
23
Modelagem conceitual, matemática e numérica em engenharia
Nos casos da operação de multiplicação: x v .y v − x a y a = x v .h + y v .x + x.h
(1.15)
obtém-se: Re l[ x v .y v − x a y a ] =
x v .y v − x a y a = Re l[ x a ] + Re l[y a ] − Re l[ x a ].Re l[y a ] (1.16) xv yv
Se Rel[xa].Rel[ya] << 1, então Rel[xv.yv − xaya] = Rel[xa] + Rel[ya]. Nos casos da operação de divisão, obtém-se facilmente que: Re l[
xv xa Re l[ x a ] − Re l[y a ] − ]= yv ya 1 − Re l[y a ]
(1.17)
Se Rel[xa].Rel[ya] << 1, obtêm-se as equações x x Re l[ x v .y v − x a y a ] ≈ Re l[ x a ] + Re l[y a ] e Re l[ v − a ] ≈ Re l[ x a ] − Re l[y a ]. yv ya Resumindo-se os resultados obtidos, tem-se: • o erro relativo da soma é a soma dos erros relativos de cada parcela ponderada pela participação da parcela no total da soma; • o erro relativo da subtração é a soma dos erros relativos do minuendo com o erro relativo do subtraendo, ponderados pela participação de cada um no resultado da subtração; • o erro relativo do produto é a soma dos erros relativos dos fatores; • o erro relativo da divisão é a soma dos erros relativos do dividendo e do divisor.
1.2
Estabilidade numérica
Considere-se o seguinte problema: 5x1 + 7x2 = 0,7
Solução:
x1 = 0
7x1 + 10x2 = 1
x2 = 0,1
5xˆ 1 + 7 xˆ 2 = 0, 69
x̂1 = − 0,17
Solução: 7 xˆ 1 + 10xˆ 2 = 1, 01
x̂ 2 = 0, 22
Vê-se que uma pequena mudança nos coeficientes do lado direito do sistema levou a grandes mudanças no resultado. Do ponto de vista prático, deve-se introduzir uma medida de estabilidade (número de condição), que é a medida de sensibilidade da solução para pequenas mudanças na amostra.
01 Cap. 01_Reyolando.indd 23
21/09/2015 12:46:11
24
Métodos numéricos e computacionais na prática de engenharias e ciências
No caso particular em que se considera que uma função de uma variável f(xv) é uma aproximação por f(xa), pelo teorema do valor médio, tem-se: f (x v ) − f (x a ) ≈
df (x a ) .(x v − x a ) + ... dx
(1.18)
podendo-se definir os erros cometidos com: E[ f ( x )] =
f (x v ) − f (x a ) f ′(x )(x v − x a ) ≅ f (x a ) f (x a )
Usando-se a definição E[ x] = condição, definido por: K(x) = x a
(1.19)
xv − xa e introduzindo-se K como o número de xa
f ′(x a ) f (x a )
(1.20)
obtém-se: E[ f ( x )] = [ x a
f ′(x a ) x − x a ] ( ) = K(x) ⋅ E[ x] f (x a ) x
(1.21)
Considerando-se o número de condição dado por K, então: • se K for grande (k > 1) ⇒ mal condicionado; • se K for pequeno (k < 1) ⇒ bem condicionado. O teste de condicionamento verifica se o problema é bem condicionado ou bem posto.
1.3 Balanço de ordem de grandeza: modelos adimensionais Deve-se considerar responder à pergunta: um centímetro é grande ou pequeno? No caso de tratar-se de um satélite orbitando ao redor da Terra é muito pequeno, mas se tratar-se de um problema envolvendo distâncias intermoleculares, um centímetro é muito grande. Por outro lado, a massa de um grão-de-bico é muito pequena comparada à massa de um satélite, mas é muito grande comparada à massa de um elétron. Contorna-se esse tipo de problema pela adimensionalização, em que os valores absolutos dos parâmetros são relativizados entre si. A modelagem matemática, em geral, envolve estas etapas: manter alguns elementos, desprezar uns elementos,
01 Cap. 01_Reyolando.indd 24
21/09/2015 12:46:12
25
Modelagem conceitual, matemática e numérica em engenharia
aproximar outros. Portanto, há a necessidade da decisão sobre a ordem de grandeza de diferentes elementos do sistema. A seguir, ilustra-se o processo de adimensionalização por meio de um exemplo da teoria de vibrações. Considere-se o modelo matemático de um problema de vibração com um grau de liberdade, definido pela Figura 1.2. A variável u é o deslocamento e a variável t é o tempo. Obtém-se a equação de movimento, com as condições iniciais de posição e velocidade, de acordo com a segunda lei de Newton: u(0) = u0 du(0) dt = 0
d 2u du m 2 +m + ku = 0, dt dt
(1.22)
u(t) k m µ
Figura 1.2
t* = w 0t
Modelo vibratório simplificado de 1 grau de liberdade.
Se efetuada a mudança de variável: (u,t) → (u*,t*), onde t* = w 0t u k u*usando = w 02 = : u0 m
u* =
u k ; w 02 = u0 m
du d du * dt * d = w 0 u0 = [ u0 u *] = (u0 u*) dt dt dt * dt dt du * d du * dt * d 2u * d 2 u d du d 2 w w = w = = = u u u 0 0 0 0 0 0 dt * dt * dt * dt dt *2 dt 2 dt dt dt obtém-se: d 2u * du * + m* + u* = 0 2 dt * dt * ; m m* = mw 0
u *(0) =
u(0) u0 = =1 u0 u0
du *(0) du(0) = =0 dt dt
(1.23)
Observa-se que o coeficiente m* agora é a razão da força de amortecimento pela de inércia; a frequência natural tornou-se unitária.
01 Cap. 01_Reyolando.indd 25
21/09/2015 12:46:13
26
Métodos numéricos e computacionais na prática de engenharias e ciências
Ao adicionar-se uma componente não linear na expressão da força restauradora, por exemplo, da seguinte forma f Mola = ku + k2 u 2, obtém-se: d 2u * du * + m* + u * + e u *3 = 0 dt *2 dt *
e=
k2 u0 k
(1.24)
onde e é a razão das rigidezes não linear e linear. Note que se e for zero, obtém-se a Equação (1.22).
1.4 Um exemplo de modelagem em engenharia de estruturas O processo de modelagem de um problema de engenharia de estruturas pode ser exemplificado na Figura 1.3. Trata-se de um pórtico simples, composto de duas colunas verticais engastadas nas bases, de altura h, e uma viga horizontal de vão L. Os carregamentos indicados são dinâmicos.
x
dx
h
L
Figura 1.3
O modelo conceitual adotado é como o apresentado na Figura 1.3. A estrutura é, na realidade, um sólido tridimensional de medidas variáveis e materiais não homogêneos e não isótropos. Admite-se que possa ser representado por três elementos lineares retos, chamados barras, de seção constante e material homogêneo e isótropo, aos quais se atribui os nomes de colunas quando são verticais e de viga quando são horizontais. Essas características geométricas e materiais são consideradas invariantes no tempo. Além disso, assume-se que a estrutura e seus carregamentos estejam contidos em um plano. As condições de contorno geomé-
01 Cap. 01_Reyolando.indd 26
21/09/2015 12:46:13
27
Modelagem conceitual, matemática e numérica em engenharia
tricas nas bases das colunas são de total imobilidade. Finalmente, nesse exemplo, os deslocamentos dos pontos dessa estrutura no tempo são admitidos pequenos, de forma que o equilíbrio possa ser escrito na posição original, não deslocada, da estrutura. Não se levou em conta dissipação de energia. O modelo matemático adotado é como o apresentado a seguir. A ordenada x define a posição ao longo do eixo do elemento de uma seção genérica de uma dessas barras; u(x,t) e v(x,t) são os deslocamentos dos pontos dessa seção nas direções paralela e transversal ao eixo, respectivamente. Considere-se o segmento de barra de comprimento infinitesimal dx, mostrado nas Figuras 1.4 e 1.5. Segundo as leis da mecânica clássica, escreve-se as equações de equilíbrio dinâmico desse pequeno volume deste modo: EI
∂ 4v ∂ 2v p r A + = y ∂x 4 ∂t 2
(1.25)
∂2u ∂2u + p = r A x ∂x 2 ∂t 2
(1.26)
EA
onde A e I são a área e o momento de inércia da seção da barra; E e r são o módulo de elasticidade e densidade do material; p(x,t) é um carregamento externo distribuído ao longo da barra que, no caso geral, é variável no espaço e no tempo e tem componentes nas direções paralela e transversal ao eixo da barra.
Y
dφ
dv
v φ
X x
dx u
dx + du
Figura 1.4
01 Cap. 01_Reyolando.indd 27
21/09/2015 12:46:13
28
Métodos numéricos e computacionais na prática de engenharias e ciências N + dN
M + dM Q
Q + dQ
M N
Figura 1.5
O modelo matemático é dado por um sistema de equações diferenciais a derivadas parciais, mais as condições de contorno geométricas (Dirischlet) e naturais (Neuman). A solução desse modelo matemático dificilmente pode ser obtida de forma analítica fechada para condições de contorno gerais. Daí a necessidade de instituir um modelo numérico. Neste livro, é discutido o método numérico dos elementos finitos para essa finalidade. Nesse método faz-se uma discretização do problema contínuo. Os deslo camentos, que são funções contínuas do espaço e do tempo, são aproximados por uma superposição de um número finito de funções do espaço (funções de forma), multiplicadas por um número finito de funções do tempo (as coordenadas generalizadas do problema). No exemplo: u (x, t) = ∑ N ui (x) qi (t)
e
u (x, t) = ∑ N vi (x) qi (t)
(1.27)
A seguir, formula-se um modelo integral que transforma as Equações (1.25) e (1.26) em um sistema de equações diferenciais ordinárias nas variáveis qi(t). Se essas não forem funções do tempo, recai-se em um sistema de equações algébricas, ou seja, o problema estático. Note-se que os modelos conceitual e matemático desse problema podem ser consideravelmente mais complicados se outras hipóteses forem admitidas. Por exemplo: (1) as barras podem ter seção variável; (2) a estrutura pode ser considerada tridimensional, com geometria e carregamento em qualquer direção do espaço; (3) os deslocamentos podem ser considerados grandes, de forma que o equilíbrio em qualquer instante deva ser escrito na posição deslocada da estrutura, e não na posição original, como foi feito (não linearidade geométrica; (4) o material pode ser considerado não homogêneo e não isótropo, ou de comportamento elastoplástico (não linearidade material); (5) as condições de contorno geométricas nas bases podem não ser nulas; (6) pode haver um mecanismo de dissipação de energia (amortecimento) etc.
01 Cap. 01_Reyolando.indd 28
21/09/2015 12:46:14
Capítulo
2
Solução de sistemas de equações algébricas lineares
O estado de um sistema físico pode, frequentemente, ser descrito, com precisão adequada, pelo conhecimento da magnitude de um número finito n de variáveis de estado xi (i = 1, ... , n), que podem ser representadas por um vetor x. Em muitos casos, essas variáveis de estado não dependem do tempo e caracterizam fenômenos estáticos ou em regime permanente, cujo modelo matemático é um sistema de n equações algébricas da forma: f 1 ( x1 , x 2 , x n ) = 0
f 2 ( x1 , x 2 , x n ) = 0
(2.1)
f n ( x1 , x 2 , x n ) = 0
Neste livro, admite-se, sempre, que se tem o mesmo número de equações e de incógnitas. A Equação (2.1) pode ser encarada como um vetor de funções do vetor de variáveis de estado f (x) = 0. No caso particular dessas equações algébricas serem lineares, elas podem ser escritas da forma:
02 Cap. 02_Reyolando.indd 29
21/09/2015 12:46:46
30
Métodos numéricos e computacionais na prática de engenharias e ciências
a11 x1 + a12 x 2 + + a1n x n = b1 a 21 x1 + a 22 x 2 + + a 2 n x n = b2
(2.2)
a n1 x1 + a n 2 x 2 + + a nn x n = bn Ou, ainda, em notação matricial: Ax=b
(2.3)
em que letras maiúsculas em negrito representam matrizes e letras minúsculas em negrito, vetores. Por extenso: a11 a 21 A= a n1
a12 … a1n a 22 … a 2 n a n 2 … a nn
x1 x 2 x= x n
b1 b 2 b= bn
(2.4)
onde A é a matriz de coeficiente; x é o vetor de incógnitas e b o vetor de constantes. Espera-se que o leitor esteja familiarizado com a manipulação de matrizes e vetores, para que obtenha a solução formal de (2.3): x = A–1b
(2.5)
em que A–1 é a matriz inversa de A. Na prática, os métodos numéricos para solução de sistemas lineares, como os aqui apresentados, não fazem a inversão de matriz indicada na Equação (2.5) nem utilizam a regra de Cramer. Supõe-se, nesta apresentação, o caso “bem comportado” em que b não é nulo (quando se teria um sistema de equações homogêneo, que só tem solução não trivial se A tem determinante nulo e, nesse caso, infinitas soluções) e A tem determinante não nulo.
2.1
Métodos diretos
2.1.1
Método de eliminação de Gauss sem pivotamento
O mais antigo e ainda mais utilizado dos métodos numéricos para solução de sistemas de equações lineares foi elaborado pelo grande matemático alemão Carl F. Gauss (1777-1855). Suas fases são: transformar o sistema (2.3) em um sistema triangular superior por eliminação avante e resolver o sistema triangularizado por retrossubstituição. Na fase inicial, começa-se por eliminar a primeira incógnita em cada uma das equações abaixo da primeira, da segunda até a última, subtraindo de cada
02 Cap. 02_Reyolando.indd 30
21/09/2015 12:46:46
31
Solução de sistemas de equações algébricas lineares
uma delas a primeira linha multiplicada por um fator que anule a incógnita desejada. Por exemplo, para a segunda linha, tem-se: a 21 a 21 a 21 a 21 a 21 − a11 a x1 + a 22 − a12 a x 2 + + a 2 n − a1n a x n = b2 − b1 a 11
11
11
11
(2.6) e assim sucessivamente, para a terceira e demais linhas, até a última. A seguir, por procedimento análogo, elimina-se a segunda incógnita de todas as linhas abaixo da segunda linha, e assim por diante, até que na última linha tenha-se do lado esquerdo apenas a última incógnita com sua constante modificada na última etapa de elimin−1 nação, a nn , e do lado direito a n-ésima constante também modificada nessa etapa, bnn−1. Assim, o valor da última das incógnitas é obtido facilmente com a equação: xn =
bnn −1 n −1 a nn
(2.7)
A partir desse valor, as demais incógnitas são obtidas pela retrossubstituição. n
xi =
bii −1 − ∑ aii −−1j x j j = i +1 i −1 ii
a
(2.8)
Apresenta-se, a seguir, um exemplo numérico de um sistema de três equações, cuja solução é, obviamente, que todas as incógnitas têm valor unitário. 5 4 3 x1 12 4 4 2 x = 10 2 3 2 3 x 3 8 No primeiro passo, subtrai-se da segunda linha a primeira linha multiplicada por 4/5; depois subtrai-se da terceira linha a primeira linha multiplicada por 3/5, como segue: 4 3 x1 12 5 0 0, 8 −0, 4 x = 0, 4 2 0 −0, 4 1, 2 x 3 0, 8 A seguir, subtrai-se da terceira linha (modificada no passo anterior) a segunda linha (modificada) multiplicada por –0,4/0,8: 3 x1 12 5 4 0 0, 8 −0, 4 x = 0, 4 2 0 0 1, 0 x 3 1, 0
02 Cap. 02_Reyolando.indd 31
21/09/2015 12:46:47
32
Métodos numéricos e computacionais na prática de engenharias e ciências
Assim, a partir da terceira equação (modificada), a terceira incógnita é: x3 = 1,0/1,0 = 1. A segunda incógnita, a partir da segunda equação (modificada) é: x 2 = [0,4 − (−0,4)x3]/0,8 = 1. Finalmente, da primeira equação (que não foi modificada) tem-se: x1 = [12 − 4x 2 − 3x3]/5 = 1. Embora o exemplo seja de um sistema simétrico, o algoritmo de Gauss vale igualmente para sistemas não simétricos. 2.1.2
Método de eliminação de Gauss com pivotamento
Um problema óbvio que pode ocorrer no processo de eliminação é o elemento da diagonal principal da matriz de coeficientes em uma dada linha ser nulo ou tornar-se nulo (ou muito pequeno) durante a execução das operações. Esse elemento é usado no denominador das frações utilizadas na eliminação da incógnita correspondente nas linhas abaixo dela. Isso leva a uma divisão por zero (ou aproximadamente zero), que não pode ser computada. A solução dessa dificuldade passa pela troca de linhas ou de colunas, ou de ambas, quando esse problema for detectado. É um problema de manutenção de registro das operações de troca realizadas, para que depois se possa mudar a ordem das incógnitas obtidas para espelhar o problema original. Esse procedimento é denominado pivotamento, uma vez que os elementos da diagonal principal da matriz de coeficientes também podem ser chamados pivôs. 2.1.3
Método de eliminação de Gauss para determinação da matriz inversa
Uma aplicação imediata do método de eliminação de Gauss é a determinação da inversa de uma matriz. A ideia vem da propriedade: AA–1 = I
(2.9)
em que I é a matriz identidade, cujos elementos da diagonal principal são unitários e os demais elementos, nulos. Nesse método, resolve-se várias vezes, tendo de cada vez um sistema de equações composto da matriz de coeficientes que se quer inverter e diversos vetores de constantes do lado direito que são as colunas da matriz identidade. O vetor de incógnitas determinado em cada solução é a correspondente coluna da matriz inversa. Como o processo de eliminação é o mesmo em cada solução de sistema, o procedimento é econômico. Assim, resolve-se: AX = I
02 Cap. 02_Reyolando.indd 32
(2.10)
21/09/2015 12:46:47
33
Solução de sistemas de equações algébricas lineares
ou a11 a 21 a n1
a12 … a1n x11 a 22 … a 2 n x 21 a n 2 … a nn x n1
x12 x1n 1 0 0 x 2 n 0 1 0 x 22 = x n 2 x nn 0 0 1
(2.11)
onde X é a matriz inversa de A. Como exemplo, apresenta-se o procedimento para a mesma matriz já utilizada: 5 4 3 x11 4 4 2 x 21 3 2 3 x 31
x12 x 22 x 32
x13 1 0 0 x 23 = 0 1 0 x 33 0 0 1
Na primeira etapa de eliminação, quando se usa as constantes já calculadas, tem-se: 4 3 x11 5 0 0, 8 −0, 4 x 21 0 −0, 4 1, 2 x 31
x12 x 22 x 32
x13 1 0 0 x 23 = −0, 8 1 0 x 33 −0, 6 0 1
Na segunda etapa, quando se usa as constantes já calculadas, tem-se: 3 x11 5 4 0 0, 8 −0, 4 x 21 0 0 1, 0 x 31
x12 x 22 x 32
x13 1 0 0 x 23 = −0, 8 1 0 x 33 −1, 0 0, 5 1
A seguir, faz-se a retrossubstituição para cada coluna da matriz do lado direito. Por exemplo, para a terceira coluna, tem-se: x 33 = 1 / 1 = 1 x 23 = [0 − (−0, 4)x 33 ] / 0, 8 = 0, 5 x13 = [0 − 4x 23 − 3x 33 ] / 5 = −1 O resultado final é: −1, 5 −1 2 X = −1, 5 1, 5 0, 5 −1 0, 5 1
02 Cap. 02_Reyolando.indd 33
21/09/2015 12:46:48
34
Métodos numéricos e computacionais na prática de engenharias e ciências
2.1.4
Método de eliminação de Gauss para cálculo do determinante
A determinação numérica do determinante de uma matriz pela eliminação de Gauss é imediata e trivial. Como o processo de eliminação transforma a matriz em uma matriz triangular superior, o determinante é o produtório dos elementos da diagonal principal dessa matriz. No exemplo numérico já desenvolvido, esse valor é: det A = 5 × 0, 8 × 1, 0 = 4 . 2.1.5
Método de Cholesky para sistemas simétricos positivos definidos
O caso particular da solução de sistemas de equações algébricas lineares simétricas, positivas definidas, extremamente comuns nas aplicações (por exemplo, no método dos elementos finitos), permite a utilização de algoritmos que aproveitam essa simetria para diminuição do número de operações aritméticas envolvidas. O mais utilizado desses métodos é a decomposição de Cholesky, elaborado pelo engenheiro militar francês André-Louis Cholesky (1875-1918), formado na Ecole Polytechnic. Esse método é utilizado para solução dos sistemas de equações simétricas positivas definidas, tais como a aplicação do método dos mínimos quadrados, a distribuição de erros em triangulações geodésicas etc. O algoritmo baseia-se no fato de que uma matriz simétrica pode ser decomposta desta forma: A = UTU
(2.12)
Isto é, as matrizes triangulares resultantes são uma transposta da outra. A fatoração pode ser eficientemente gerada pelas fórmulas de recorrência que se seguem. Estes são os coeficientes da diagonal principal para uma dada linha i: i −1
uii = aii − ∑ uki2
(2.13)
k =1
E os coeficientes fora da diagonal para uma dada linha i são: i −1
uij =
aij − ∑ uki ukj k =1
uii
para
j = i + 1, , n
(2.14)
Usualmente, para economia de memória, os coeficientes da matriz triangular gerada são armazenados nas mesmas posições dos coeficientes da matriz original. Nota-se que a Equação (2.13) envolve uma raiz quadrada e, portanto, o
02 Cap. 02_Reyolando.indd 34
21/09/2015 12:46:48
35
Solução de sistemas de equações algébricas lineares
radicando não pode ser negativo. Essa condição é satisfeita pelo fato de a matriz original ser positiva definida. Após a fatoração, a solução do sistema para um vetor de constantes b é obtida em dois passos. Primeiro, um vetor intermediário d é criado resolvendo, por uma substituição avante muito rápida, o sistema triangular: UTd = b
(2.15)
A seguir, a solução final é obtida por retrossubstituição, também muito rápida, no sistema triangular: Ux = d
(2.16)
Como exemplo, é usado o mesmo sistema simétrico já resolvido anteriormente: 5 4 3 x1 12 4 4 2 x = 10 2 3 2 3 x 3 8 Utilizando as Equações (2.13) e (2.14), obtém-se a matriz triangular superior: 2, 2361 1, 7889 1, 3416 0, 8944 −0, 4472 U = 0 0 0 1 Aplicando a Equação (2.15), tem-se: 5, 3666 d = 0, 4472 1 E usando a Equação (2.16), chega-se ao resultado esperado: 1 x = 1 1 2.1.6
Caso particular de sistemas tridiagonais simétricos
A matriz de coeficientes em um sistema tridiagonal simétrico de n equações algébricas lineares possui apenas a diagonal principal, cujos elementos di (i = 1, ... , n) podem ser reunidos em um vetor d, e duas diagonais secundárias adjacentes com elementos ei (i = 2,... ,n), que podem ser reunidos em um vetor e. Por exemplo, para n = 4, tem-se:
02 Cap. 02_Reyolando.indd 35
21/09/2015 12:46:48
36
Métodos numéricos e computacionais na prática de engenharias e ciências
d1 e 2 0 0
e2 d2 e3 0
0 e3 d3 e4
0 x1 b1 0 x 2 b2 = e 4 x 3 b3 d 4 x 4 b4
(2.17)
Assim, não é necessário guardar na memória grande quantidade de zeros, se n é grande. Sistemas desse tipo ocorrem em problemas físicos compostos de subsistemas ligados em série, nos quais cada subsistema é influenciado apenas pelo subsistema anterior e pelo posterior. Por exemplo, vigas contínuas, apresentadas no final deste capítulo, em que cada tramo só é influenciado pelo anterior e pelo posterior. No processo de triangularização da matriz de coeficientes por Gauss, a eliminação de uma dada incógnita só deve ser feita na linha seguinte àquela em que essa incógnita está na diagonal principal, já que abaixo dessa linha os coeficientes da coluna são nulos, não necessitando de nenhuma operação adicional. Essa constatação permite grande velocidade de computação. Para uma dada linha k (k = 2, ... ,n), tem-se as fórmulas de recorrência: const = e k / d k −1
d k = d k − const × e k
bk = bk − const × bk −1
(2.18)
O processo de obtenção do valor das incógnitas por retrossubstituição também é extremamente simples, segundo as fórmulas: x n = bn / d n
e
x k = (bk − e k × x k −1 ) / d k
k = n − 1, 1
(2.19)
2.2 Métodos iterativos 2.2.1 Método de Gauss-Jacobi
(iteração por passos totais)
No método de Gauss-Jacobi, apresentado por C. G. J. Jacobi em 1844, dada uma aproximação inicial x(0) para a solução do sistema, um vetor arbitrário n × 1, deseja-se obter a solução real por meio de uma relação recursiva com um número de iterações não definido a priori, como visto nos métodos diretos. Por exemplo, para o sistema linear: a11 x1 + a12 x 2 + … + a1n x n = b1 a 21 x1 + a 22 x 2 + … + a 2 n x n = b2 a n1 x1 + a n 2 x 2 + … + a nn x n = bn
02 Cap. 02_Reyolando.indd 36
21/09/2015 12:46:49
37
Solução de sistemas de equações algébricas lineares
A ideia básica é resolver, em cada passo k, cada uma das linhas i desse sistema para a correspondente variável xi. Para isso, usam-se os valores das demais variá veis obtidos no passo anterior. Constrói-se, assim, uma série de vetores x(k) segundo a regra: x i(k +1) =
i −1 n 1 (k ) (k ) bi − ∑ aij x j − ∑ aij x j aii j =1 j = i +1
i = 1, , n
(2.20)
Para que esse método tenha convergência assegurada, por teorema de que não se fornece a prova, deve ser respeitado o critério das linhas, ou seja, tomando-se todos os elementos de cada linha, somados linha a linha, exceto o elemento da linha que fizer parte da diagonal, e dividindo-se o resultado pelo elemento da diagonal, deve-se obter um resultado menor que 1. Caso essa regra não seja satisfeita, é preciso permutar uma linha ou coluna, de modo que o critério das linhas seja satisfeito. Muitas vezes encontram-se sistemas lineares que mesmo tendo linhas e colunas permutadas não atendem ao critério das linhas. Assim, necessita-se grande número de iterações até que se obtenha um resultado satisfatório, o que não é garantido, no caso geral. 2.2.2 Método de Gauss-Seidel
(iteração por passos simples)
Este método foi utilizado pelo próprio C. F. Gauss em seus cálculos; foi obtido independentemente por L. Seidel, em 1874. É uma variante do método de Gauss-Jacobi, em que dada uma aproximação inicial x(0) para a solução do sistema, um vetor arbitrário n × 1, deseja-se obter a solução real por meio de uma relação recursiva com um número de iterações não definido a priori, como visto nos métodos diretos. A diferença é que na solução da variável de cada linha são usadas as aproximações já obtidas nesse passo para as variáveis das linhas superiores e os valores das variáveis abaixo da linha obtidos no passo anterior. Para o sistema linear: a11 x1 + a12 x 2 + … + a1n x n = b1 a 21 x1 + a 22 x 2 + … + a 2 n x n = b2 a n1 x1 + a n 2 x 2 + … + a nn x n = bn Constrói-se uma série de vetores x(k) segundo a regra: x i(k +1) =
02 Cap. 02_Reyolando.indd 37
i −1 n 1 (k +1) b − a x − aij x (jk) i ∑ ij j ∑ aii j =1 j = i +1
i = 1, , n
(2.21)
21/09/2015 12:46:49
38
Métodos numéricos e computacionais na prática de engenharias e ciências
Note-se, como já dito, que na Equação (2.21), na solução da variável de cada linha i, são usadas as aproximações já obtidas nesse mesmo passo k + 1 para as variáveis das linhas superiores a i, isto é, de 1 a i – 1, e os valores das variáveis abaixo dessa linha, de i + 1 a n, obtidos no passo anterior k. Para que esse método tenha convergência assegurada, por teorema de que não se fornece a prova, deve ser respeitado o critério das linhas, ou seja, tomando-se todos os elementos de cada linha, somados linha a linha, exceto o elemento da linha que fizer parte da diagonal, e dividindo-se o resultado pelo elemento da diagonal, deve-se obter um resultado menor que 1. Além disso, pode-se também provar que, se o sistema é simétrico e positivo definido, o método de Gauss-Seidel sempre converge. 2.2.3 Exemplo numérico de aplicação dos métodos
iterativos
Para o sistema: 2 1 0 x1 1 1 4 1 x = 0 2 0 1 3 x 3 0 a solução, em oito iterações, pelo método de Gauss-Jacobi é: 0 0.5000
0.5000
0.5625
0.5625
0.5755
0.5755
0.5782
0.5782
0
0 –0.1250 –0.1250 –0.1510 –0.1510 –0.1565 –0.1565 –0.1576
0
0
0
0.0417
0.0417
0.0503
0.0503
0.0522
0.0522
A solução, em seis iterações, pelo método de Gauss-Seidel é: 0
0.5000
0.5625
0.5755
0.5782
0.5788
0.5789
0
–0.1250
–0.1510
–0.1565
–0.1576
–0.1578 –0.1579
0
0.0417
0.0503
0.0522
0.0525
0.0526
0.0526
Nota-se a melhor velocidade de convergência do Gauss-Seidel.
2.3 Aplicações em engenharias e ciências 2.3.1 Solução de treliças planas pelo método
do equilíbrio dos nós
Treliças são estruturas formadas por barras articuladas nos seus pontos de união; os nós são onde as cargas são aplicadas. Nessas condições, as barras só são solicitadas por forças na direção dos seus eixos. Assim, a direção dessas forças é conhecida bastando determinar suas intensidades e sentidos.
02 Cap. 02_Reyolando.indd 38
21/09/2015 12:46:49
39
Solução de sistemas de equações algébricas lineares
Em uma estrutura plana, é possível escrever duas equações de equilíbrio em cada nó, em duas direções ortogonais. As forças que atuam em um nó (cargas externas aplicadas, forças axiais que as barras aplicam sobre os nós e reações nos nós de apoio) podem ser decompostas na horizontal e na vertical, por exemplo, e suas somas devem anular-se para equilíbrio estático. Assim, se existem N nós, 2N equações podem ser escritas para solução das incógnitas, que são as forças nas B barras e as reações de apoio. O número R de reações depende dos tipos de apoio. Se um apoio for articulado fixo, são 2 reações ortogonais. Se for articulado móvel, há apenas 1 reação, perpendicular ao plano de apoio. A condição para que a solução seja possível é 2N = B + R, um sistema de n = 2N equações algébricas lineares, que não são necessariamente simétricas nem se garante que os elementos da diagonal principal sejam não nulos. Assim, o algoritmo de solução mais adequado é o de Gauss com pivotamento. Um exemplo numérico de uma treliça plana de 3 barras e 3 reações de apoio é apresentado na Figura 2.1. Um artifício que pode ser empregado é substituir as reações de apoio por barras fictícias em suas direções. Assim, são calculadas 6 forças axiais desconhecidas.
v 1000 N A
3
B
C
o
4
30
H
60 o
1
2
5
6
Figura 2.1
O sistema correspondente a Ax = b é dado por: A= 3 /2
0
–1/2
0
0
0
1/2
0
3 /2
0
0
0
– 3 /2 –1/2 0
–1 0 1
0 0 1/2
1 0 0
0 1 0
0 0 0
0
0
– 3 /2
0
0
1
02 Cap. 02_Reyolando.indd 39
21/09/2015 12:46:49
40
Métodos numéricos e computacionais na prática de engenharias e ciências
bT = 0
–1000
0
0
0
0
A solução, as forças nas barras, em N, positivas se de tração, é: xT = –500
433
–866
0
–250
–750
2.3.2 Vigas contínuas pelo método dos três momentos Uma viga contínua é uma barra, geralmente horizontal, carregada transversalmente ao seu eixo e apoiada em vários apoios que dividem seu comprimento em “tramos”. No processo dos esforços, as incógnitas básicas geralmente utilizadas são os momentos fletores nas seções sobre os apoios intermediários, já que esses momentos nas extremidades da viga são conhecidos. Eles são nulos se o apoio extremo for articulado e têm um valor não incógnito se for um tramo em balanço. No caso particular de a extremidade ser engastada, usa-se o artifício de acrescentar um tramo adicional de grande rigidez para simular essa fixação. No método dos esforços escreve-se uma equação de compatibilidade de deslocamentos (rotações) para cada apoio intermediário, que leva em conta o momento na seção desse apoio e os momentos nas seções dos apoios anterior e posterior. Assim, em cada equação aparece a influência de apenas esses três momentos. Em uma viga de n apoios, para cada apoio intermediário i, do segundo apoio (2) até o penúltimo (n – 1), escreve-se uma equação de três momentos na forma: X i −1
Li −1 L Li Li ) + X i +1 + X i ( i −1 + = −q i −1 − q i 6EI i −1 3EI i −1 3EI i 6EI i
onde Xk são os momentos fletores em cada um dos 3 apoios envolvidos, Lk é o comprimento e Ik são os momentos de inércia das seções dos 2 tramos conectados nesse apoio. Supõe-se, como usual, que o módulo de elasticidade do material E é constante, embora também pudesse variar de tramo para tramo. Do lado direito da equação estão os ângulos das tangentes à linha elástica nas extremidades dos tramos conectados supostos simplesmente apoiados nas duas extremidades; à direita e à esquerda desse apoio. Esses valores são dependentes dos carregamentos nesses tramos, além do vão e do momento de inércia das seções desses tramos. Os valores são tabelados em livros de teoria das estruturas. Esse esquema leva a um sistema tridiagonal simétrico, cuja solução já foi tratada. Um exemplo numérico de uma viga de 3 tramos, com balanço na extremidade direita e engastada na esquerda, seção transversal e material constantes, é apresentado na Figura 2.2. O carregamento é uma carga uniformemente distribuída,
02 Cap. 02_Reyolando.indd 40
21/09/2015 12:46:50
41
Solução de sistemas de equações algébricas lineares
p = 1 kN/m, de cima para baixo (o peso próprio, por exemplo). O ângulo da tangente à linha elástica nos apoios de uma viga biapoiada com esse tipo de carregamento é: q=
pL3 24EI
p = 1kN/m vão fictício 1 0,01m
2 3m
3 4m
4 5m
1m
Figura 2.2
O sistema tridiagonal simétrico correspondente é: 0 X 2 1, 125 1 1/ 2 1 / 2 7 / 3 2 / 3 X = 3, 7917 rad 3 0 2/3 3 X 4 7, 4 Deve-se lembrar que o momento fletor no apoio fictício 0 é nulo e o do apoio da extremidade direita, em razão do balanço, é conhecido e vale 0,5 kNm. É preciso tentar montar esse sistema manualmente. A solução mostra os momentos fletores desconhecidos nas seções sobre os apoios intermediários, que valem: X 2 0, 7189 X 3 = 0, 8122 kNm X 2, 3056 4 onde os momentos são adotados positivos se tracionam as fibras da face superior da viga. 2.3.3 Circuito elétrico de uma ponte de Wheatstone
(leis de Kirchhoff)
Uma ponte de Wheatstone é um circuito elétrico utilizado para medição de resistências de valor desconhecido a partir do conhecimento do valor de outras resistências de referência. Um galvanômetro é utilizado para “equilibrar” a ponte, isto é, fazer esse instrumento indicar corrente nula.
02 Cap. 02_Reyolando.indd 41
21/09/2015 12:46:50
42
Métodos numéricos e computacionais na prática de engenharias e ciências
No exemplo da Figura 2.3, em vez disso, supõe-se que todas as resistências são conhecidas, inclusive a resistência interna do galvanômetro (60Ω), e que a voltagem é fornecida pelo gerador de corrente contínua E. Pede-se para calcular a corrente indicada pelo aparelho.
50Ω
I2
30Ω 60Ω
E = 50v
galvanômetro
I1 20Ω
40Ω I3
Figura 2.3
Utiliza-se a lei das malhas (ou das voltagens) de Kirchhoff, aplicada às três malhas do circuito: Malha 1: 50 = 50(I1 − I2) + 20(I1 − I3) Malha 2: 0 = 50(I2 − I1) + 60(I2 − I3) + 30I2 Malha 3: 0 = 20(I3 − I1) + 60(I3 − I2) + 40I2 Reorganizando essas três equações em forma matricial, tem-se: 70 −50 −20 I1 50 −50 140 −60 I = 0 V 2 −20 −60 120 I 3 0 Obtém-se um sistema simétrico definido positivo que pode ser resolvido, por exemplo, por Cholesky, resultando em: I1 1, 4732 I 2 = 0, 8036 A I 0, 6473 3 A corrente indicada pelo galvanômetro é: I2 − I3 = 0,1563A. 2.3.4 Condução de calor em meio a vários materiais O isolamento térmico de uma residência depende das características da divisória externa, constituída de duas paredes de materiais homogêneos em contato íntimo, revestidas nas duas faces. Em regime permanente, as temperaturas nas faces esquerda
02 Cap. 02_Reyolando.indd 42
21/09/2015 12:46:50
43
Solução de sistemas de equações algébricas lineares
e direita da divisória são, respectivamente, T1 e T3. A temperatura na interface entre os materiais é T2. São dadas as temperaturas ambientes T0, no interior da construção, e T4 no exterior. A condutância por unidade de área para as paredes individuais e os coeficientes de superfície estão indicados na Figura 2.4. A lei de condução de calor é q / A = K ∆T , onde q é o fluxo total de calor, A é a área, ∆T diz respeito à queda de temperatura na direção do fluxo de calor e K representa a condutância ou o coeficiente de superfície.
T0
T1
k
T2 2k
T3
3k
T4
k
Figura 2.4
Apresentam-se, a seguir, as equações governantes do problema, em regime permanente: 3 −2 0 T1 T0 −2 5 −3 T = 0 2 0 −3 4 T3 T4 Nota-se que esse sistema de equações não depende dos valores de A nem de k. É preciso verificar essas equações e adotar valores para as temperaturas interna e externa da residência para a solução numérica.
02 Cap. 02_Reyolando.indd 43
21/09/2015 12:46:51
02 Cap. 02_Reyolando.indd 44
21/09/2015 12:46:51
Capítulo
3
Solução de sistemas de equações algébricas não lineares
Conforme visto no capítulo anterior, o estado de um sistema físico de parâmetros concentrados pode ser descrito pelo conhecimento do valor de um número finito n de variáveis de estado xi (i = 1, ... n), que podem ser representadas por um vetor x. No caso examinado anteriormente, que também é abordado neste capítulo, essas variáveis de estado não dependem do tempo, e o modelo matemático é um sistema de n equações algébricas da forma: f 1 ( x1 , x 2 , x n ) = 0
f 2 ( x1 , x 2 , x n ) = 0
(3.1)
f n ( x1 , x 2 , x n ) = 0
Admite-se, aqui, que o número de equações é o mesmo que de incógnitas. Diferentemente da Equação (2.1), a Equação (3.1) representa um vetor de funções não lineares do vetor de variáveis de estado. f (x) = 0
03 Cap. 03_Reyolando.indd 45
(3.2)
21/09/2015 12:47:15
46
Métodos numéricos e computacionais na prática de engenharias e ciências
3.1
Séries de Taylor
As ferramentas básicas deste capítulo são as séries de Taylor, elaboradas pelo matemático britânico Brook Taylor (1685-1731). No caso de uma única função (escalar) de uma única variável, f(x), conhecido seu valor e de suas derivadas em um certo ponto a, pode-se aproximar o valor da função em outro ponto próximo x, definida a “distância” h = x – a, pela expansão em série: f (x) =
1 0 1 1 1 h f (a) + h 1 f ′(a) + h 2 f ′′(a) + h 3 f ′′′(a) + 0! 1! 2! 3!
(3.3)
onde as linhas à direita e acima denotam derivadas sucessivas em x, calculadas no ponto a. Já no caso de uma única função (escalar) de várias variáveis (um vetor de n variáveis), f(x), conhecido seu valor em um ponto a (n × 1), pode-se aproximar o valor da função em um outro ponto próximo x (n × 1), tendo-se o “vetor distância” h = x – a (n × 1), pela expansão em série: f (x) = f (a) + c(a) T h +
1 T h H(a)h + 2!
(3.4)
onde se define a transposta do vetor gradiente de f (1 × n): c(x)T = ∇f (x)T = [∂f / ∂x1
∂f / ∂x 2 ∂f / ∂x n ]
T
(3.5)
em que se utiliza o símbolo ∇ (nabla) para denotar o operador diferencial, como segue: ∂ / ∂x 1 ∂ / ∂x ∇= ∂ / ∂x n
(3.6)
e a matriz Hessiana (n × n), simétrica: ∂2f 2 ∂x 1 ∂2f H ( x ) = ∇ 2 f ( x ) = ∂x 2 ∂x 1 ∂2f ∂x n ∂x 1
03 Cap. 03_Reyolando.indd 46
∂2f ∂x 1 ∂x 2 ∂2f ∂x 22 ∂2f ∂x n ∂x 2
∂2f ∂x1 ∂x n ∂2f ∂x 2 ∂x n ∂2f ∂x n2
(3.7)
21/09/2015 12:47:15
47
Solução de sistemas de equações algébricas não lineares
Finalmente, no caso de um vetor de n funções de várias variáveis (um vetor de n variáveis), f(x), (n × 1), conhecido seu valor em um ponto a (n × 1), pode-se aproximar o valor dessas funções em outro ponto próximo x (n × 1), dado o “vetor distância” h = x – a (n × 1), pela expansão em série: f (x) = f (a) + J(a) h +
(3.8)
onde se define a matriz jacobiana (n × n, neste caso): ∂f 1 ∂x 1 ∂f 2 J = ∂x1 ∂f n ∂x1
∂f 1 ∂x 2 ∂f 2 ∂x 2 ∂f n ∂x 2
∂f 1 ∂x n ∂f 2 ∂x n ∂f n ∂x n
(3.9)
No caso geral, a jacobiana não é necessariamente quadrada, como neste caso de um número igual de funções e de variáveis. Por exemplo, se houver m funções de n variáveis, a matriz jacobiana seria m × n. Em particular, é de interesse o caso da transposta do vetor gradiente c(x) = ∇f ( x ) de uma função f(x), dada pela Equação (3.5), que pode ser interpretada como uma matriz jacobiana de uma única linha. Quando se faz uma expansão em torno da origem, isto é, a = 0, a série de Taylor passa a ser denominada série de MacLaurin, em homenagem ao escocês Colin MacLaurin (1698-1746).
3.2 Método de Newton-Raphson O mais antigo, mais utilizado e possivelmente o melhor método de solução de equações algébricas não lineares é o método de Newton-Raphson. Ele é atribuído a Isaac Newton (1643-1727), o maior dos matemáticos ingleses, e a seu desconhecido compatriota Joseph Raphson (?-1715). O problema que se coloca nas aplicações diz respeito a: dado certo valor f de uma função f(x), qual o correspondente argumento x, partindo-se do conhecimento do valor f(a) em a? Claro que, se fosse possível tabelar os valores da função para todos os possíveis valores do argumento, bastaria consultar essa tabela para responder à questão. Esse procedimento de “força bruta” é inviável nos casos um pouco mais complexos. O método de Newton-Raphson propõe “saltar” diretamente para a resposta em um único passo ou em um número pequeno de incrementos do valor da função até seu valor final f. A base para esse desideratum é utilizar uma série de
03 Cap. 03_Reyolando.indd 47
21/09/2015 12:47:16
48
Métodos numéricos e computacionais na prática de engenharias e ciências
Taylor truncada até uma aproximação de primeira ordem. Para fixar as ideias, a Equação (3.3) para uma função escalar de uma variável, truncada até primeira ordem, deve ser usada a seguir, sendo que f é o valor estipulado para a função, x é o correspondente argumento (desconhecido) e a refere-se ao argumento em que se conhece o valor da função, f(a). f = f (x) = f (a) + hf ′(a)
(3.10)
Como o argumento buscado x é desconhecido, a distância h = x − a também é. Assim, adota-se um processo iterativo no qual chega-se mais perto da resposta correta em cada passo. Na primeira iteração, a primeira estimativa do argumento buscado, x1, é dada pela sequência de operações a seguir: ao = a,
∆f 0 = f − f (a0 ),
h0 = ∆f 0 / f ′(a0 ),
x1 = h0 + a0 ,
(3.11) a1 = x1
(3.12)
Em um passo genérico i, o algoritmo é idêntico: ∆f i = f − f (ai ) hi = ∆f i / f ′(ai ),
(3.13) x i +1 = hi + ai ,
a i +1 = x i +1
(3.14)
Para um número razoável k de iterações, a “distância” hk, denominada resíduo, tende a ser muito pequena, dentro de certas condições matemáticas que não são aqui discutidas. Assim, o processo é interrompido quando hk < e, sendo e um número pequeno a ser definido pelo analista. A Figura 3.1 ilustra graficamente o processo para esse caso unidimensional. É possível notar que se devem ter obrigatoriamente disponíveis as expressões algébricas que permitem calcular a função f(x) e sua derivada primeira f′(x) para qualquer valor de x, o que pode não ser trivial para uma função complexa. Métodos alternativos, menos eficientes, podem ser propostos para aproximar esses valores quando forem de difícil obtenção. Para o caso de n dimensões, em vez da derivada primeira da função, indicada na primeira das expressões da Equação (3.14), é necessário calcular a matriz jacobiana, n × n, a cada passo, o que pode ser custoso computacionalmente. Também a divisão indicada passa a ser a solução de um sistema linear de equações, como visto no Capítulo 2. Para um passo genérico i, o algoritmo é: ∆fi = f − f (a i ), h i = J(a i ) −1 ∆fi ,
03 Cap. 03_Reyolando.indd 48
(3.15) x i +1 = h i + a i ,
a i +1 = x i +1
(3.16)
21/09/2015 12:47:17
49
Solução de sistemas de equações algébricas não lineares f(x) f
f’(x2) f’(x1)
f(x3)
f(x2)
f’(a)
f(x1)
(a, f(a))
x2
x1
x3
x x
h0 h1 h2
Figura 3.1
Claro que no caso de várias dimensões não é possível fazer uma representação gráfica do processo como na Figura 3.1. O critério de parada deve ser em função de uma norma do vetor resíduo h k < e . Uma possível norma é a norma euclidiana, h = h12 + h22 + + hn2 , sendo n a dimensão do vetor. Com variações de parâmetros, diversos outros problemas podem ser resolvidos. Por exemplo, para se determinar uma raiz da função f(x) a partir de uma estimativa inicial a, basta fazer f = 0 nas Equações (3.15) e (3.16): ∆fi = −f (a i ), h i = − J(a i ) −1f (a i ),
(3.17) x i +1 = h i + a i ,
a i +1 = x i +1
(3.18)
Como a função pode ter várias raízes, são necessárias várias aplicações do método, estimando, de cada vez, um valor inicial diferente.
3.3 Outros métodos 3.3.1
Método de Newton modificado (ou quase Newton)
Um peso computacional (significativo) do método de Newton está no fato de que, a cada iteração, uma matriz jacobiana precisa ser calculada, sendo necessário
03 Cap. 03_Reyolando.indd 49
21/09/2015 12:47:17
50
Métodos numéricos e computacionais na prática de engenharias e ciências
resolver um sistema linear envolvendo essa nova matriz. Uma modificação do método de Newton, bastante usada nas aplicações, consiste em tomar-se a cada iteração i a matriz J(a0), em vez de J(ai), a partir de uma aproximação inicial a0. Assim, o algoritmo das Equações (3.15) e (3.16) torna-se: ∆fi = f − f (a i ), h i = J(a 0 ) −1 ∆fi ,
(3.19) x i +1 = h i + a i ,
a i +1 = x i +1
(3.20)
Dessa forma, a matriz jacobiana é avaliada apenas uma vez. Para todo i, o sistema linear a ser resolvido a cada iteração tem a mesma matriz de coeficientes J(a0), que pode ser triangularizada pela eliminação de Gauss simples, por exemplo, ou invertida no primeiro passo do processo; também se tem apenas uma simples retrossubstituição em cada passo subsequente, com grande economia computacional. É claro que o número de iterações pode crescer significativamente e o processo pode não convergir. 3.3.2 Método de Broyden O método de Newton, descrito anteriormente, pode ser excessivamente pesado computacionalmente, pois exige que o usuário providencie não apenas as funções definições, como também as definições das n2 derivadas parciais das funções. Então, para um sistema de dez incógnitas, o usuário deve providenciar 110 funções definições. Já os métodos quase Newton evitam o cálculo das derivadas parciais em cada passo. Por meio da utilização dos métodos quase Newton obtêm-se sucessivas aproximações satisfatórias à matriz jacobiana a cada nova iteração. Broyden e outros têm mostrado que, sob certas circunstâncias, essas fórmulas fornecem aproximações satisfatórias à inversa da jacobiana. A aproximação inicial para a inversa da jacobiana é usualmente tomada como um escalar múltiplo de uma matriz. O sucesso do algoritmo depende da natureza das funções a serem resolvidas e das aproximações iniciais da solução informadas. 3.3.3 Método steepest descent A vantagem dos métodos Newton e quase Newton para solucionar sistemas de equações não lineares é sua velocidade de convergência, uma vez que uma acurada aproximação inicial seja fornecida. A fragilidade desses métodos é que uma acurada aproximação inicial é necessária para garantir sua convergência. O método steepest descent converge linearmente para a solução, e vai sempre convergir mesmo para uma aproximação inicial não muito acurada. Como consequência, esse método é usado para achar aproximações iniciais suficientemente acuradas para as técnicas baseadas em Newton. Ele determina um mínimo
03 Cap. 03_Reyolando.indd 50
21/09/2015 12:47:17
51
Solução de sistemas de equações algébricas não lineares
local para uma função multivariável da forma: g : ℜ n → ℜ . Existe uma conexão entre a minimização da função de ℜn para ℜ e a solução de um sistema de equações não lineares. 3.3.4 Método dos gradientes conjugados O método dos gradientes conjugados é poderoso para solucionar sistemas de equações e mantém-se bem próximo do algoritmo descrito como “zeros reais de funções reais” para solução de problemas de otimização não linear. Aqui, entretanto, a pesquisa é simplificada e o valor do gradiente pode ser calculado dentro do algoritmo. Pode-se, então, considerar outra aplicação desse algoritmo para a solução de sistemas de equações que têm forma especial. Aplica-se o algoritmo para otimizar uma função quadrática positiva que possui a forma padrão: f (x) = (x T )Ax) / 2 = p T x + q
(3.21)
onde x e p são vetores colunas; A é uma matriz positiva simétrica n × n e q é um escalar. O valor mínimo de f(x) é tal que o gradiente de f(x) é zero. Entretanto, o gradiente é facilmente encontrado pela diferenciação direta, como segue: ∇f (x) = Ax + p = 0
(3.22)
Encontrar o valor mínimo equivale a solucionar o sistema de equações que se inicia com: Ax = b
(3.23)
Desde que se possa usar o método dos gradientes conjugados para achar o mínimo de (3.21), pode-se usá-lo para solucionar o sistema de equações (3.23).
3.4 Aplicações em engenharias e ciências 3.4.1 Treliça simétrica de duas barras, grandes deslocamentos Observa-se a treliça plana simétrica da Figura 3.2, de duas barras iguais de comprimento inicial L, inicialmente colineares, com apoios articulados fixos nas extremidades da esquerda e da direita. No nó central livre, onde as barras articulam-se, é aplicada uma carga vertical P. Sob esse efeito, esse nó sofre um deslo camento vertical v. O ângulo de inclinação das barras na posição deslocada, em qualquer instante, é q. É preciso determinar o deslocamento v correspondente a um determinado valor de carga P, dado, admitindo que o material permanece em regime elástico linear.
03 Cap. 03_Reyolando.indd 51
21/09/2015 12:47:18
52
Métodos numéricos e computacionais na prática de engenharias e ciências
P
L’
L’
V
q
L
L
Figura 3.2
O equilíbrio do nó central é dado por: P = 2 N sen q
(3.24)
em que N é força normal (axial) em cada barra, dada por: N=
EA (L′ − L) L
(3.25)
sendo E o módulo de elasticidade do material; A a área da seção transversal da barra; e L′ = L2 + v 2 o comprimento deformado atual da barra. Além disso, sen q = v/L′. É interessante notar que na origem o equilíbrio é impossível e apenas verificado em uma posição deformada. Isso é típico de estruturas de comportamento geometricamente não linear, em que o equilíbrio não pode ser escrito na posição inicial, como é costume ser feito em Resistência dos Materiais elementar. Em uma aplicação prática, as barras devem ser pré-tracionadas por uma força normal N 0, de forma que: N=
EA (L′ − L) + N 0 L
(3.26)
Neste problema, com pré-tensão, a função f(x) é: EA P(v) = 2 L
( L + v − L) + N L v+ v , 2
2
0
2
2
(3.27)
A derivada primeira da função em v é: P ′(v) =
03 Cap. 03_Reyolando.indd 52
2EA 2L2 (EA − N 0 ) − . L ( L2 + v 2 )3
(3.28)
21/09/2015 12:47:19
53
Solução de sistemas de equações algébricas não lineares
Com estas duas últimas expressões conhecidas agora é possível aplicar o método de Newton-Raphson ao problema. Adotando os valores numéricos L = 100 cm, A = 1 cm 2 , E = 21000000 N/cm 2 (aço), carregando com P = 100000 N e tendo força de pré-tensão N0 = 50000 N, partindo de v = 0, chega-se a v = 15,99 cm e q = 9,080, em 9 iterações. 3.4.2 O problema geral elastoestático não linear Uma metodologia geral para solução do problema elastoestático linear ou não linear, em geral, parte do conhecimento da função energia potencial total, como segue: V (x) = U − W
(3.29)
A diferença se dá entre a energia (interna) de deformação, U, e o trabalho das forças externas conservativas, W. Um teorema clássico da teoria das estruturas diz que o equilíbrio é dado pelo gradiente de V nulo, ou seja, o equilíbrio é um ponto estacionário da energia potencial total, um mínimo, se equilíbrio estável, e um máximo, se equilíbrio instável, como mostrado a seguir: ∇V (x) = 0 = [∂V / ∂x1
∂V / ∂x 2 ∂V / ∂x n ]
T
(3.30)
Trata-se de um sistema de n equações algébricas não lineares, no caso geral. Ao se aplicar o método de Newton-Raphson para solução desse sistema, Equações (3.15) e (3.16), nota-se que a matriz jacobiana necessária ao processo é a matriz hessiana de V, que na linguagem usual da análise não linear de estruturas é conhecida como matriz tangente: ∂ 2V 2 ∂x1 ∂ 2V K T = ∇ 2V ( x ) = ∂x 2 ∂x1 ∂ 2V ∂x n ∂x1
∂ 2V ∂x1 ∂x 2 ∂ 2V ∂x 22 ∂ 2V ∂x n ∂x 2
∂ 2V ∂ x1 ∂ x n ∂ 2V ∂x 2 ∂x n ∂ 2V ∂x n2
(3.31)
3.4.3 Reação química não linear Ao admitir-se que as seguintes reações químicas ocorrem em um sistema fechado, tem-se: 2A + B ⇔ C A+D⇔C
03 Cap. 03_Reyolando.indd 53
(3.32)
21/09/2015 12:47:20
54
Métodos numéricos e computacionais na prática de engenharias e ciências
No equilíbrio, elas podem ser caracterizadas por: K1 =
cc c a2 c b
(3.33)
c K2 = c c acd
em que ca, cb, cc e cd são as concentrações dos constituintes A, B, C e D. Se x1 e x2 são o número de moles de C produzidos pela primeira e pela segunda reação, respectivamente, pode-se formular o equilíbrio químico como um par de equações não lineares. Fazendo a estequiometria das duas reações, as concentrações de cada constituinte podem ser representadas em termos de x1 e x2 , como: c a = c a 0 − 2 x1 − x 2 c b = c b 0 − 2 x1 c c = c c 0 + x1 + x 2 cd = cd0 − x2 onde as concentrações com subscrito 0 são as iniciais de cada constituinte, e são os dados iniciais do problema. K1 e K 2 também são parâmetros conhecidos do problema, permitindo formular um sistema de duas equações não lineares a serem resolvidas pelo método de Newton-Raphson, por exemplo. Sugere-se adotar valores numéricos para os parâmetros. 3.4.4 Rede de distribuição de água Considere-se o problema de determinar o fluxo em regime permanente de um fluido incompressível em uma rede de tubos, cuja planta é mostrada na Figura 3.3.
C R = 3b B R = 2b Q
D R = 2b
A
F
Q
E R = 5b
Figura 3.3
03 Cap. 03_Reyolando.indd 54
21/09/2015 12:47:20
55
Solução de sistemas de equações algébricas não lineares
A vazão total que entra no ponto inicial A da rede e sai pelo ponto final F vale Q. Admite-se que a queda de pressão em certo trecho da rede é proporcional ao quadrado da vazão naquele trecho, segundo a lei de perda de carga: ∆p = R q 2
(3.34)
em que q é a vazão através do trecho e R refere-se a um coeficiente de resistência, que é dado na Figura 3.3 para cada trecho da rede em estudo. O problema de equilíbrio consiste em determinar a distribuição de pressões e vazões. Para definir o problema, Q é uma vazão dada e a pressão na saída pF é nula. Em cada junção de tubos, a soma das vazões que entram no nó deve ser igual à soma das vazões que saem dessa junção. O problema pode ser formulado em função das pressões nas junções ou das vazões nos trechos. Assim, a vazão em cada trecho é: q AB =
p A − pB 2b
qBCF =
pB − pF 3b
qBDF =
pB − pF 2b
q AEF =
p A − pF 5b (3.35)
O requisito de continuidade de vazões nas junções A e B fornece as seguintes duas equações: Q=
p A − pB + 2b
0=
p A − pB pB pB − − 2b 3b 2b
pA 5b
(3.36)
Trata-se de um sistema de duas equações não lineares em duas incógnitas. Para facilitar a notação, pode-se fazer deste modo: x1 = pA e x 2 = pB ; caindo na forma padrão da Equação (3.2) e possibilitando a solução pelo método de Newton-Raphson, por exemplo. Como se percebe, a derivação da matriz jacobiana não é trivial. Uma formulação complementar teria as vazões qAB e qBCF como incógnitas, de forma que: qBDF = q AB − qBCF q AEF = Q − q AB
(3.37)
Utilizando-se a lei de perdas de carga, tem-se: 2 2q AB + 2(q AB − qBCF )2 = 5(Q − q AB )2 2 3qBCF = 2(q AB − qBCF )2
03 Cap. 03_Reyolando.indd 55
(3.38)
21/09/2015 12:47:20
56
Métodos numéricos e computacionais na prática de engenharias e ciências
Novamente, trata-se de um sistema de duas equações não lineares em duas incógnitas. Para facilitar a notação, pode-se fazer assim: x1 = qAB e x2 = qBCF; caindo na forma padrão da Equação (3.2) e possibilitando a solução pelo método de Newton-Raphson, por exemplo. Como se percebe, a derivação da matriz jacobiana não é trivial.
03 Cap. 03_Reyolando.indd 56
21/09/2015 12:47:20
Capítulo
4
Otimização e programação linear
Otimização é o processo que determina, entre várias opções de um objeto, aquela que é a melhor possível dentro de certos critérios de escolha e certas limitações. Na engenharia o tempo todo procura-se o melhor desempenho nas suas diversas disciplinas: análise, projeto, fabricação, vendas, pesquisa, desenvolvimento etc. Sempre deve-se ter em mente os recursos disponíveis. Esta é praticamente a definição de engenharia. Em termos matemáticos, a otimização trata de encontrar os máximos ou mínimos de uma função (a função objetivo), que depende de uma ou mais variáveis de projeto, sujeita a restrições de igualdade ou de desigualdade. Trata-se de um campo de conhecimento e de pesquisa extremamente vasto, aplicado a todas as áreas da engenharia, das ciências em geral, da logística etc. Na administração de empresas é às vezes renomeada de pesquisa operacional. Por isso, apresentam-se, neste capítulo, apenas noções elementares, sem prova dos teoremas que as fundamentam. A intenção é descrever alguns dos algoritmos de resolução numérica do problema de otimização mais utilizados na prática.
04 Cap. 04_Reyolando.indd 57
21/09/2015 12:48:14
58
Métodos numéricos e computacionais na prática de engenharias e ciências
4.1
O problema padrão de otimização
Um problema geral de otimização pode ser formulado na forma padrão que segue. É um problema definido pelos valores de um vetor de n de variáveis de projeto: x = [ x1
x2 xn ] . T
(4.1)
Minimiza-se uma função objetivo f(x), sujeita a p restrições de igualdade: hj (x) = 0,
j = 1, , p
(4.2)
e m restrições de desigualdade: g i (x) ≤ 0,
(4.3)
i = 1, , m.
As funções f, g e h podem ser, no geral, não lineares. Se for desejado encontrar o máximo de uma função f(x) em vez do mínimo, basta determinar o mínimo dessa função com sinal trocado, F(x) = − f (x). Para os problemas de baixa dimensão, pode ser resolvido pela simples inspeção de gráficos das funções f, g e h. Apresenta-se um exemplo de pesquisa operacional, a maximização de lucro de uma empresa que fabrica dois tipos de máquinas, A e B. Usando os recursos disponíveis, 28 máquinas A ou 14 máquinas B podem ser produzidas por dia. O departamento de vendas pode vender 14 máquinas A ou 24 máquinas B. O departamento de expedição não pode despachar mais que 16 máquinas por dia. A empresa lucra R$ 400,00 por máquina A e R$ 600,00 por máquina B. Pretende-se saber quantas máquinas de cada tipo dão o máximo lucro. Dados: Variáveis de projeto: x1 = número de máquinas A; x2 = número de máquinas B.
Função objetivo (lucro) a ser maximizada: F ( x ) = 400x1 + 600x 2. Restrições (de desigualdade): x1 + x 2 ≤ 16
⇒
g 1 ( x ) = x1 + x 2 − 16 ≤ 0 (expedição)
x1 / 28 + x 2 / 14 ≤ 1 ⇒ x1 / 14 + x 2 / 24 ≤ 1 ⇒
g 2 ( x ) = x1 / 28 + x 2 / 14 − 1 ≤ 0 (produção) g 3 ( x ) = x1 / 14 + x 2 / 24 − 1 ≤ 0 (vendas)
A plotagem dessas funções é apresentada na Figura 4.1 a seguir. A linha de isolucros que dá o máximo valor e atende a todas as restrições é 400x1 + 600x 2 = 8800. Os programas de plotagem disponíveis, como Microsoft Office Excel, facilitam amplamente essa forma de resolução.
04 Cap. 04_Reyolando.indd 58
21/09/2015 12:48:15
59
Otimização e programação linear
24
g3
16 14
f(x )=
Região viável
g1 0
14
16
g2
88
00
22
28
x1
Figura 4.1
4.2 Otimização unidimensional: o segmento áureo Nesta seção, discute-se a solução numérica do problema de encontrar máximos ou mínimos de uma função escalar de uma só variável, sem restrições. De partida, essa função é considerada não linear, já que o caso linear em uma dimensão não tem máximos nem mínimos finitos. Um dos métodos numéricos mais utilizados para esse fim é o da busca utilizando o segmento áureo. A razão áurea foi primeiro definida por Euclides (cerca de 300 a.C.), na construção do pentagrama, e enunciada desta forma: “uma linha reta é dita dividida em extrema e média razão quando a linha toda está para o maior segmento como esse último está para o menor”. Sejam L1 e L 2 o maior e o menor segmento, respectivamente, tem-se: f=
L1 L2
(4.4)
obtém-se, pelo enunciado de Euclides: f=
04 Cap. 04_Reyolando.indd 59
L1 + L2 L1
(4.5)
21/09/2015 12:48:16
60
Métodos numéricos e computacionais na prática de engenharias e ciências
que resulta na equação de segundo grau: (4.6)
f2 − f −1 = 0 cuja raiz positiva é a chamada “razão áurea”: f=
1+ 5 = 1, 618034... 2
(4.7)
Esse valor, às vezes conhecido como divino, aparece em grande número de relações encontradas na natureza, nas ciências e nas artes. O leitor é convidado a fazer sua própria pesquisa sobre essa interessante recorrência. O que se quer é determinar o mínimo de uma função unidimensional por um processo em etapas. Inicia-se definindo um intervalo x L e x U dentro do qual o mínimo é procurado. São necessários dois pontos dentro desse intervalo para detectar a ocorrência de um mínimo, e eles são escolhidos de acordo com a razão áurea: x1 = x L + d
e
x 2 = xU − d,
d = (f − 1) ( xU − x L )
(4.8)
Calcula-se o valor da função nesses dois pontos interiores. Dois resultados podem ocorrer: • Se f ( x1 ) < f ( x 2 ), então f ( x1 ) é o mínimo desse intervalo, e o domínio à esquerda de x2, de xL a x2 pode ser eliminado da busca porque não contém o mínimo. Neste caso, x2 transforma-se no novo xL para a próxima etapa.
• Se f ( x 2 ) < f ( x1 ), então f ( x 2 ) é o mínimo desse intervalo, e o domínio à direita de x1, de x1 a x U pode ser eliminado da busca porque não contém o mínimo. Neste caso, x1 transforma-se no novo x U para a próxima etapa.
Como os valores de x1 e x2 foram escolhidos usando a razão áurea, não é necessário calcular todos os valores da função na próxima iteração. Por exemplo, se ocorrer a primeira hipótese acima, o antigo x1 passa a ser o novo x2 , e, assim, o novo f ( x 2 ) não precisa ser calculado já que é o mesmo que o antigo f ( x1 ) . Para completar o algoritmo, determina-se o novo x1 aplicando a Equação (6.8), com base nos novos valores de x L e xU. No segundo caso, o procedimento é análogo. Demonstra-se que, em cada iteração, o intervalo é reduzido por um percentual de aproximadamente 61,8%. Assim, por exemplo, depois de 10 iterações, o intervalo diminuiu aproximadamente 0,61810, 0,8% de seu comprimento original. Se for desejado encontrar o máximo de uma função f(x) em vez do mínimo, basta determinar o mínimo dessa função com o sinal trocado, F(x) = − f (x) . Segue-se x2 − 2 sen x; no um exemplo numérico para determinar o mínimo da função: f (x) = 10 intervalo, x L = 0 a xU = 4.
04 Cap. 04_Reyolando.indd 60
21/09/2015 12:48:17
61
Otimização e programação linear
• 1a iteração: d = 0, 61803(4 − 0) = 2, 4721 x1 = 0 + 2, 4721 = 2, 4721 x 2 = 4 − 2, 4721 = 1, 5279 f (x 2 ) = −1, 7647
f (x1 ) = −0, 63, ∴ f ( x 2 ) < f ( x1 )
O mínimo atual é f (x 2 ) = −1, 7647. • 2a iteração: d = 0, 61803(2, 4721 − 0) = 1, 5279 x1 = 1, 5279 x 2 = 2, 4721 − 1, 5279 = 0, 9443 f (x 2 ) = −1, 5310, ∴ f ( x 2 ) > f ( x1 )
O mínimo atual ainda é f (x1 ) = −1, 7647. Após 8 iterações, a localização do mínimo é aproximada por x = 1,4427, e o valor mínimo estimado da função é –1,7755. A busca do mínimo utilizando a razão áurea pode ser uma rotina que se repete dentro de um algoritmo maior, como é apresentado na seção 4.4 a seguir.
4.3 Programação linear Um problema de otimização que envolve apenas funções lineares nas variáveis de projeto é também chamado problema de programação linear. Programação linear é normalmente considerada como um método de pesquisa operacional, mas existe uma série muito grande de aplicações. O problema exposto pode ser expresso em sua forma padrão como: minimizar f ( x ) = c T x (função objetivo), sujeita a Ax = b (equações de restrição), onde x ≥ 0. Neste caso, x é o vetor coluna das n variáveis de projeto que se deseja determinar. As constantes dadas do sistema são fornecidas pelo vetor coluna b, uma matriz: A m × n e um vetor coluna c. Todas as equações de restrições e a função objetivo que se deseja minimizar estão na forma linear. Repetindo, o problema representa a necessidade de minimizar uma função linear, a função objetivo, sujeita a satisfazer um sistema linear de desigualdades. Apesar de ter sido dada a forma standard, muitas outras formas desse problema podem aparecer, as quais são facilmente convertidas à considerada. Por exemplo, as restrições podem ser inicialmente desigualdades e estas podem ser facilmente convertidas em igualdades, adicionando-se ou subtraindo-se variáveis adicionais. O objetivo pode ser maximizar a função em vez de minimizá-la. Novamente isso é facilmente obtido alterando-se os sinais dos coeficientes c. Alguns exemplos práticos de solução de problemas em que a programação linear pode ser aplicada são:
04 Cap. 04_Reyolando.indd 61
21/09/2015 12:48:17
62
Métodos numéricos e computacionais na prática de engenharias e ciências
• problema de dietas alimentares em hospitais, requerendo redução de custos de alimentos, enquanto se permanece oferecendo a melhor dieta; • problema de redução de perda padrão em indústrias; • problema de otimização do lucro, sujeito a restrições de disponibilidade de materiais; • problema de otimização de rotinas de chamadas telefônicas. 4.3.1 Método SIMPLEX Um poderoso método numérico para resolução de problemas de programação linear é denominado SIMPLEX, um dos primeiros a tornar-se disponíveis e populares quando da introdução dos computadores eletrônicos digitais de programa armazenado, na segunda metade do século XX. Para a exposição do algoritmo é utilizado o mesmo exemplo de maximização de lucro resolvido graficamente na Figura 4.1. Em uma primeira fase, transformam-se as equações de restrições de desigualdade em equações de restrições de igualdade por meio da introdução de variáveis adicionais que representam a folga existente de recursos em cada uma delas, denominadas slack variables, em inglês. O problema é: Minimizar f ( x ) = −400x1 − 600x 2, sujeita a: x1 + x 2 + x 3 = 16 x1 / 28 + x 2 / 14 + x 4 = 1 x1 / 14 + x 2 / 24 + x 5 = 1 Matricialmente, tem-se o vetor de variáveis de projeto x = [ x1
x2 x5 ] , a T
função objetivo f ( x ) = c T x, em que c = [c1 c 2 c 5 ] = [ −400 −600 0] e a equação de restrições Ax = b. As componentes aij da matriz A, m × n (no caso m = 3 e n = 5), são os coeficientes das equações de restrições, sendo que T
b = [b1 b2
T
b3 ] = [16 1 1] . T
T
Como a matriz A é 3 × 5, isto é, m < n, não há solução única. Desse modo, introduz-se o conceito de solução básica, em que n – m variáveis são anuladas (no caso duas), chamadas variáveis não básicas, ao passo que as demais são denominadas variáveis básicas, permitindo a solução do sistema restante (no caso, 3 × 3). Cada uma dessas soluções básicas corresponde a um vértice do polígono da Figura 4.1. Como se percebe, das dez soluções básicas possíveis neste caso, algumas são viáveis (respeitam todas as restrições) e outras são inviáveis. A inspeção de todas essas soluções básicas possíveis é um procedimento tipo força bruta para resolver o problema. Em um caso de dimensão grande torna-se economicamente irrealizável.
04 Cap. 04_Reyolando.indd 62
21/09/2015 12:48:18
63
Otimização e programação linear
O método SIMPLEX é organizado em tabelas denominadas tableau, cada uma representando uma solução básica. A passagem de uma solução para outra é feita de uma forma inteligente, e há um critério para saber quando é atingida a solução do problema de otimização. O tableau inicial é como segue:
Variável básica
x1
x2
x3
x4
x5
b
Razão bi /ai2
x3
1
1
1
0
0
16
16
x4
1/28
1/14
0
1
0
1
14
x5
1/14
1/24
0
0
1
1
24
Custo
–400
–600
0
0
0
f–0
Nesta solução, as variáveis básicas são x 3 = 16, x 4 = 1, x 5 = 1; as variáveis não básicas são x1 = 0, x 2 = 0, levando, obviamente, a f = 0 (verificar a Figura 4.1). Por esse método, para examinar-se uma nova solução básica, uma das variá veis básicas deve tornar-se não básica e uma variável não básica deve tornar-se básica. O critério para tanto é adotar a coluna que corresponde ao menor custo (a segunda coluna, de custo –600) e a linha correspondente à menor razão positiva bi /ai2 . O elemento a22 = 1/14 é o novo pivô do procedimento. No método numérico, é costume fazer esse pivô unitário dividindo essa linha por esse valor. Além disso, subtrai-se essa linha, multiplicada por um número adequado, das demais linhas, visando a zerar os coeficientes da segunda coluna. O resultado é o segundo tableau, a seguir (verificar a Figura 4.1).
Variável básica
x1
x2
x3
x4
x5
b
Razão bi /ai1
x3
1/2
0
1
–14
0
2
4
x2
1/2
1
0
14
0
14
28
x5
17/336
0
0
–7/12
1
70
140/17
Custo
–100
0
0
8400
0
f + 8400
Adota-se, agora, a coluna que corresponde ao menor custo (a primeira coluna, de custo –100) e a linha correspondente à menor razão positiva bi / ai1. O elemento a11 = 1/2 é o novo pivô do procedimento. Faz-se esse pivô unitário, dividindo essa linha por seu valor; depois subtrai-se essa linha, multiplicada por um número adequado, das demais linhas para zerar os coeficientes da primeira coluna. O resultado é o terceiro tableau, a seguir.
04 Cap. 04_Reyolando.indd 63
21/09/2015 12:48:18
64
Métodos numéricos e computacionais na prática de engenharias e ciências Variável básica
x1
x2
x3
x4
x5
b
Razão bi /ai1
x1
1
0
2
–28
0
4
Não necessário
x2
0
1
–1
28
0
12
Não necessário
x5
0
0
–17/168
5/6
1
3/14
Não necessário
Custo
0
0
200
5600
0
f + 8800
Pode-se provar que o processo atinge o mínimo quando os valores reduzidos da linha “Custo” para as variáveis não básicas são não negativos (em vez de diminuir, eles aumentam o custo). A solução do problema é, portanto: as variáveis básicas são x1 = 4, x 2 = 12, x 5 = 3 / 14; as variáveis não básicas são x 3 = 0, x 4 = 0, levando a f = –8800 (verificar a Figura 4.1). Há casos particulares, mas o exame deles foge ao escopo deste livro. Esses casos devem ser procurados na literatura da pesquisa operacional. 4.3.2 Método SIMPLEX de Dantzig Este algoritmo foi aplicado em problemas de guerra, relacionados à distribuição de materiais. Sem descrever em detalhes como ele funciona, o princípio geral de seu funcionamento é gerar uma sequência de pontos, os quais correspondem matematicamente aos vértices de uma região multidimensional ótima. O algoritmo vai de um vértice a outro, aumentando o valor da função objetivo a cada vez, até que o resultado ótimo seja obtido. Todos esses pontos estão na área da região provável, e para problemas maiores existe um grande número desses pontos. 4.3.3 Método do Ponto Interior de Karmakar Karmakar gerou um algoritmo, em princípio, bem diferente do algoritmo de Dantzig. Enquanto a complexidade teórica do método de Dantzig é exponencial em número de variáveis do problema, algumas versões do algoritmo de Karmakar têm uma complexidade que é da ordem do cubo de número de variáveis. O algoritmo proposto por Karmakar trabalha com o problema da programação linear de outro modo. Esse algoritmo transforma o problema em uma forma mais conveniente; depois, pesquisa dentro da região provável usando uma boa direção de pesquisa através de sua superfície. Pelo fato desse algoritmo usar pontos interiores, ele é comumente chamado Método do Ponto Interior.
04 Cap. 04_Reyolando.indd 64
21/09/2015 12:48:18
65
Otimização e programação linear
Desde sua formulação, muitos desenvolvimentos e modificações têm sido feitos nesse algoritmo. Aqui, trata-se de uma forma que, apesar de conceitualmente complexa, leva a um notavelmente simples e elegante algoritmo de programação linear, que é a formulação dada por Barnes (1986). Vale observar que o algoritmo de Barnes, mesmo provendo uma modificação ao algoritmo de Karmakar, preserva seus princípios fundamentais. 4.3.4 Método de Barnes O algoritmo de Barnes pode ser aplicado a qualquer problema de programação linear, desde que seja convertido à forma Simplex. Entretanto, uma importante modificação inicial é necessária para assegurar que o algoritmo inicie em um ponto interior x 0 ≤ 0. Essa modificação é obtida introduzindo-se uma nova última coluna à matriz A, cujos elementos são o vetor b menos a soma das colunas da matriz A. Associa-se, então, uma variável adicional a essa coluna adicional, de modo que não se tenha uma variável supérflua na solução. Introduz-se um elemento extra no vetor c e faz-se o valor desse elemento grande o suficiente para fazer que essa nova variável tenda a zero, quando o ótimo for obtido. O algoritmo pode ser apresentado como nos passos a seguir: • Passo 1: assumindo n variáveis no problema original, faz-se: a(i, n + 1) = b(i) − ∑ j a(i, j) e c(n + 1) = 10000 x 0 = [1111] k=0 • Passo 2: tem-se D k = diag(x k ) e deve-se obter um ponto melhor usando a equação: x k +1 = x k − s(D k )2 (c − A T l k ) / D k (c − A T l k )) onde l k = (A(D k )2 A T ) −1 A(D k )2 c O passo s é dado por: s = min
(D ) (c − A l ) / x (c − A l ) − a k
T
k
k j
j
T j
k
onde Aj é a j-ésima coluna da matriz A e a é o valor de uma pequena constante prefixada. Aqui o mínimo é dado somente pelos valores c j − A Tj λ k > 0 .
(
04 Cap. 04_Reyolando.indd 65
)
21/09/2015 12:48:19
66
Métodos numéricos e computacionais na prática de engenharias e ciências
Nota-se também que lk provê uma aproximação para a solução do problema. • Passo 3: o processamento deve ser interrompido se os valores das funções objetivos são aproximadamente iguais. Se não forem, deve-se fazer k = k + 1 e repetir a partir do passo 2.
4.4 Programação não linear Quando a função objetivo ou as restrições são não lineares, recai-se no problema de programação não linear. Apresentam-se, aqui, dois métodos para análise desses problemas, quando não há restrições. Nos métodos baseados no gradiente, o problema é encontrar um vetor de variáveis de projeto x que minimize uma função objetivo f(x) não linear, por meio de um processo iterativo em que, a cada passo, determina-se uma direção desejável de busca d, chamada direção de descida, já que diminui o valor da função objetivo e o tamanho do passo a naquela direção (o comprimento do vetor). Assim, em um passo genérico k: x (k +1) = x (k)a k d (k) . Para o algoritmo geral deve-se: 1. estimar um projeto inicial razoável x(0), fazer k = 0; 2. computar a direção dk no ponto x(k); 3. checar a convergência, se convergiu, parar; 4. calcular o tamanho do passo ak positivo na direção de dk; 5. fazer x (k +1) = x (k) + a k d (k); k = k + 1; voltar para o passo 2. Para determinar a direção de descida, que reduz o valor da função objetivo, toma-se uma expansão em série de Taylor truncada:
(
)
( )
( ) d
f x (k +1) = f x (k) + a k c (k)
T
(k )
(
)
( )
onde c(k) é o vetor gradiente de f(x) calculado em x(k), tal que f x (k +1) < f x (k) ,
( )
(k ) T
d < 0 , isto é, o produto escalar indicado é que leva à condição de que c negativo ou um ângulo entre os vetores entre 90o e 270o. A estratégia usada no método do gradiente é fazer esse ângulo 180o, ou seja, escolher a direção oposta (k )
( ) d = − c < 0.
ao vetor gradiente calculado naquele ponto, de forma que c (k) O algoritmo passa a ser: 1.
T
(k )
2
estimar um projeto inicial razoável x(0); fazer k = 0; definir uma precisão e;
2. computar o vetor gradiente c(k) no ponto x(k);
04 Cap. 04_Reyolando.indd 66
21/09/2015 12:48:20
67
Otimização e programação linear
3. calcular o comprimento c ,<see c < e, parar; 4. fazer a direção d k = − c k no ponto x(k); 5. calcular o tamanho do passo ak positivo na direção de dk, que minimize f (a ) = f (x (k) + a d (k) ); 6. fazer x (k +1) = x (k) + a k d (k); k = k + 1; voltar para o passo 2. O passo 5 é um problema de minimização dentro do problema maior, em que o método do segmento áureo, por exemplo, pode ser aplicado. 2 2 Um exemplo numérico é minimizar f (x) = x1 + x 2 − 2 x1 x 2: 1. estimar x (0) = (1, 0) ; fazer k =0; definir uma precisão e = 0,0001; 2. computar o vetor gradiente c (k) = (2 x1 − 2 x 2 , 2 x 2 − 2 x1 ) no ponto x(0), c (0) = (2, − 2) ; 3. calcular o comprimento c (0) = 2 2 , como c (0) > e, continuar; 4. fazer a direção d (0) = − c (0) = (−2, 2) no ponto x(0); 5. minimizar f (a ) = f (x (0) + a d (0) ) = f (1 − a , 2a ) = 16a 2 − 8a + 1; fazendo d f (a )/ d a = 32a − 8 = 0 , ou seja, a0 = 0,25, que é um mínimo de fato, porque a derivada segunda d 2 f (a )/ d a 2 = 32 é positiva; 6. fazer x (1) = x (0) + a 0d (0) = (0, 5 , 0, 5); k = 1; voltar para o passo 2: (1) c (1) = (0, 0); depois c (1) = 0 , como c < e , parar.
Portanto, x (1) = (0, 5 , 0, 5) é o ponto mínimo do problema e o valor mínimo da função é f x (1) = 0.
( )
4.5 Aplicações em engenharia 4.5.1 Engenharia de estruturas Uma coluna, de comprimento L = 5 m, é engastada na base e livre na extremidade superior. A seção é tubular de raio médio R e espessura da parede t. Essa coluna é submetida a uma força de compressão centrada no topo P = 10 MN. Deve-se determinar sua mínima massa, sabendo que é constituída de aço (E = 207 GPa; densidade r = 7833 kg/m³; resistência admissível sa = 248 MPa). Dados: Variáveis de projeto: R e t. Função objetivo: f (R, t) = 2rLp Rt, massa em quilograma. Restrições de desigualdade: P g 1 (R, t) = − s a ≤ 0, 2pRt
04 Cap. 04_Reyolando.indd 67
(resistência admissível)
21/09/2015 12:48:22
68
Métodos numéricos e computacionais na prática de engenharias e ciências
g 2 (R, t) = P −
p 3 ER3t ≤0 4L2
g 3 (R, t) = − R ≤ 0,
(carga de flambagem)
g 3 (R, t) = −t ≤ 0
Trata-se de um problema de minimização não linear com restrições. Como só há duas variáveis de projeto, é possível resolvê-lo pelo método gráfico no plano cartesiano R × t. Há infinitas soluções. P − s a = 0, acima de Todos os pontos no segmento da curva g 1 (R, t) = 2pRt p 3 ER3t = 0, são soluções com a massa sua intersecção com a curva g 2 (R, t) = P − 4L2 da coluna igual a 1579 kg. Em particular, nesse ponto de interseção, R = 0,1575 m e t = 0,0405 m. 4.5.2 Engenharia de petróleo Uma refinaria recebe uma quantidade fixa de gás natural bruto em metros cúbicos por semana. Ele é processado em duas qualidades de gás, comum e especial, e cada processo consome certo tempo e dá certo lucro por tonelada processada. Só um dos tipos de produto pode ser processado de cada vez. A refinaria trabalha 80 horas por semana e sua capacidade de armazenamento é restrita para cada tipo de produto. Pretende-se verificar qual quantidade de gás de cada tipo deve ser processada para o máximo lucro. Os dados disponíveis para o gestor resolver o problema de programação linear estão resumidos no quadro a seguir.
Produto Gás comum
Gás especial
Disponibilidade de recursos
Gás bruto
7 m³/ton
11 m³/ton
77 m³/semana
Tempo de produção
10 h/ton
8 h/ton
80 h/semana
Armazenagem
9 ton
6 ton
Lucro
R$ 150/ton
R$ 175/ton
Recurso
Variáveis de projeto: x1 é quantidade de gás comum a ser produzida; x2 é quantidade de gás especial a ser produzida. Função objetivo (lucro): F(x) = 150x1 + 175x 2. Restrições, já adicionando as variáveis de folga (slack variables): g 1 = 7 x1 + 11x 2 + x 3 = 77 g 2 = 10x1 + 8x 2 + x 4 = 80
04 Cap. 04_Reyolando.indd 68
21/09/2015 12:48:23
69
Otimização e programação linear
g 3 = x1 + x 5 = 9 g 4 = x 2 + x6 = 6 Aplicando o método SIMPLEX, constrói-se o primeiro tableau:
Variável básica
x1
x2
x3
x4
x5
x6
b
Razão bi /ai2
x3
7
11
1
0
0
0
77
7
x4
10
8
0
1
0
0
80
10
x5
1
0
0
0
1
0
9
x6
0
1
0
0
0
1
6
∞ 6
Custo
–150
–175
0
0
0
0
f–0
O pivô é o coeficiente a 42 = 1, já que a segunda coluna corresponde ao menor custo (–175) e quarta linha corresponde à menor razão positiva bi / ai 2. Esse pivô já é unitário, como exigido pelo método. Ao zerar os coeficientes da coluna acima e abaixo da linha, chega-se ao segundo tableu:
Variável básica
x1
x2
x3
x4
x5
x6
b
Razão bi /ai1
x3
7
0
1
0
0
–11
11
1,57143
x4
10
0
0
1
0
–8
32
3,2
x5
1
0
0
0
1
0
9
9
x2
0
1
0
0
0
1
6
Custo
–150
0
0
0
0
175
f + 1050
∞
O pivô é o coeficiente a11 = 7, já que a primeira coluna corresponde ao menor custo (–150) e a primeira linha corresponde à menor razão positiva bi / ai 2. Tornando esse pivô unitário e zerando os coeficientes abaixo dessa linha, chega-se ao terceiro tableau:
04 Cap. 04_Reyolando.indd 69
21/09/2015 12:48:23
70
Métodos numéricos e computacionais na prática de engenharias e ciências Razão bi /ai2
Variável básica
x1
x2
x3
x4
x5
x6
b
x1
1
0
0,1429
0
0
–1,571
1,57143
x4
0
0
–0,1429
1
0
7,7143
16,2857
2,1111
x5
0
0
–0,1429
0
1
1,571
7,4286
4,7286
x2
0
1
0
0
0
1
6
6
Custo
0
0
21,4256
0
0
–60,71
f + 1286
O pivô é o coeficiente a26 = 7,7143, já que a sexta coluna corresponde ao menor custo (–60,71) e a segunda linha corresponde à menor razão positiva bi / ai 2. Tornando esse pivô unitário e zerando os coeficientes abaixo e acima dessa linha, chega-se ao quarto tableau:
Variável básica
x1
x2
x3
x4
x5
x6
b
x1
1
0
0,1481
0,2037
0
0
4,8889
x6
0
0
–0,1852
0,1296
0
1
2,1111
x5
0
0
0,1481
–0,204
1
0
4,1111
x2
0
1
0,1852
–0,13
0
0
3,8889
Custo
0
0
10,1852
7,8704
0
0
f + 1413,8
Razão bi /ai2
Este é o último tableau, pois na linha dos custos só há valores não negativos. A solução é 4,8889 toneladas de gás comum e 3,8889 toneladas de gás especial por semana, resultando em um lucro máximo de R$ 1.413,80. Cabe mencionar mais um resultado interessante para o gestor: existe uma folga de capacidade de armazenamento de 2,1111 toneladas de gás especial e de 4,1111 toneladas de gás comum.
04 Cap. 04_Reyolando.indd 70
21/09/2015 12:48:23
Capítulo
5
Problemas de autovalores e autovetores
Nos Capítulos 2 e 3, foram estudados sistemas de equações algébricas para determinação de seus estados de equilíbrio. Neste capítulo, além de determinar certas configurações, denominadas autovetores ou modos, buscam-se também as condições críticas para que esses estados sejam possíveis. Um parâmetro que descreve uma condição desse tipo é chamado autovalor. Como exemplos, existem a determinação de modos de vibração e suas respectivas frequências naturais em sistemas oscilantes e de modos e cargas de flambagem em problemas de estabilidade elástica.
5.1
Problemas padrão e generalizado
O problema pode ser colocado na forma: Ax = lx
(5.1)
ou seja, nesse sistema de equações, procura-se um vetor de constantes l x ( n × 1) do lado direito da equação que seja proporcional à solução do sistema, x. Um vetor com essa propriedade é um autovetor de A (n × n), e a constante de proporcionalidade l é um seu autovalor. Para a vasta maioria dos problemas de interesse das engenharias e ciências, a matriz A é simétrica e não singular. E assim é admitida neste capítulo. Da Equação (5.1) tem-se:
05 Cap. 05_Reyolando.indd 71
21/09/2015 12:48:48
72
Métodos numéricos e computacionais na prática de engenharias e ciências
Ax = lIx
(5.2)
em que I é a matriz identidade da mesma ordem que A, levando a: (A − lI)x = 0
(5.3)
Trata-se de um sistema de equações lineares homogêneo (vetor de constantes nulo) que só possui soluções não triviais se: det(A − lI) = 0
(5.4)
A Equação (5.4) é uma equação polinomial de grau n em l, cujas n raízes l1 (i = 1, , n) são os autovalores de A, que nas condições assumidas de simetria são reais. Se cada um desses valores for substituído na Equação (5.4), um de cada vez, obtém-se n vetores x i (i = 1, , n), os respectivos autovetores. Em razão da condição da Equação (5.4) de determinante nulo, não é possível achar uma solução única. Todas as soluções são proporcionais entre si. A técnica para obtenção de um desses vetores é arbitrar um valor para uma de suas coordenadas e determinar as outras em função dessa. O esquema de solução de autovalores e autovetores baseado na Equação (5.4) é proibitivamente trabalhoso para problemas de porte maior. Por isso, neste capítulo, outras técnicas numéricas são apresentadas. A Equação (5.1) é denominada problema padrão de autovalores e autovetores, e a maioria dos algoritmos numéricos disponíveis tratam só dele. Uma situação mais completa é o chamado problema generalizado de autovalores e autovetores, na forma: (5.5)
Ax = lBx
em que se admite que as matrizes A e B são ambas simétricas e pelo menos uma delas é não singular, geralmente B. Para colocar esse problema generalizado na forma do problema padrão, possibilitando o uso dos algoritmos existentes, faz-se: B −1Ax = l B −1Bx = l Ix Hx = l x
onde
(5.6)
H = B −1A
(5.7)
Quando A é não singular, pode-se, alternativamente, fazer: A −1Ax = l A −1Bx = l Ix Gx = 1 /l x = f x
onde
(5.8) G = A −1B
(5.9)
Note-se que H é a inversa de G. Essas matrizes não são, geralmente, simétricas. Observe-se também que os autovalores da Equação (5.9) são os inversos dos autovalores da Equação (5.7).
05 Cap. 05_Reyolando.indd 72
21/09/2015 12:48:50
73
Problemas de autovalores e autovetores
Nas condições admitidas de A e B serem simétricas e B ser positiva definida, apresentam-se certas propriedades, sem prova. Em primeiro lugar, é garantida a existência de soluções. Se x é um autovalor, ou modo, qualquer múltiplo dele também é, ou seja, não se consegue fixar a magnitude absoluta dos elementos de x, mas somente as proporções relativas entre eles. Se B é positiva definida, como admitido, todos os autovalores são reais. Se A também é positiva definida, todos os autovalores são positivos. Todos os autovetores são ortogonais entre si e referidos como modos normais, formando uma base de vetores em um espaço n-dimensional.
5.2 Iteração pelo método de Stodola-Vianello Um algoritmo para solução do problema de autovalores e autovetores é o iterativo, em que em cada passo substitui-se um vetor previamente estimado por um vetor melhorado. O processo leva, em geral, a apenas um modo do sistema. Foi aplicado pela primeira vez em 1898 por Vianello no estudo de flambagem. Mais tarde, em 1904, Stodola usou esse método para o problema de velocidades críticas de eixos rotativos. Uma estimativa inicial de um autovetor é admitida. O sistema da Equação (5.1) é usado para verificar se esse vetor tentativamente proposto a satisfaz, isto é, se a substituição do vetor tentativo no lado esquerdo da equação levar a um vetor proporcional a ele no lado direito (o fator de proporcionalidade seria o correspondente autovalor l). No caso geral isso não vai acontecer, mas o novo vetor obtido, normalizado, é uma aproximação melhor da solução e é usado na próxima iteração como tentativa. Segue-se uma demonstração numérica da técnica de Stodola-Vianello, na resolução do problema Ax = lBx, dadas as matrizes: 0 −600 600 A = −600 1800 −1200 0 −1200 3000
1 0 0 B = 0 1, 5 0 0 0 2
Como A é não singular, pode-se fazer: Gx = f x
onde
G = A −1B
11 7, 5 4 1 G= 5 7, 5 4 3600 2 3 4 que não é simétrica. Admitindo-se uma estimativa inicial grosseira para um autovetor, T x T0 = [1 1 1] , tem-se:
05 Cap. 05_Reyolando.indd 73
21/09/2015 12:48:50
74
Métodos numéricos e computacionais na prática de engenharias e ciências
1a iteração 3600 G x 0 = x 1 = [ 22, 5 16, 5 9]
T
Normalizando pela maior coordenada: x 1 = [1 0, 73 0, 4] . T
2a iteração 3600 G x 1 = x 2 = [18, 1 12, 1 5, 8]
T
Normalizando pela maior coordenada: x 2 = [1 0, 67 0, 31] . T
3a iteração 3600 G x 2 = x 3 = [17, 26 11, 26 5, 25]
T
Normalizando pela maior coordenada: x 3 = [1 0, 65 0, 3] . T
4a iteração 3600 G x 3 = x 4 = [17, 08 11, 08 5, 15]
T
Normalizando pela maior coordenada: x 4 = [1 0, 646 0, 301] . T
Esta última estimativa vai ser considerada final. Para determinação do correspondente autovalor, faz-se mais uma iteração: 3600 G x 4 = x 5 = [17, 04 11, 04 5, 14]
T
A relação entre o vetor do lado direito e o do lado esquerdo é, por definição, o autovalor: f = 3600 / 17, 04 = 211, que é o menor autovalor do problema. Para obtenção do maior autovalor, faz-se: Hx = l x
onde
H = B −1A
que, neste particular problema, em que B é diagonal, é muito mais fácil de calcuT lar. Partindo-se de um vetor tentativo inicial x T0 = [1 −1 1] , chega-se ao autoT vetor x = [1 −2, 57 2, 47 ] que corresponde ao autovalor l = 2125. Como se observa, esse método permite computar o menor e o maior autovalor e seus correspondentes autovetores.
05 Cap. 05_Reyolando.indd 74
21/09/2015 12:48:51
75
Problemas de autovalores e autovetores
5.3 Aplicações nas Engenharias e Ciências 5.3.1 Frequências e modos de vibração livre
não amortecida
A Figura 5.1 é um modelo de um sistema vibratório linear não amortecido de 3 T graus de liberdade, os deslocamentos das massas u = [ u1 u2 u3 ] . Foram adotados os parâmetros: k1 = k4 = 10 N/m; k2 = k3 = 30 N/m; m1 = m2 = m3 = 1 kg.
u1
u2
k1
k2 m1
u3 k3
k4
m2
m3
Figura 5.1
1 m1u 12 + m 2 u 22 + m3 u 32 , onde o ponto superposto 2 indica a derivada primeira no tempo do deslocamento (velocidade). A energia de 1 deformação é U = k1u12 + k2 (u2 − u1 )2 + k3 (u3 − u2 )2 + k4 u32 . 2 Aplicando a equação de Lagrange: A energia cinética é T =
d ∂T ∂U =0 + dt ∂ u i ∂ ui
(
)
i = 1, 2, 3
chega-se a um sistema de três equações diferenciais ordinárias, lineares, de segun + Ku = 0 , onde se definem as matrizes de massa e de rigidez. da ordem, Mu 0 1 0 0 m1 0 M = 0 m 2 0 = 0 1 0 kg 0 m3 0 0 1 0 40 −30 0 − k2 k1 + k2 K = − k2 k2 + k3 −k3 = −30 60 −30 N / m 0 −k3 k3 + k4 0 −30 40 + Ku = 0 é harmônica, na forma u = uˆ cosw t, em que û é A solução de Mu um modo de vibração, isto é, um vetor cujas componentes variam no tempo mantendo as mesmas relações entre suas componentes. Em outras palavras, as componentes do modo evoluem no tempo em fase e na mesma frequência w(em rad/s). Substituindo na equação do movimento e cancelando o cosseno, tem-se: Kuˆ = w 2 Muˆ
05 Cap. 05_Reyolando.indd 75
21/09/2015 12:48:52
76
Métodos numéricos e computacionais na prática de engenharias e ciências
Trata-se de um problema de autovalores (as frequências ao quadrado) e autovetores (os modos de vibração). Colocando na forma padrão, tem-se: Euˆ = w 2 uˆ
onde
E = M −1K = K
Isso é muito fácil, já que a matriz de massa desse problema é uma matriz identidade. A seguir, aplica-se o Método Iterativo de Stodola-Vianello. Admitindo-se uma T estimativa inicial grosseira para um autovetor, u 0 = [1 −1 1] . 1a iteração E u 0 = u 1 = [70 −120 70]
T
Normalizando pela maior coordenada: u 1 = [1 −1, 7143 1] . T
2a iteração E u 1 = u 2 = [91, 429 −162, 858 91, 429]
T
Normalizando pela maior coordenada: u 2 = [1 −1, 78125 1] . T
3a iteração E u 2 = u 3 = [93, 4375 −166, 875 93, 4379]
T
Normalizando pela maior coordenada: u 3 = [1 −1, 786 1] . T
4a iteração E u 3 = u 4 = [93, 55 −167, 1 93, 55]
T
Normalizando pela maior coordenada: u 4 = [1 −1, 7862 1] . Esta última estimativa vai ser considerada final e adotada como terceiro T modo uˆ 3 = [1 −1, 7862 1] . A relação entre o vetor do lado direito e o do lado esquerdo é, por definição, o autovalor w 2 = 93,55, que é o maior autovalor do problema, correspondendo à terceira frequência, w3 = 9,672 rad/s, ou 1,54 Hertz. Fazendo-se o problema inverso: T
Duˆ = 1 / w 2 uˆ
onde
D = K −1M
e partindo-se da estimativa inicial: u 0 = [1 1 1]
T
chega-se ao primeiro modo do sistema uˆ 1 = [1 1, 12 1] , correspondendo à sua primeira frequência, w1 = 2,53 rad/s, ou 0,403 Hertz. T
05 Cap. 05_Reyolando.indd 76
21/09/2015 12:48:53
77
Problemas de autovalores e autovetores
5.3.2 Modos e cargas críticas de flambagem A Figura 5.2 representa um sistema de barras articuladas de massa desprezível e suportado por molas. Na configuração inicial as barras estão na posição exatamente vertical e não há forças nas molas. Aplica-se uma força vertical P de cima para baixo na articulação superior. Para valores pequenos dessa força, o sistema permanece vertical (configuração primária). Para cargas grandes, as barras perdem estabilidade na posição vertical e procuram uma nova configuração de equilíbrio (secundária), conforme Figura 5.2. Pretende-se determinar qual o valor crítico de P para o qual a configuração secundária alternativa é possível. P Pcrit
l
x1
2k
l x2 3k
Figura 5.2
As variáveis de estado são as rotações (pequenas) x1 e x2 (em radianos). O deslocamento vertical da força P é: v = L [2 − cos x1 − cos(x1 + x 2 )] Fazendo a aproximação usual para ângulos pequenos, cos q ≈ 1 − q 2 / 2 , tem-se: x 2 ( x1 + x 2 ) 2 L 2 x12 + 2 x1 x 2 + x 22 v ≈ L 1 + = 2 2 2
(
)
Somando a energia de deformação das molas e o trabalho da força P, chega-se à energia potencial total: 3x 2 PL 2 x12 + 2 x1 x 2 + x 22 V = k 1 + x 22 − 2 2
(
05 Cap. 05_Reyolando.indd 77
)
21/09/2015 12:48:54
78
Métodos numéricos e computacionais na prática de engenharias e ciências
A condição de equilíbrio leva a duas equações: ∂V ∂V = 0, =0 ∂x1 ∂x 2 que resultam no seguinte problema de autovalores e autovetores: Kx = lK g x onde l = PL; K é a matriz de rigidez elástica e Kg é a chamada matriz de rigidez geométrica, que valem, respectivamente: 3k 0 K= 0 2k
2 1 K g = PL 1 2
Tem-se 2 autovalores e 2 autovetores. Entretanto, na prática da engenharia, basta determinar o menor valor de carga crítica, já que a estrutura deixa de ser utilizável a partir dessa carga, não atingindo o segundo valor, mais alto. No presente caso, as cargas críticas valem: Pcrit ,1 =
05 Cap. 05_Reyolando.indd 78
k L
Pcrit ,2 =
6k L
21/09/2015 12:48:55
Capítulo
6
Representação de séries de dados experimentais por curvas
Dados experimentais geralmente estão disponíveis na forma de uma série de valores discretos amostrados no domínio de um contínuo. São duas as situações mais importantes na prática das engenharias e das ciências em que pode ser necessário representar esses dados por curvas. A primeira, mais óbvia, é facilitar a visualização de como esses dados variam no contínuo. A outra é dar a estimativa de valores entre os disponíveis na série (interpolação) ou a projeção de valores para fora do domínio considerado (extrapolação). Outra aplicação também frequente é a validação ou calibração de modelos matemáticos, isto é, a comparação entre os valores preditos por um modelo e os medidos experimentalmente.
6.1
Regressão linear e linearização
Nesta seção discute-se a determinação numérica da melhor equação de reta que representa certa série de n dados. Também aborda-se a linearização de equações não lineares para esse mesmo fim.
06 Cap. 06_Reyolando.indd 79
21/09/2015 12:49:21
80
Métodos numéricos e computacionais na prática de engenharias e ciências
Pretende-se ajustar a uma série de dados uma reta na forma: y = a 0 + a1 x + e
(6.1)
em que a 0 é o valor de y para x = 0 (a interseção da reta com o eixo y); a1 refere-se à inclinação da reta e e corresponde ao erro, ou resíduo, entre a reta proposta e as observações constantes da série de n dados. A estratégia adotada é a minimização da soma dos quadrados dos erros (resíduos) em cada ponto da série: n
n
i =1
i =1
S r = ∑ e i2 = ∑ ( y i − a0 − a1 x i )
2
(6.2)
e na forma de duas equações lineares: n ∂S r = −2∑ ( y i − a0 − a1 x i ) = 0 ∂a 0 i =1
(6.3)
n ∂S r = −2∑ [( y i − a0 − a1 x i )x i = 0 ∂a1 i =1
(6.4)
que podem ser colocadas na forma das chamadas equações normais: n n ∑ xi i =1
n i ∑ yi i =1 0 = i =1 n n a 2 1 xi xi yi ∑ ∑ i =1 i =1 n
∑ x a
(6.5)
Um exemplo numérico: dada a série de oito valores abaixo, pretende-se ajustar a melhor reta.
i
xi
yi
x2i
xi yi
1
10
25
100
250
2
20
70
400
1400
3
30
380
900
11400
4
40
550
1600
22000
5
50
610
2500
30500
6
60
1220
3600
73200
7
70
830
4900
58100
8
80
1450
6400
116000
∑
360
5135
20400
312850
06 Cap. 06_Reyolando.indd 80
21/09/2015 12:49:21
81
Representação de séries de dados experimentais por curvas
Resolvendo-se o sistema da Equação (6.5) para esses dados, obtém-se a 0 = −234,2957 e a1 = 19,47024. Às vezes, o analista percebe, observando um gráfico, que o melhor ajuste para uma série de dados não é uma reta. Alguns modelos não lineares podem ser transformados em um problema de regressão linear. O primeiro modelo é o exponencial: y = a1 e bx
(6.6)
em que a constante b representa um crescimento exponencial se for positiva e um decrescimento exponencial se for negativa. A Equação (6.6) pode ser transformada em um problema de regressão linear tomando o logaritmo natural de seus dois membros: ln y = ln a + bx
(6.7)
Outro modelo é dado pela equação de potência: y = a xb
(6.8)
que pode ser transformada em um problema de regressão linear aplicando-se o logaritmo de base 10 a seus dois membros: log y = log a + b log x
(6.9)
Por fim, existe o modelo de crescimento com saturação, muito usado para simular o crescimento de populações com recursos limitados: y=a
x x+b
(6.10)
Invertendo-se a Equação (6.10), formula-se um problema de regressão linear: 1 1 b1 = + y a ax
(6.11)
Uma situação frequente é ter uma série de dados de funções de duas variáveis. Nesse caso, deve-se fazer uma regressão linear para um plano, e não para uma reta. A equação geral de um plano é: y = a 0 + a1 x 1 + a 2 x 2 + e
(6.12)
em que e é o erro, ou resíduo, entre o plano proposto e as observações constantes da série de n dados. A estratégia adotada é, novamente, a minimização da soma dos quadrados dos erros (resíduos) em cada ponto da série:
06 Cap. 06_Reyolando.indd 81
21/09/2015 12:49:22
82
Métodos numéricos e computacionais na prática de engenharias e ciências n
n
i =1
i =1
S r = ∑ e i2 = ∑ ( y i − a0 − a1 x1i − a 2 x 2i )
2
(6.13)
na forma de três equações lineares: ∂S r =0 ∂a 0
∂S r =0 ∂ a1
∂S r =0 ∂a 2
(6.14)
que podem ser colocadas na forma das chamadas equações normais: n n ∑ x1i i =1 n ∑ x 2i i =1
∑ x1i i =1 n
∑x i =1
2 1i
n
∑x x i =1
1i
n x ∑ 2i ∑ yi i =1 a 0 i =1 n n x1i x 2i a1 = ∑ x1i y i ∑ i =1 a i =1 n 2 n 2 x 2i ∑ x 2 i y i ∑ i =1 i =1 n
n
2i
(6.15)
6.2 Regressão não linear A técnica mais usual de regressão não linear é a regressão polinomial. Nela, minimiza-se o erro entre os n dados amostrados e o valor predito por um polinômio de grau m, como segue: n
S r = ∑ e i2
(6.16)
e i = y i − a0 − a1 x i − a 2 x i2 − − a m x im
(6.17)
∂S r ∂S r ∂S r ∂S r = = == =0 ∂a0 ∂a1 ∂a 2 ∂a m
(6.18)
i =1
Como exemplo, uma regressão para uma parábola de segundo grau é feita por: n
S r = ∑ e i2 i =1
e i = y i − a0 − a1 x i − a 2 x i2 ∂S r ∂S r ∂S r = = =0 ∂a0 ∂a1 ∂a 2 resultando no sistema de três equações lineares:
06 Cap. 06_Reyolando.indd 82
21/09/2015 12:49:23
83
Representação de séries de dados experimentais por curvas
n n ∑ xi i =1 n 2 ∑ xi i =1
n ∑ yi i =1 a 0 i =1 n n 3 x i a1 = ∑ x i y i ∑ i =1 a i =1 2 n n 4 2 x y x ∑ ∑ i i i i =1 i =1 n
n
∑x ∑x i
i =1 n
∑x i =1 n
∑x i =1
2 i
3 i
2 i
6.3 Interpolação Em uma interpolação, o que se deseja é obter uma curva que passe exatamente por todos os n pontos de uma série de dados. É possível demonstrar que um polinômio de grau n – 1 interpola exatamente uma série de n dados, e é único, na forma: f (x) = a0 + a1 x + a 2 x 2 + + a n x n −1
(6.19)
Uma reta interpola exatamente dois pontos; somente uma parábola conecta um conjunto de três pontos. Para a determinação dos coeficientes do polinômio procurado, escrevem-se tantas equações lineares quanto o número de pontos. Como exemplo, determinam-se, a seguir, os três coeficientes da parábola que passa pelos pontos: x1 = 300
f (x1 ) = 0, 616
x 2 = 400
f (x 2 ) = 0, 525
x 3 = 500
f (x 3 ) = 0, 457
Substituídos na Equação (6.19), resultam em: 1 300 300 2 a0 0, 616 2 1 400 400 a1 = 0, 525 1 500 500 2 a 2 0, 457 do que se tem: a0 1, 027 a1 = −0, 001715 a 0, 00000115 2 Esse procedimento, bastante simples, leva, no entanto, a sistemas de equações lineares muito mal condicionadas, isto é, sensíveis a erros de arredondamento nos cálculos. Claro que, se forem utilizados números com grande precisão no
06 Cap. 06_Reyolando.indd 83
21/09/2015 12:49:24
84
Métodos numéricos e computacionais na prática de engenharias e ciências
computador (precisão dupla), esse problema normalmente é resolvido. Uma alternativa é o uso de procedimentos mais elaborados, como as interpolações polinomiais de Newton ou de Lagrange.
6.4 Interpolação por splines Como visto em seção anterior, um polinômio de grau n – 1 interpola exatamente uma série de n dados, e é único. Entretanto, é sabido que esse procedimento pode levar, em alguns casos, a resultados errôneos em virtude dos erros de arredondamento nos cálculos e das chamadas oscilações, que são ondulações incorretas que o polinômio pode apresentar entre dois pontos interpolados. Uma técnica alternativa é ajustar polinômios de ordem mais baixa a subconjuntos de pontos. Esses polinômios são denominados splines, em analogia às tábuas de madeira de um barril ou que são ajustadas às cavernas de uma embarcação desse material. Se, por exemplo, curvas de terceira ordem são conectadas a cada par de pontos, são chamados splines cúbicos. É claro que é necessário estabelecer a compatibilidade de deslocamentos, tangentes e curvaturas nos pontos de união entre dois trechos contíguos quaisquer. Da resistência dos materiais, é possível provar que as tábuas de um navio de madeira são splines cúbicos. Para n pontos (i = 1, 2 , ... ,n) há n – 1 intervalos. Cada intervalo i tem sua própria função, si(x). Splines lineares ligam cada dois pontos por um segmento de reta: si (x) = ai + bi ( x − x i )
(6.20)
onde ai = f i é a ordenada do ponto inicial do trecho, e a inclinação do segmento de reta entre os dois pontos é: bi =
f i +1 − f i x i +1 − x i
(6.21)
A Equação (6.20) pode ser usada para determinar o valor da função entre dois pontos consecutivos. É claro que splines lineares são uma aproximação pobre da função a interpolar, especialmente porque a derivada da função nos pontos de união de duas funções é descontínua. Os já mencionados splines cúbicos são uma opção muito superior. A função válida entre dois pontos consecutivos é: si (x) = ai + bi ( x − x i ) + c i ( x − x i ) + d i ( x − x i ) 2
3
(6.22)
Assim, para n pontos e n – 1 intervalos, há 4 (n – 1) coeficientes a determinar. Para esse fim, adotam-se três condições. • 1a condição: as funções passam pelos pontos a serem ligados, e o valor das derivadas primeiras (tangentes) à esquerda e à direita de cada ponto devem ser iguais;
06 Cap. 06_Reyolando.indd 84
21/09/2015 12:49:24
85
Representação de séries de dados experimentais por curvas
• 2a condição: as segundas derivadas (curvaturas) à esquerda e à direita de cada ponto devem ser iguais; • 3a condição: define as condições de contorno no primeiro e no último ponto; uma opção usual é o chamado spline natural, que tem derivadas segundas nulas nas duas extremidades. A manipulação algébrica dessas três condições, que aqui é omitida, dado ser muito trabalhosa, leva, ao final, a escrever uma equação para cada ponto intermediário visando a determinação dos coeficientes ci da Equação (6.22), na forma: f −f f − f i −1 hi −1 c i −1 + 2 (hi −1 + hi ) c i + hi c i +1 = 3 i +1 i − 3 i hi hi −1 i
i = 2,,, n − 1 (6.23)
em que hi = x i +1 − x i é a diferença de ordenadas à direita do ponto i. A Equação (6.23) é um sistema tridiagonal simétrico de n – 1 equações lineares, já estudado no Capítulo 1, de fácil solução. A ele devem ser adicionadas as condições de contorno admitidas para o problema em questão. A determinação das demais constantes é feita pelas expressões a seguir: bi =
f i +1 − f i hi − (2c i + c i +1 ) 3 hi
e
di =
c i +1 − c i 3hi
(6.24)
Um exemplo numérico é formulado por estes dados:
i
xi
fi
1
3,0
2,5
2
4,5
1,0
3
7,0
2,5
4
9,0
0,5
Para quatro pontos, o sistema a ser escrito é: 1 h 1 0 0
0 0 0 c1 0 c 2 ( h1 + h2 ) h2 3 f f / h − 3 ( f 2 − f1 ) / h1 2 = ( 3 − 2 ) 2 2 (h2 + h3 ) h3 c 3 3 ( f 4 − f 3 ) / h3 − 3 ( f 3 − f 2 ) / h2 h2 0 0 1 c 4 0
As constantes c1 e c 4 são nulas pela hipótese adotada de curvatura zero nas extremidades. Outras condições de contorno poderiam ser admitidas.
06 Cap. 06_Reyolando.indd 85
21/09/2015 12:49:25
86
Métodos numéricos e computacionais na prática de engenharias e ciências
Numericamente, tem-se: 0 0 1 1, 5 8 2, 5 0 2, 5 9 0 0 0
0 c1 0 0 c 2 4, 8 = ∴ 2 c 3 −4, 8 1 c 4 0
0 c1 c 0, 839543726 2 = c − 0 , 766539924 3 c 4 0
que resulta em: b1 −1, 419771863 b2 = −0, 160456274 b 0, 022053232 3
06 Cap. 06_Reyolando.indd 86
e
d1 0, 186565272 d 2 = −0, 214144487 d 0, 127756654 3
21/09/2015 12:49:25
Capítulo
7
Equações diferenciais: problemas de valor inicial
Todos os fenômenos naturais são dinâmicos, no sentido de que variam no tempo, embora seja possível em muitas aplicações uma simplificação para que possam ser analisados como estáticos. No caso geral, no entanto, sua modelagem matemática deve levar em conta essa variação, na forma de equações diferenciais, em que comparecem derivadas (taxas de variação). Neste capítulo, trata-se dos chamados problemas de valor inicial ou de propagação em que se quer determinar a evolução no tempo de um sistema modelado por equações diferenciais, a partir de condições iniciais dadas. Admite-se, aqui, que essas equações diferenciais são ordinárias, isto é, dependem apenas de uma variável independente, o tempo, que, como é sabido, para infelicidade da humanidade, passa sem controle humano. O resultado buscado dos algoritmos apresentados é um histórico de resposta que fornece para cada instante discreto no tempo o valor da variável dependente, seja ela unidimensional x(t), seja vetorial x(t). No que se segue, admite-se sempre, por generalidade, o caso multidimensional. No caso unidimensional, basta substituir os vetores e as matrizes por escalares nas expressões em que aparecem.
07 Cap. 07_Reyolando.indd 87
21/09/2015 12:49:52
88
Métodos numéricos e computacionais na prática de engenharias e ciências
7.1
Diferenças finitas
Seja a expansão em série de Taylor, a partir do valor da variável em um instante inicial ti, dada por: x(t i +1 ) = x(t i ) + h x (t i ) +
1 2 (t i ) + h x 2!
(7.1)
Pela convenção de Newton, se x(t) for o vetor deslocamento, por exemplo, um ponto sobre esse vetor representa a derivada primeira no tempo, formando o vetor de velocidade. Dois pontos sobre o vetor deslocamento representam a derivada segunda no tempo, o vetor de aceleração. O intervalo de tempo é h = t i +1 − t i, em segundos. É possível também escrever uma expansão em série de Taylor para trás, dada por: x(t i −1 ) = x(t i ) − h x (t i ) +
1 2 (t i ) − h x 2!
(7.2)
Subtraindo-se a Equação (7.2) da Equação (7.1), obtém-se uma aproximação do vetor de velocidade por diferenças finitas centrais: x (t i ) =
x(t i +1 ) − x(t i −1 ) 2h
(7.3)
Somando-se a Equação (7.2) e a Equação (7.1), obtém-se uma aproximação do vetor de aceleração por diferenças finitas centrais: (t i ) = x
x(t i +1 ) − 2x(t i ) + x(t i −1 ) h2
(7.4)
Uma aplicação imediata é a integração numérica das equações do movimento de um sistema mecânico linear, dada pela segunda lei de Newton: (t) = p(t) − Cx (t) − Kx(t) Mx
(7.5)
em que M é a matriz de massa, C a matriz de amortecimento, K a matriz de rigidez, constantes, e p o vetor de carregamento, variável no tempo. Substituindo-se na Equação (7.5) os vetores de velocidade e aceleração dados pelas Equações (7.3) e (7.4), em um instante ti, e coletando os termos, chega-se a: ˆ (t ) = pˆ (t ) Kx i +1 i
(7.6)
Trata-se de uma fórmula de recorrência pseudoestática que, a partir x(t i −1 ) e x(t i ) x(t i −1 ) e x(t i ) conhecidos, permite determinar x(t i +1 ) no instante seguinte, em que: K̂ =
1 1 M+ C 2 h 2h
07 Cap. 07_Reyolando.indd 88
(7.7)
21/09/2015 12:49:53
89
Equações diferenciais: problemas de valor inicial
O pseudovetor de carregamento no instante ti é: 1 2 1 pˆ (t i ) = p(t i ) + 2 M − K x(t i ) − 2 M − C x(t i −1 ) h h 2h
(7.8)
A adaptação da Equação (7.8) para um sistema com forças restauradoras não lineares é imediata, bastando substituir Kx(t i ) pela expressão fR (x i ) , que fornece essa força para o problema não linear em particular a ser analisado, como, por exemplo, um material de comportamento elastoplástico. Um problema para a implementação da Equação (7.8) é a necessidade do conhecimento de x(t i −1 ) e x(t i ) em cada ponto, o que não ocorre no primeiro passo, onde se conhecem apenas as condições inicias de deslocamento e velocidade x 0 e x 0 (uma equação diferencial de segunda ordem como essa necessita de duas condições iniciais). Uma possível estratégia para contornar esse empecilho é admitir que no primeiro passo tem-se um movimento uniformemente acelerado (t 1 ) = x 0, de onde, a partir da (MUA), isto é, a aceleração mantém-se constante, x Equação (7.5), tem-se: 0 = M −1 ( p 0 − Cx 0 − Kx 0 ) x
(7.9)
Escrevem-se, agora, as expressões de aceleração, velocidade e deslocamento para um MUA, ao final do primeiro intervalo de tempo h: (t 1 ) = x 0 x
0 h + x 0 x (t 1 ) = x
x(t 1 ) =
1 0 h 2 + x 0 h + x 0 x 2
(7.10)
Esse método da diferença central tem limitações de estabilidade, que depende da duração do passo de tempo h. Estabilidade, neste caso, quer dizer que com passos de tempo grosseiros a resposta pode divergir. Não deve ser confundida com precisão, que sempre melhora com passos de tempo mais curtos.
7.2
Método de Newmark
Outro método para a integração da Equação (7.5), originado da engenharia sísmica, foi elaborado pelo engenheiro civil norte-americano Nathan M. Newmark (19101981). Este método normalmente já vem implementado nos programas comerciais de elementos finitos destinados à solução de problemas estruturais dinâmicos. O problema é: dados os vetores de deslocamento, velocidade e aceleração (t i ), deve-se determinar esses conhecidos em um dado instante t, x(t i ), x (t i ) e x mesmos vetores no instante seguinte t i +1 = t i + h. Para tanto, admite-se que os vetores procurados possam ser escritos como uma combinação linear dos vetores conhecidos e do incremento de deslocamento do passo ∆x (desconhecido) na forma:
07 Cap. 07_Reyolando.indd 89
21/09/2015 12:49:54
90
Métodos numéricos e computacionais na prática de engenharias e ciências
x(t i +1 ) = x(t i ) + ∆x (t i ) x (t i +1 ) = b0 ∆x − b2 x (t i ) − b3 x
(7.11)
(t i +1 ) = b1 ∆x − b4 x (t i ) − b5 x (t i ) x Os coeficientes dessas combinações são escolhidos de forma a aproximar o melhor possível a variação desses vetores no intervalo de tempo do passo considerado. Na proposta original de Newmark, admite-se que a aceleração no intervalo permaneça constante e igual à média dos seus valores nas extremidades do passo de tempo adotado. Com essa suposição, os coeficientes valem: b0 =
2 h
b3 = 0
4 h2 4 b4 = h b1 =
b2 = 1
(7.12)
b5 = 1
Convida-se o leitor a derivar esses coeficientes a partir da hipótese feita de aceleração média constante no passo. É um exercício muito interessante. De qualquer forma, independentemente de como esses valores foram obtidos, substituem-se as aproximações na equação do movimento (7.5) no instante t i + h: (t i +1 ) + Cx (t i +1 ) + Kx(t i +1 ) = p(t i +1 ), Mx
(7.13)
Obtém-se um sistema de equações algébricas que resulta no valor dos incrementos de deslocamento no passo, na forma: Kˆ ∆x = pˆ (t i +1 )
(7.14)
define-se a rigidez equivalente como: K̂ = b0 M + b1C + K
(7.15)
e a carga pseudoestática equivalente do passo: (t i ) + (b5 M + b2 C)x (t i ) − Kx(t i ). pˆ (t i +1 ) = p(t i +1 ) + (b4 M + b3C)x
(7.16)
Resolvido o sistema de equações algébricas (7.14) e, portanto, determinados os acréscimos de deslocamento do passo, os novos valores de deslocamento, velocidade e aceleração estão determinados pelas aproximações adotadas de início nas Equações (7.11). Para inicialização do método, é necessária aplicação da Equação (7.9): 0 = M −1 ( p 0 − Cx 0 − Kx 0 ) . x
(7.17)
Também nesse método não é exigida a linearidade do sistema. Entretanto, se o sistema for linear, é possível provar que o método de Newmark, com a hipótese de aceleração média constante em cada intervalo de tempo, é incondicionalmente
07 Cap. 07_Reyolando.indd 90
21/09/2015 12:49:54
91
Equações diferenciais: problemas de valor inicial
estável, independentemente da duração do passo de integração. Estabilidade incondicional quer dizer que, mesmo com passos de tempo grosseiros, a resposta não diverge. Novamente, não deve ser confundida com precisão, que sempre melhora com passos de tempo mais curtos.
7.3
Métodos de Runge-Kutta
Para um sistema de n equações diferenciais ordinárias de primeira ordem, tem-se: x = f (x, t)
(7.18)
Trata-se, em primeiro lugar, de um dos mais antigos métodos de integração numérica elaborado pelo grande matemático e físico suíço, de língua alemã, Leonhard P. Euler (1707-1783). Pode ser encarado como a série de Taylor truncada: x(t i +1 ) = x(t i ) + h x (t i ) = x(t i ) + h f (x(t i ), t i )
(7.19)
Não é necessário nenhum esquema de inicialização, se são conhecidas as condições iniciais x0. O método de Euler pode ser considerado um caso particular da família de métodos de Runge-Kutta, dos matemáticos e físicos alemães Carl D. T. Runge (1856-1927) e Martin W. Kutta (1867-1944). O que difere um método de outro é o modo como é calculada a derivada que aparece no último termo do lado direito da Equação (7.19). O mais conhecido desses métodos é o de Runge-Kutta de quarta ordem. Nele, o intervalo de tempo h é dividido em duas partes iguais. A seguir, a Equação (7.18) é computada de quatro formas diferentes, em um dado instante tk: k 1 = f (x(t k ), t k ), k 2 = f (x(t k ) + 0.5k 1 , t k + 0.5h), k 3 = f (x(t k ) + 0.5k 2 , t k + 0.5h) e
(7.20)
k 4 = f (x(t k ) + k 3 , t k + h). e, finalmente: x(t k +1 ) = x(t k ) +
h ( k 1 + 2k 2 + 2k 3 + k 4 ) 6
(7.21)
A notação introduzida na Equação (7.18) é trabalhosa, e uma ideia melhor é fazer do tempo uma das variáveis de estado, por exemplo, x n+1 = t, cuja derivada temporal é x n +1 = f n +1 = 1, que resulta em um sistema de n + 1 equações diferenciais ordinárias de primeira ordem. Fazendo assim, as Equações (7.18), (7.19) e (7.20) ficam muito mais simples, pois f (x(t), t) passa a ser grafado simplesmente como f (x(t)).
07 Cap. 07_Reyolando.indd 91
21/09/2015 12:49:55
92
Métodos numéricos e computacionais na prática de engenharias e ciências
Aqui, não é necessário nenhum procedimento de inicialização, pois são conhecidas, apenas, as condições iniciais x0. A transformação de sistemas de equações de ordem superior a 1 para sistemas de equações de primeira ordem é demonstrada no exemplo de aplicação da seção 7.4.3.
7.4 Aplicações em engenharias e ciências 7.4.1
Movimento de um sistema mecânico linear
A Figura 7.1 é um modelo de um sistema vibratório linear amortecido de 3 graus T de liberdade, com deslocamentos das massas u = [ u1 u2 u3 ] . Os parâmetros adotados são: k1 = k4 = 10 N/m; k2 = k3 = 30 N/m; m1 = m2 = m3 = 1 kg. Admite-se uma carga harmônica aplicada à massa m2 , tal que p = [0 10 cos t 0] N , condições iniciais nulas e amortecimento tipo Rayleigh, proporcional às matrizes de massa e de rigidez.
u1 k1
u2 k2
m1
10 cost m2
u3 k3
k4 m3
Figura 7.1
A obtenção dessas matrizes para esse mesmo sistema foi feita no Capítulo 5, chegando a: m1 M = 0 0
0 m2
k1 + k2 K = −k2 0
0 1 0 0 0 = 0 1 0 kg m3 0 0 1 0 40 −30 0 − k2 k2 + k3 −k3 = −30 60 −30 N / m −k3 k3 + k4 0 −30 40
As frequências naturais de vibração livre não amortecida mínima e máxima foram, também, determinadas no Capítulo 5 e valem w1 = 2,53 rad/s e w 3 = 9,672 rad/s. A obtenção de uma matriz de amortecimento tipo Rayleigh pode ser feita, segundo Clough e Penzien (1993), pela expressão: C = a 0 M + a1 K
07 Cap. 07_Reyolando.indd 92
21/09/2015 12:49:55
93
Equações diferenciais: problemas de valor inicial
1 x1 1 w 1 x = 2 1 3 w 3
w1 a 0 a w3 1
Arbitrando-se taxas de amortecimento para esses modos x1 = x 3 = 5%, por exemplo, chega-se a: 1 2, 53 a 0, 2 a 0, 1 2, 53 0 ∴ 0 = 0, 1 = 1 a1 a1 0, 0082 , 9 672 9, 672 0 40 −30 0 0, 5284 −0, 2458 1 0 0 C = 0, 2 0 1 0 + 0, 0082 −30 60 −30 = −0, 2458 0, 6922 −0, 2458 0 0 0 1 −30 40 0 −0, 2458 0, 5284 Primeiramente, faz-se a integração do sistema de equações diferenciais pelo método da diferença central, com passo de integração h = 0,025 s. Da Equação (7.7), tem-se: 0 1621, 1 −9, 8 1 1 Kˆ = 2 M + C = −9, 8 1627, 7 −9, 8 2h h 0 −9, 8 1621, 1 e da Equação (7.8): 1 2 1 pˆ (t i ) = p(t i ) + 2 M − K x(t i ) − 2 M − C x(t i −1 ) h h 2h 0 9, 8 0 1578, 9 0 3160 30 1572, 3 9, 8 x(t i −1 ) = 10 cos t i + 30 3140 30 x(t i ) − 9, 8 0 0 0 30 3160 9, 8 1578, 91 Para inicialização do método, com condições iniciais nulas de deslocamento e velocidade, a aceleração inicial é: 1 0 0 0 0 0 = M ( p 0 − Cx 0 − Kx 0 ) = 0 1 0 10 cos 0 = 10 m / s 2 x 0 0 1 0 0 −1
e o deslocamento no passo seguinte ao inicial é:
07 Cap. 07_Reyolando.indd 93
21/09/2015 12:49:56
94
Métodos numéricos e computacionais na prática de engenharias e ciências
0 1 2 0 h + x 0 h + x 0 = 0, 003125 m x(t 1 ) = x 2 0 As Figuras 7.2 e 7.3, a seguir, mostram gráficos do deslocamento das massas da esquerda e central do sistema, respectivamente, ao longo dos primeiros 25 segundos.
1 0.8
Deslocamento x1 (m)
0.6 0.4 0.2 0 –0.2 –0.4 –0.6 –0.8 –1 0
5
10
15
20
25
15
20
25
Tempo (s)
Figura 7.2
1.5
Deslocamento x2 (m)
1 0.5 0 –0.5 –1 –1.5
0
5
10 Tempo (s)
Figura 7.3
07 Cap. 07_Reyolando.indd 94
21/09/2015 12:49:56
95
Equações diferenciais: problemas de valor inicial
A seguir, o mesmo problema é integrado pelo método de Newmark. Adotando um passo de h = 0,025 s, as constantes do método com aceleração média constante são: b0 =
2 = 80 h
b3 = 0
b1 =
4 = 6400 h2
b2 = 1
b4 =
4 = 160 h
b5 = 1
Para inicialização do método, com condições iniciais nulas de deslocamento e velocidade, a aceleração inicial é: 1 0 0 0 0 0 = M ( p 0 − Cx 0 − Kx 0 ) = 0 1 0 10 cos 0 = 10 m / s 2 x 0 0 1 0 0 −1
As Figuras 7.4 e 7.5, a seguir, mostram gráficos do deslocamento das massas da esquerda e central do sistema, respectivamente, ao longo dos primeiros 25 segundos.
1 0.8
Deslocamento x1 (m)
0.6 0.4 0.2 0 –0.2 –0.4 –0.6 –0.8 –1
0
5
10
15
20
25
Tempo (s)
Figura 7.4
07 Cap. 07_Reyolando.indd 95
21/09/2015 12:49:57
96
Métodos numéricos e computacionais na prática de engenharias e ciências 1.5
Deslocamento x2 (m)
1 0.5 0 –0.5 –1 –1.5
0
5
10
15
20
25
Tempo (s)
Figura 7.5
Essas figuras coincidem, visualmente, com as obtidas com o método da Diferença Central. 7.4.2
Meteorologia: o sistema de Lorenz
Na década de 1960, o matemático e meteorologista Edward N. Lorenz (1917-2008), então professor do Massachusetts Institute of Technology (MIT), propôs um modelo simplificado para predições meteorológicas na forma de um sistema de três equações diferenciais de primeira ordem: x = f (x) f1 (x) s ( − x1 + x 2 ) f (x) = f 2 (x) = x1 ( r − x 3 ) − x 2 f (x) − bx + x x 3 1 2 3 Com os recursos computacionais disponíveis, Lorenz executou uma série de simulações. Para determinados conjuntos de parâmetros, verificou que pequenas diferenças nas condições iniciais, apenas as diferenças dadas pela própria precisão interna da máquina usada, obtinha históricos de resposta que rapidamente se diferenciavam uns dos outros. A esse fenômeno denominou-se caos determinístico, que significa que, com um modelo matemático determinístico (sem aleatoriedade), é impossível fazer predições confiáveis à medida que o tempo passa, pois os históricos de resposta não se repetem a cada simulação feita. É de Lorenz a famosa imagem do efeito borboleta: o bater de asas de uma borboleta na Amazônia, ao mudar as condições iniciais do processo, pode causar um furacão nos Estados Unidos, que de outra forma não ocorreria.
07 Cap. 07_Reyolando.indd 96
21/09/2015 12:49:57
97
Equações diferenciais: problemas de valor inicial
Apresentam-se, a seguir, os resultados da simulação do sistema de Lorenz via método de Runge-Kutta, para os parâmetros s = 10, b = 8/ 3, r = 28, que sabidaT mente levam a comportamento caótico, com condições iniciais x 0 = [5 5 5] . Os resultados são apresentados nas Figuras 7.6, 7.7, 7.8 e 7.9.
20 15 10
x1
5 0 –5 –10 –15 –20
0
5
10 Tempo (s)
15
20
Figura 7.6
25 20 15 10
x2
5 0 –5 –10 –15 –20 –25 –20
–15
–10
–5
0
5
10
15
20
x1
Figura 7.7
07 Cap. 07_Reyolando.indd 97
21/09/2015 12:49:58
98
Métodos numéricos e computacionais na prática de engenharias e ciências 45 40 35
x3
30 25 20 15 10 5 –20
–15
–10
–5
0
5
10
15
20
x1
Figura 7.8
45 40 35
x3
30 25 20 15 10 5 –30
–20
–10
0
10
20
30
x2
Figura 7.9
7.4.3
Engenharia eletrônica: equação de Van der Pol
O físico holandês Balthasar van der Pol (1889-1959) modelou matematicamente um circuito de rádio não forçado na seguinte forma:
(
)
y − m y 1 − y 2 + y = 0
07 Cap. 07_Reyolando.indd 98
21/09/2015 12:49:58
99
Equações diferenciais: problemas de valor inicial
Verifica-se que, para m > 0 , a origem é instável e qualquer condição inicial não nula leva o sistema a um ciclo-limite estável, para o qual a resposta a todas as condições iniciais é atraída. Para utilização do método de Runge-Kutta, essa equação de segunda ordem é transformada em um sistema de equações de primeira ordem pela mudança de variáveis: x1 = y
x 2 = y
Assim: x2 x 1 x = f (x) = = 2 x 2 m x 2 1 − x1 − x1
(
)
Para uma condição inicial para x1 bem pequena, a resposta no tempo é dada pela Figura 7.10 e o plano de fase é apresentado na Figura 7.11, em que se verifica que a origem é instável e a resposta é atraída por um ciclo-limite estável.
2.5 2 1.5
Deslocamento y
1 0.5 0 –0.5 –1 –1.5 –2 –2.5
0
5
10
15
20
25
30
35
Tempo (s)
Figura 7.10
07 Cap. 07_Reyolando.indd 99
21/09/2015 12:49:58
100
Métodos numéricos e computacionais na prática de engenharias e ciências 4 3 2
Velocidade
1 0 –1 –2 –3 –4 –3
–2
–1
0 Deslocamento
1
2
3
Figura 7.11
07 Cap. 07_Reyolando.indd 100
21/09/2015 12:49:59
Capítulo
8
Integração numérica
O cálculo de integrais definidas é uma operação nem sempre de fácil execução. Em muitos casos, não há solução analítica para a integral indefinida correspondente. Historicamente, o cálculo de integrais definidas originou-se no problema clássico da quadratura, ou cálculo de áreas de certas figuras geométricas. O mais conhecido problema é o da quadratura do círculo, que consumiu uma quantidade enorme de tempo e inteligência de grandes matemáticos do passado e que nunca foi devidamente solucionado. Hoje, está provado que o número p, raiz de toda dificuldade, é irracional.
8.1
Fórmulas de Newton-Cotes
As fórmulas de Newton-Cotes são os esquemas de integração numérica mais usados. São baseados na substituição da função a ser integrada ou de uma coleção de valores tabelados, por um polinômio: b
b
a
a
I = ∫ f (x)dx ≅ ∫ f n (x)dx
(8.1)
em que: f n (x) = a0 + a1 x + + a n −1 x n −1 + a n x n
08 Cap. 08_Reyolando.indd 101
(8.2)
21/09/2015 12:50:21
102
Métodos numéricos e computacionais na prática de engenharias e ciências
8.1.1
Regra do trapézio
Um polinômio (8.2) de primeira ordem, uma reta, leva à conhecidíssima regra do trapézio. Para se definir univocamente uma reta, são necessários dois valores da função. A integral é basicamente a área do trapézio cuja altura é o intervalo de integração e cujas bases são os valores da função a ser integrada nos extremos do intervalo. Se a distância entre esses dois pontos é grande, o erro na estimativa do valor da integral pode ser inaceitável para uma função geral, não linear. Assim, o usual é a aplicação da regra do trapézio composta, em que o intervalo de integração é dividido em certo número de segmentos e a área de cada um dos trapézios parciais é somada para a obtenção da área procurada total. A regra do trapézio composta é muito usada para estimar integrais de séries de n valores discretos obtidos experimentalmente, com certo intervalo de amostragem h, geralmente constante: f f I = h 1 + f 2 + f 3 + + f n −1 + n 2 2
(8.3)
Um caso particular da regra do trapézio, mais grosseiro, é a regra do retângulo, em que o valor da função em cada segmento é considerado constante e igual a seu valor inicial ou final nesse segmento. 8.1.2 Regras de Simpson Polinômios (8.2) de segunda ordem, uma parábola, ou de maior ordem levam às também conhecidas regras de Simpson. Para se definir univocamente uma parábola, são necessários três valores da função; um polinômio de terceira ordem necessita de quatro pontos, e assim por diante. A regra de Simpson de 1/3 é derivada da parábola. Dados três valores de uma função e dois intervalos de comprimento h, tomados a partir de um ponto i, tem-se: I=h
f (x i ) + 4f (x i +1 ) + f (x i + 2 ) 6
(8.4)
Para séries de n valores discretos, obtidos experimentalmente, por exemplo, com certo intervalo de amostragem h, geralmente constante, tem-se: I=
h ( f 1 + 4 f 2 + 2 f 3 + 4 f 4 + 2 f 5 + + 2 f n − 2 + 4 f n −1 + f n ) 3
(8.5)
Note-se a ordem em que aparecem os pesos 1, 2 e 4. Está implícita a necessidade de séries com número de amostras n ímpar, ou intervalos h em número par. A regra de Simpson de 3/8 é derivada de um polinômio de terceira ordem. Dados quatro valores de uma função e três intervalos de comprimento h, a partir de um ponto i, tem-se:
08 Cap. 08_Reyolando.indd 102
21/09/2015 12:50:21
103
Integração numérica
I = 3h
f (x i ) + 3f (x i +1 ) + 3f (x i + 2 ) + f (x i + 3 ) 8
(8.6)
8.1.3 Regras de Newton-Cotes de ordem superior Não são fornecidas neste livro as fórmulas de Newton-Cotes derivadas de polinômios de ordem maior que três. Esses dados estão disponíveis em outras referências.
8.2 Quadratura de Gauss No uso das fórmulas tipo Newton-Cotes, os pontos amostrados da função a ser integrada são dados do problema conhecidos a priori. Na técnica da quadratura de Gauss, a ideia é determinar pontos internos no domínio da função que de alguma forma propiciem uma melhor aproximação do valor numérico da integral da função no domínio. O exemplo clássico da quadratura de Gauss-Legendre é a integração numérica de uma função f(x) em um domínio −1 ≤ x ≤ 1 usando o valor da função em apenas dois pontos internos do domínio, na forma: I ≅ c 0 f ( x 0 ) + c1 f ( x1 )
(8.7)
Há a condição de que esses pontos x0 e x1 selecionados e as constantes c 0 e c1 permitam integrar exatamente funções lineares, parabólicas e cúbicas. Essas quatro incógnitas são obtidas da solução do sistema não linear de quatro equações: 1
c0 + c1 = ∫ 1 dx = 2
(8.8)
−1
1
c0 x0 + c1 x1 = ∫ x dx = 0
(8.9)
−1 1
c0 x02 + c1 x12 = ∫ x 2 dx = 2 / 3
(8.10)
−1 1
c0 x03 + c1 x13 = ∫ x 3 dx = 0
(8.11)
−1
O sistema resulta em x0 = −1/ 3 e x1 = 1/ 3 e c0 = c1 = 1. Assim, basta somar o valor da função nesses dois pontos para se ter uma aproximação até a ordem cúbica da integral desejada. Como, no caso geral, o domínio real não é −1 ≤ x ≤ 1, é necessária uma mudança de variáveis. Assim, a variável original x no domínio original a ≤ x ≤ b é escrita em termos da variável xd no domínio −1 ≤ x d ≤ 1 pela relação: x=
08 Cap. 08_Reyolando.indd 103
(b + a ) + (b − a ) x d 2
(8.12)
21/09/2015 12:50:23
104
Métodos numéricos e computacionais na prática de engenharias e ciências
e dx =
b−a dx d 2
(8.13)
As constantes c 0 e c1 são chamadas pesos e as ordenadas x0 e x1 são os pontos de Gauss. Existe um elenco de outras fórmulas de quadratura de Gauss-Legendre. No caso geral: b
n
a
i =0
∫ f ( x) w(x) dx ≈ ∑ ci f ( xi )
(8.14)
em que w é uma função positiva de ponderação. Assumindo que a Equação (8.14) é exata para qualquer função polinomial de grau menor ou igual a n, os coeficientes de ponderação são dados por: b
n
a
j =0 j ≠i
c i = ∫ w ( x )∏
x − xj xi − x j
(8.15)
dx
Carl Friedrich Gauss (1777-1855) mostrou que é possível determinar esses coeficientes de forma que a aproximação para a integral seja exata para polinômios de grau inferior ou igual a 2n + 1, mas com apenas n avaliações da função f. Como exemplo, com três pontos, n = 2, tem-se: x0 = −1/ 3/ 5 , x1 = 0, x 2 = 1/ 3/ 5 e c0 = 5/ 9 , c1 = 8 / 9, c 3 = 5/ 9
8.3 Aplicações em engenharias e ciências 8.3.1 Cálculo do valor RMS de uma corrente alternada O valor eficaz de uma função periódica em um período T, ou RMS (root mean square) é: f RMS =
2 1 f (t ) dt ∫ TT
Dada a função f (t) = a sen Ωt , em que T =
2p a , o valor eficaz é f RMS = . Ω 2
2 = 0, 707107... 2 Empregando as fórmulas de Newton-Cotes, com dez intervalos, h = 0,2 s e T = 2 s. Dados a = 1, Ω = p rad/s, T = 2 s, f RMS =
Regra do trapézio: 0,707107. Regra de Simpson 1/3: 0,707107.
08 Cap. 08_Reyolando.indd 104
21/09/2015 12:50:24
105
Integração numérica
8.3.2 Frequência natural de vibração de viga
comprimida
A Figura 8.1 representa uma viga prismática biapoiada, de vão , sob carga axial de compressão P. Utilizando o método de Rayleigh, pretende-se obter a frequência de vibração livre não amortecida da viga em seu primeiro modo.
v = f(x)q(t)
q(t)
P
x l/2
l/2
Figura 8.1
Pelo método de Rayleigh, considera-se o deslocamento vertical de uma seção genérica da viga na forma: v(x, t) = f(x) q(t) em que f(x) é uma função de forma que satisfaz as condições de contorno nos apoios e vale 1 na seção central da viga, cujo deslocamento no tempo é q(t) . Neste p exemplo, adota-se a função de forma f ( x ) = sen x , que é a solução exata do problema sem a carga P. Suas derivadas em x são indicadas, a seguir, por linhas superpostas à direita. Aplicando o método, tem-se a rigidez elástica equivalente: 2
K0 = ∫ EI (f ′′ ) dx = 0
p 4 EI p 4 EI 2 p sen x dx = 4 ∫0 2 3
A rigidez geométrica equivalente é:
2
KG = P ∫ (f ′ ) dx = 0
Pp 2 Pp 2 2 p cos x dx = 2 ∫0 2
A massa equivalente é:
0
0
M = ∫ m f 2 dx = m∫ sen 2
p m x dx = 2
onde EI é o produto do módulo de elasticidade do material pelo momento de inércia da seção e m refere-se à massa por unidade de comprimento da viga. Finalmente, a frequência de vibração livre não amortecida (em rad/s) é dada por:
08 Cap. 08_Reyolando.indd 105
21/09/2015 12:50:25
106
Métodos numéricos e computacionais na prática de engenharias e ciências
K , M
w=
em que
K = K 0 + KG .
Para simplificar, adotam-se os seguintes valores numéricos: = 2 m, EI = 1000000 Nm², m = 30 kg/m e P = –1000000 N (compressão), resultando em K 0 = 6088047,62 N/m, KG = –2467396,93 N/m e M = 30 kg. Para comparação, as mesmas integrais da aplicação do método de Rayleigh a essa viga são obtidas numericamente com a quadratura de Gauss-Legendre de dois e cinco pontos. A relação entre as coordenadas da viga no domínio 0 ≤ x ≤ 2 e as coordenadas no domínio −1 ≤ x d ≤ 1 são: x = 1 + x d e dx = dx d n
Ko
KG
M
2
4623263,36
–3061052,63
22,78
5
6088047,62
–2467396,93
30
08 Cap. 08_Reyolando.indd 106
21/09/2015 12:50:25
Capítulo
9
Equações diferenciais: problemas de valor de contorno
Este capítulo trata dos chamados problemas de contorno, nos quais se tem uma equação diferencial válida em certo domínio e sujeita a determinadas condições em seu contorno; é um problema essencialmente estático. Os métodos numéricos utilizados neste capítulo são baseados em diferenças finitas para aproximação das derivadas constantes nas expressões das equações diferenciais e condições de contorno e no chamado método do “chute”. Admite-se sempre, por generalidade, o caso multidimensional. No caso unidimensional, basta substituir os vetores e as matrizes por escalares nas expressões em que aparecem.
9.1
Diferenças finitas
Considere-se uma função f(x) de um vetor de variáveis de estado x, com dimensão n: f ( x ) = f ( x1 , x n , , x n )
(9.1)
A expansão em série de Taylor à frente, a partir de um valor inicial x0 da va riável, é dada por:
09 Cap. 09_Reyolando.indd 107
21/09/2015 12:50:49
108
Métodos numéricos e computacionais na prática de engenharias e ciências
f (x) =
1 1 1 f (x 0 ) + C(x 0 ) t h + h t H(x 0 ) h + 0! 1! 2!
(9.2)
onde h = x − x0 Define-se o vetor gradiente (transposto): ∇f
T
T
∂f ∂x 2
∂f ∂x n
∂2f ∂x1 ∂x 2
∂2f ∂x1 ∂x n ∂2f ∂x 2 ∂x n ∂2f ∂x n ∂x n
∂f =C = ∂x1 T
(9.3)
e a matriz hessiana: ∂2f ∂ x1 ∂ x1 ∂2f H = ∂x 2 ∂x 1 ∂2f ∂x n ∂x1
∂2f ∂x 2 ∂x 2 ∂2f ∂x n ∂x 2
(9.4)
É possível também escrever uma expansão em série de Taylor para trás, dada por: f (x) =
1 1 1 f (x 0 ) − C t (x 0 ) h + h t H(x 0 ) h − 0! 1! 2!
(9.5)
A partir das expansões (9.2) e (9.5), é possível derivar expressões aproximadas de diferenças finitas para as derivadas de várias ordens da função, calculadas em um ponto xi, em função do valor da função nesse ponto e em pontos anteriores e posteriores, separados pela distância h = x − x 0. Por exemplo, para uma função de uma única variável, as aproximações de diferenças finitas centrais para as derivadas (totais) primeira, segunda e quarta em um ponto i são: f (x i +1 ) − f (x i −1 ) df = 2h dx i
(9.6)
d 2f f (x i +1 ) − 2 f (x i ) + f (x i −1 ) dx 2 = h2 i
(9.7)
09 Cap. 09_Reyolando.indd 108
21/09/2015 12:50:50
109
Equações diferenciais: problemas de valor de contorno
d 4f f (x i + 2 ) − 4f (x i +1 ) + 6 f (x i ) − 4f (x i −1 ) + f (x i − 2 ) dx 4 = h4 i
(9.8)
Em um domínio bidimensional, x, y, as derivadas (parciais) de várias ordens de uma função f (x, y) podem ser aproximadas por diferenças finitas centrais, como a seguir, em que j é o número da linha e i o da coluna:
9.2
f (x i +1 , y j ) − f (x i −1 , y j ) ∂f = 2hx ∂x j , i
(9.9)
f (x i +1 , y j ) − 2 f (x i , y j ) + f (x i −1 , y j ) ∂2f ∂x 2 = hx2 j ,i
(9.10)
f (x i , y j +1 ) − f (x i , y j −1 ) ∂f ∂y = 2hy j ,i
(9.11)
f (x i , y j +1 ) − 2 f (x i , y j ) + f (x i , y j −1 ) ∂2f ∂y 2 = hy2 j ,i
(9.12)
f (x i + 2 , y j ) − 4f (x i +1 , y j ) + 6 f (x i , y j ) − 4f (x i −1 , y j ) + f (x i −2 , y j ) ∂4f = 4 ∂x hx4 j ,i
(9.13)
f (x i , y j + 2 ) − 4f (x i , y j +1 ) + 6 f (x i , y j ) − 4f (x i , y j −1 ) + f (x i , y j − 2 ) ∂4f ∂y 4 = hy4 j ,i
(9.14)
Método do “chute”
Este método é baseado na conversão do problema de valor de contorno em um problema equivalente de condições iniciais. Uma abordagem de tentativa e erro é implementada para a solução do problema equivalente de condições iniciais que satisfaz as condições de contorno dadas. Embora possa ser aplicado a equações de qualquer ordem, e mesmo não lineares, pode ser mais bem ilustrado por uma equação diferencial ordinária de segunda ordem, como o problema de condução estacionária de calor em uma barra delgada. Suas extremidades são mantidas a temperaturas constantes e seu corpo troca calor convectivamente com o meio. Os parâmetros são a área da seção transversal A, a condutividade do material K, o perímetro P, o coeficiente da transferência convectiva h e a temperatura ambiente T∞ . Neste caso, o conjunto de equações que descrevem o problema é este:
09 Cap. 09_Reyolando.indd 109
21/09/2015 12:50:51
110
Métodos numéricos e computacionais na prática de engenharias e ciências
d 2T (x) − Ph ⋅ (T (x) − T∞ ) = 0 p / ≤ x ≤ 1 dx 2 T (0) = TA p / x = 0 e T (l ) = TB x=l p/ AK ⋅
Simplificando um pouco para fins de apresentação, tem-se: d 2T − h′ (T − T∞ ) = 0 dx 2 Converte-se esse problema de condições de contorno em um problema de valor inicial definindo a taxa de variação da temperatura, ou gradiente: dT =z dx e dz = h′(T − T∞ ) dx constituem um par de EDOs de primeira ordem, em vez da equação diferencial de segunda ordem original. Tem-se a condição inicial T = TA , mas o valor inicial da outra variável tem de ser estimado como z A1. Com esse chute, integram-se as equações usando um dos métodos para integração de EDOs já apresentadas no Capítulo 7 e obtém-se um valor na outra extremidade T B1 que, em geral, não é o valor correto que a temperatura deve ter no final da barra. Outra tentativa z A2 pode resultar em outro valor T B2. Um chute melhor, e final, pode ser dado por uma interpolação linear: z A = z A1 +
z A2 − z A1 (TB − TB1 ) TB2 − TB1
O problema apresentado possui condições de contorno fixas ou de Dirichilet. Outra possibilidade são as condições de contorno em que derivadas são prescritas, ditas condições de contorno de Neumann. Nesse mesmo problema da condução de calor, suponha-se que, em vez de estipular um valor de temperatura no início da barra, seja admitido que a área dessa extremidade esteja sujeita a convecção, que pode ser expressa especificando um gradiente de temperatura nessa extremidade. Em regime permanente, a convecção iguala a condução na extremidade inicial. Pela lei de Fourier, tem-se: hA(T∞ − T( x = 0) ) = −kA
dT (0) dx
levando a: zA =
dT h (0) = (T( x = 0) − T∞ ) dx k
09 Cap. 09_Reyolando.indd 110
21/09/2015 12:50:52
111
Equações diferenciais: problemas de valor de contorno
O método do chute, nesse caso, é implementado fazendo uma estimativa para a temperatura no início da barra (desconhecida) e obtendo-se o correspondente gradiente de temperatura nesse início da barra e, em consequência, o chute inicial z A1. Daí em diante, o processo é o mesmo. Embora exemplificado para uma equação diferencial linear, o método é aplicável a equações diferenciais não lineares.
9.3 Aplicações em engenharias e ciências 9.3.1
Viga sobre base elástica
A Figura 9.1, a seguir, é um modelo de uma viga prismática biarticulada sobre base elástica, com vão L = 1, submetida a carga uniformemente distribuída. O equilíbrio de forças verticais de um segmento de comprimento dx é: dV = kv − p dx
(9.15)
onde v = v(x) é o deslocamento vertical do eixo da viga, k refere-se à rigidez da base elástica (em N/m²) e p diz respeito a carga distribuída uniforme (em N/m).
L x
p(N/m) v
Figura 9.1
O equilíbrio de momentos do mesmo segmento infinitesimal é: dM =V dx
(9.16)
de onde se tem: d 2M = kv − p dx 2
(9.17)
A equação diferencial da linha elástica de Euler é: EI
d 2v = −M dz 2
09 Cap. 09_Reyolando.indd 111
(9.18)
21/09/2015 12:50:52
112
Métodos numéricos e computacionais na prática de engenharias e ciências
onde E é o módulo de elasticidade do material e I o momento de inércia da seção transversal da viga. Portanto, a equação diferencial que rege o problema é: EI
d 4v + kv = p dx 4
(9.19)
que está sujeita às condições de contorno: d 2v =0 dx 2
(9.20)
sobre os apoios articulados, onde o momento fletor é nulo, além de deslocamentos verticais nulos. Essas são as quatro condições de contorno de uma equação diferencial de quarta ordem. Para simplificação dos cálculos neste exemplo, faz-se numericamente k = p = EI, levando a: d 4v +v=1 dx 4
(9.21)
Impõe-se, agora, a equação diferencial (9.21), aproximada por diferenças finitas centrais, nos pontos que dividem a viga em 4 tramos, h = L/4 = 1/4. Dada a simetria do problema, é apenas necessário equacionar dois pontos: P1 no quarto e P2 no meio da viga. Para impor as condições de contorno no apoio, P0, é preciso a criação de um ponto fictício P–1 anterior a ele. • Ponto 0: Para condição de contorno em derivada segunda, Equação (9.20): 1 [v−1 − 2v0 + v1 ] = 0 h2 Como, pela outra condição, v0 = v 4 = 0 , tem-se que v −1 = − v1 . • Ponto 1: Equação (9.21): 1 [v−1 − 4v0 + 6v1 − 4v2 + v3 ] + v1 = 1 h4 • Ponto 2: 1 [v0 − 4v1 + 6v2 − 4v3 + v4 ] + v2 = 1 h4 Tem-se, assim, um sistema de duas equações lineares: 1537 −1024 v1 1 −2048 1537 v = 1 2 Resultando em v1 = 0, 00965 e v2 = 0, 01352 .
09 Cap. 09_Reyolando.indd 112
21/09/2015 12:50:54
113
Equações diferenciais: problemas de valor de contorno
9.3.2 Torção de Prandtl Da teoria da elasticidade, sabe-se que as tensões de cisalhamento atuantes na seção transversal de barras prismáticas sob torção pura podem ser obtidas a partir da função de tensão de Prandtl, Φ ( x, y ) , tal que: t zx =
∂Φ ∂y
e
t zy = −
∂Φ ∂x
(9.22)
obedecendo a equação diferencial de segunda ordem: ∇ 2 Φ = −2Ga
∂ 2Φ ∂ 2Φ + = −2Ga ∂x 2 ∂y 2
ou
(9.23)
também conhecida como equação de Poisson, em que G é o módulo de elasticidade transversal do material e a é o ângulo de torção unitário (constante ao longo do eixo da barra), com a condição de contorno Φ = constante no perímetro da seção. Essa constante é, normalmente, considerada nula. A Figura 9.2, a seguir, mostra a seção transversal quadrada de uma barra prismática, com lados iguais a 2a, submetida a torção pura dada por um torque T. São determinadas as tensões de cisalhamento atuantes na seção resolvendo o problema de contorno de Prandtl via diferenças finitas, discretizando a seção com uma malha 4 × 4, com h = hx = hy = a / 2.
z
y
T a/2
1,1
a/2 y
x
0,1
0,0
x
a/2 a/2 a/2
a/2
a/2
a/2
T
Figura 9.2
Dadas as simetrias do problema, é necessário escrever a equação diferencial, em forma de diferenças finitas, apenas nos três pontos indicados a seguir.
09 Cap. 09_Reyolando.indd 113
21/09/2015 12:50:55
114
Métodos numéricos e computacionais na prática de engenharias e ciências
• Ponto (0,0): Φ 0,1 − 2Φ 0,0 + Φ 0, −1 + Φ 1,0 − 2Φ 0,0 + Φ −1,0 = − 4Φ 0,1 − 4Φ 0,0 = −
Ga a 2 2
Ga a 2 2
• Ponto (0,1): Φ 0,2 − 2Φ 0,1 + Φ 0,0 + Φ 1,1 − 2Φ 0,1 + Φ −1,1 = − −4Φ 0,1 + Φ 0,0 + 2Φ 1,1 = −
Ga a 2 2
Ga a 2 2
• Ponto (1,1): Φ 1,2 − 2Φ 1,1 + Φ 1,0 + Φ 2,1 − 2Φ 1,1 + Φ 0,1 = − −4Φ 1,1 + 2Φ 0,1 = −
Ga a 2 2
Ga a 2 2
O sistema algébrico linear resultante é: 4 −4 0 Φ 0,1 1 2 −4 1 2 Φ = − Ga a 1 0 ,0 2 2 0 −4 Φ 1,1 1 cuja solução é: Φ 0,1 0, 4375 2 Φ 0,0 = Ga a 0, 5625 Φ 0, 3437 1,1 Com esses valores da função de tensão de Prandtl, é possível, agora, determinar as tensões de cisalhamento. O melhor método é interpolar um polinômio de segundo grau que passe pelos valores da função determinados nos pontos escolhidos e no valor nulo no contorno. Segundo a Equação (9.21), a derivada desse polinômio dá o valor da tensão nesses pontos. Como se sabe da teoria da elasticidade, as tensões máximas ocorrem no perímetro da seção, nos pontos mais próximos do eixo. 9.3.3 Condução de calor Neste exemplo, considera-se a um problema de condução estacionária de calor em uma barra delgada de comprimento l. Suas extremidades são mantidas a
09 Cap. 09_Reyolando.indd 114
21/09/2015 12:50:55
115
Equações diferenciais: problemas de valor de contorno
temperaturas constantes TA e T B e seu corpo troca calor convectivamente com o meio. Os parâmetros são a área da seção transversal A, a condutividade do material K, o perímetro P, o coeficiente da transferência convectiva h e a temperatura ambiente T• . Neste caso o conjunto de equações que descrevem o problema é: d 2T (x) − Ph (T (x) − T∞ ) = 0 p / 0 < x < l dx 2 T (0) = TA p / x = 0 e T (l ) = TB p/ x=l AK
Para obter-se a solução por diferenças finitas realiza-se inicialmente uma partição regular na região em que se está estudando a condução de calor, formado por um conjunto discreto de pontos ou nós xi, e não como um domínio contínuo. A cada nó xi podem ser associados os valores Ti = T(xi) da função T(x) que representa a distribuição da temperatura ao longo da barra. Se os outros parâmetros do problema variarem ao longo da barra, da mesma forma podem ser associados os valores nodais Ai = A(xi), Ki = K(xi), Pi = P(xi) e hi = h(xi). A numeração dos nós começa em 0 na extremidade inicial da barra e termina em n na extremidade final, resultando em n trechos de comprimento ∆. O próximo passo consistirá em reescrever todas as equações do problema em termos dos parâmetros nodais. Uma das maneiras de se realizar a discretização, no caso de problemas de 2a ordem, correspondente ao método das diferenças finitas, consiste em tomar três pontos consecutivos da função incógnita, neste caso da temperatura T(x) T − Ti −1 dT ≅ i +1 2∆ dx i
d 2T Ti −1 − 2 ⋅ Ti + Ti +1 ≅ ∆2 dx 2
Voltando à equação diferencial que se vai satisfazer de forma aproximada somente nos nós internos do domínio, obtém-se: Ai K i
d 2T − Pi hi (T (x) − T∞ ) i = 0 dx 2 i
i = 1, 2,...n − 1
Substituindo-se os operadores já deduzidos, obtém-se a equação em diferenças correspondente à equação diferencial do problema T − 2 ⋅ Ti + Ti +1 Ai K i i −1 − Pi hi (Ti − T∞ ) = 0 ∆2
i = 1, 2,..., n − 1
Reagrupando convenientemente os termos, para cada valor de i tem-se Ai ki AK 2A K Ti −1 − i2 i + Pi hi Ti + i 2 i Ti +1 = − Pi hi T∞ 2 ∆ ∆ ∆
09 Cap. 09_Reyolando.indd 115
21/09/2015 12:50:56
116
Métodos numéricos e computacionais na prática de engenharias e ciências
Como Ai, Ki, Pi, hi, D e T• são parâmetros conhecidos, a expressão acima representa um conjunto de equações. No domínio tem-se: i =1
a 1 ⋅ T0 − b 1 ⋅ T1 + a 1 ⋅ T2 = − P1h1T∞
i=2
a 2 ⋅ T1 − b 2 ⋅ T2 + a 2 ⋅ T3 = − P2 h2T∞
i = n −1
a n −1 ⋅ Tn − 2 − b n −1 ⋅ Tn −1 + a n −1 ⋅ Tn = − Pn −1hn −1T∞
onde os coeficientes ai e bi são calculados pelas expressões: ai =
Ai K i ; ∆2
bi =
2 Ai K i + Pi hi ∆2
Tem-se, portanto, n – 1 equações (i = 1,...,n – 1). As equações que faltam para completar o sistema são justamente as condições de contorno que, expressas em função das temperaturas nodais, são T0 = TA e Tn = T B. Assim o sistema de equações completo, escrito matricialmente, tem forma: AT = B 1 a 1 0 0 0
0 −b1 a2
0 a1 −b 2
0 0 a2
0 0
0 0
0 0
0 0 0
a n −1 0
0 0 0 − b n −1 0
0 T0 TA − P1h1T∞ 0 T1 0 T2 − P2 h2T∞ = −P h T a n −1 Tn −1 n −1 n −1 ∞ 1 Tn TB
Este sistema pode ser resolvido numericamente, uma vez que tanto a matriz dos coeficientes como o vetor de termos independentes são conhecidos. O problema proposto essencialmente se reduz a resolução de sistemas lineares. Note-se que a matriz A do sistema linear de equações algébricas obtido pela aplicação do método de diferenças finitas é tridiagonal (matriz esparsa). Ou seja, apenas os elementos da diagonal principal e da diagonal superior e inferior à diagonal principal são diferentes de zero. Isto é uma característica das matrizes geradas pelo método de diferenças finitas. Esta característica deve ser explorada na hora de resolver o sistema de equações linear algébricas porque, entre outras coisas, reduz o uso de memória para armazenar a matriz do sistema. Note-se que a matriz é tridiagonal porque foram usadas formulas de diferenças finitas com no máximo três pontos. Se fossem usadas formulas de diferenças finitas com um número maior de pontos, mais diagonais seriam diferentes de zero. Entretanto a matriz continua sendo esparsa.
09 Cap. 09_Reyolando.indd 116
21/09/2015 12:50:56
Capítulo
10
Método dos elementos finitos: introdução
O objetivo deste capítulo é apresentar os fundamentos gerais da aplicação do Método dos Elementos Finitos (MEF) para a solução numérica de equações diferenciais. Para isso, são utilizados, como no Capítulo 9, os problemas de valor de contorno (PVC). Por simplicidade, toda a estrutura da aproximação numérica via MEF é desenvolvida para as equações diferenciais ordinárias (problemas unidimensionais). Assim, inicialmente, o PVC unidimensional é apresentado em sua forma “forte”. Posteriormente, apresenta-se a forma variacional (que envolve equações integrais) do PVC e sua forma dita “fraca”. Essa forma “fraca” do PVC é necessária para a aplicação do MEF. Mais informações sobre o assunto podem ser encontradas nas referências bibliográficas deste livro, em particular Bathe (2006), Oden e Reddy (2011), Reddy (2006) e Zienkiewicz (2005).
10.1
Forma forte: equações diferenciais ordinárias e problemas de valor de contorno (PVC)
Considere x um domínio unidimensional e u(x) uma função nesse domínio. Um PVC, no caso de problemas unidimensionais, consiste em determinar a função
10 Cap. 10_Reyolando.indd 117
21/09/2015 12:51:22
118
Métodos numéricos e computacionais na prática de engenharias e ciências
solução u(x), que satisfaz determinada equação diferencial ordinária em x, conhe cendo-se, explicitamente, valores da função u(x) ou de suas derivadas, no contorno de x. Para facilitar a exposição, escolheu-se um PVC da seguinte forma: dados q, P, L, E e A, determinar u(x), tal que: q du 2 + =0 2 dx E⋅ A
0≤ x≤L
(10.1)
u (0) = 0 (condição de contorno essencial – Dirischlet)
(10.2)
u′ (L) =
em
P (condição de contorno natural – Neuman) E⋅ A
(10.3)
As Equações (10.1), (10.2) e (10.3) caracterizam a forma forte do PVC exposto. Além de satisfazer as condições de contorno (Equações (10.2) e (10.3)) a fun ção solução u(x) deve, obrigatoriamente, para o exemplo, ser contínua até sua segunda derivada (ver Equação (10.1)). O termo “forma forte” decorre da característica de que a Equação (10.1) deve ser satisfeita para todo o domínio de x definido, ou seja, 0 ≤ x ≤ L. Já na forma variacional “fraca” essa exigência não é mantida, uma vez que, como mostrado a seguir, a Equação (10.1) deve ser satisfeita em um sentido de média ponderada.
10.2 Formulação variacional fraca: método dos resíduos ponderados e método de Galerkin Os métodos de resíduos ponderados constituem-se em um conjunto de metodologias que se aplicam à resolução aproximada de um PVC expresso em forma variacional (forma integral). Aqui, neste capítulo, será destacada exclusivamente uma única metodologia – o método de Galerkin, pois a técnica de Elementos Finitos, que será desenvolvida posteriormente, é justamente aplicada ao método de Galerkin. A forma variacional do PVC (definido anteriormente nas Equações (10.1), (10.2) e (10.3)) escrita na “forma fraca” é estabelecida a partir de uma solução aproximada u ( x ) . Quando se define u ( x ) , tem-se que a Equação (10.1) já não é identicamente igual a zero em todo o domínio x estabelecido e uma função “resíduo” R ( x ) aparece, ver Equação (10.4). R ( x) =
d 2 ( u ( x )) dx
2
+
q E⋅ A
(10.4)
O objetivo agora é fazer com que a função resíduo R(x) seja a menor possível, em um sentido de média ponderada. Assim, em vez de tentar aplicar a nulidade
10 Cap. 10_Reyolando.indd 118
21/09/2015 12:51:24
119
Método dos elementos finitos: introdução
da função R(x) em todos os pontos do domínio x, propõe-se a nulidade dessa função em um sentido médio, como mostra a Equação (10.5). L
∫ R ( x) w(x)dx = 0
(10.5)
0
onde w ( x ) é uma função de ponderação que deve ser homogênea nas condições de contorno essenciais do PVC abordado (no problema-modelo em questão, w (0) = 0 ). Essa ponderação sobre a função R(x), obtida da aproximação da solução de uma equação diferencial, não é a única forma de gerar a forma variacional fraca. Nos desenvolvimentos abordados na seção 3.4 “Aplicações em engenharias e ciên cias” isso fica claro. A forma de construção da função peso w(x) define uma metodologia específica do método de resíduos ponderados. Utiliza-se aqui o método de Galerkin. Propõe-se, explicitamente, uma solução aproximada, que obrigatoriamente deve atender a condição de contorno essencial – Equação (10.2) –, para a Equação (10.1) definida por: n
u ( x ) = ∑ a ifi ( x )
com
i = 1,..., n
(10.6)
i =1
as n funções fi ( x ) compõem um conjunto linearmente independente (base) com regularidade compatível com a exigida para u ( x ) na forma variacional fraca, e os n coeficientes ai são constantes que garantem a boa proximidade da aproximação em relação à função solução e serão determinados via o método de resíduos ponderados – Galerkin. Vale lembrar que as funções fi ( x ) e os coeficientes ai são tais que u ( x ) deva satisfazer as condições de contorno essenciais. Mesmo que a soma na Equação (10.6) indique infinitos termos, operacionalmente emprega-se um número finito de termos para definir a aproximação u ( x ). Assim, tem-se que a solução aproximada u ( x ) pertence a um espaço de dimensão finita. Obviamente, a precisão da aproximação u ( x ) depende da escolha de fi ( x ) e da quantidade de termos na combinação linear. Reescrevendo a Equação (10.6), considerando um número finito de termos, tem-se: u ( x ) = a ifi ( x )
com
i = 1,..., n
(10.7)
O método de resíduos ponderados estabelece que os coeficientes a i da Equação (10.7) sejam determinados via Equação (10.5). Dessa forma, com a consideração do R(x) definido na Equação (10.4), escreve-se: d 2 ( u ( x )) q ∫0 dx2 + E ⋅ A w(x)dx = 0 L
10 Cap. 10_Reyolando.indd 119
(10.8)
21/09/2015 12:51:25
120
Métodos numéricos e computacionais na prática de engenharias e ciências
O método de Galerkin propõe que a função peso w(x), no espaço de dimen ( x ), seja construída por uma combinação linearmente independente são finita w com as mesmas n funções utilizadas para definir a aproximação u ( x ). Assim: ( x ) = b jf j w
com
j = 1,..., n
(10.9)
onde bj são os n coeficientes constantes. Substituindo a Equação (10.9) na Equação (10.8), tem-se: d 2 ( u ( x )) q ∫0 dx2 + E ⋅ A fj dx = 0 L
L d 2 ( u ( x )) q + b j ∫ fj dx = 0 2 E ⋅ A 0 dx
j = 1,..., n
com
(10.10)
A Equação (10.10) representa uma somatória finita de n parcelas com coeficientes bj quaisquer. Dada a arbitrariedade dos coeficientes b j, a nulidade da Equação (10.10) fica garantida se cada integral constante da somatória se anular independentemente, ou seja: d 2 ( u ( x )) q + fj dx = 0 ∫0 dx2 E ⋅ A L
com
j = 1,..., n
(10.11)
O objetivo agora é estabelecer uma forma de reduzir a ordem de diferenciação de u ( x ) para que se possa definir a “forma variacional fraca”. Assim, apresenta-se a Equação (10.11) como: L
∫ E⋅ A
d 2 ( u ( x )) dx
0
2
L
fj dx + ∫ qfj dx = 0 0
j = 1,..., n
com
(10.12)
Aplicando-se uma integração por partes no primeiro termo da Equação (10.12), tem-se: E⋅ A
d ( u ( x )) dx
L L
− ∫ E⋅ A
fj
0
0
( ) dx +
d ( u ( x )) d fj dx
dx
L
∫ qf dx = 0 com j = 1,..., n (10.13) 0
j
( x) Da Equação (10.3) (condição de contorno natural) e como fj (0) = 0 ( w deve ser homogênea nas condições de contorno essenciais do PVC abordado; (0) = 0 e, consequentemente, fj (0) = 0), a Equação (10.13) é modificada para: w
10 Cap. 10_Reyolando.indd 120
21/09/2015 12:51:26
121
Método dos elementos finitos: introdução
E⋅ A E⋅ A
d ( u ( L)) dx
L
fj ( L ) − ∫ E ⋅ A
( ) dx +
d ( u ( x )) d fj dx
0
dx
( )
L
∫ qf dx = 0 0
j
d ( u ( x )) d fj L L P fj ( L ) − ∫ E ⋅ A dx + ∫ qfj dx = 0 0 0 E⋅ A dx dx L
Pfj ( L) − ∫ E ⋅ A
dx
0
L
∫ E⋅ A
( ) dx +
d ( u ( x )) d fj
( ) dx =
d ( u ( x )) d fj dx
0
dx
dx
com j = 1,..., n
L
∫ qf dx = 0
(10.14)
j
0
L
∫ qf dx + Pf (L) j
0
j
A condição de contorno representada na Equação (10.3) é denominada natural porque aparece “naturalmente” quando da determinação da forma variacional fraca de um dado PVC. Considerando a aproximação para u ( x ), definida na Equação (10.7), pode-se escrever a última expressão da Equação (10.14) como: L
∫ E⋅ A
( ) ( ) dx =
d a ifi d fj dx
0
dx
L
∫ qf dx + Pf (L) 0
j
j
( ) ( )
L d fi d fj L a i ∫ E ⋅ A dx = ∫ qfj dx + Pfj ( L) dx dx 0 0
com
i, j = 1,..., n
(10.15)
Em termos gerais, a forma variacional fraca dada na Equação (10.15) pode ter a seguinte apresentação:
(
)
( ) ∀f
B fi , fj = F fj
j
com
i, j = 1,..., n
(10.16)
onde
( ) ( )
L d fi d fj B fi , fj = a i ∫ E ⋅ A dx dx dx 0
(
( )
)
L
F fj = ∫ qfj dx + Pfj ( L) 0
(
)
(10.17)
(10.18)
( )
As formas B fi , fj e F fj são, respectivamente, bilinear e linear. Chama-se forma linear em um espaço vetorial V toda aplicação F que a cada vetor w de V associa um único número real F(w), de modo que:
10 Cap. 10_Reyolando.indd 121
21/09/2015 12:51:26
122
Métodos numéricos e computacionais na prática de engenharias e ciências
F ( w1 + w2 ) = F ( w1 ) + F (w2 )
(10.19)
F (d w ) = d F ( w )
(10.20)
F (d w1 + l w2 ) = d F ( w1 ) + l F ( w2 )
(10.21)
Pode-se verificar, por exemplo, que a função f ( x ) = 3x é uma forma linear sobre x. Por outro lado, sendo V um espaço vetorial, diz-se que a aplicação B é uma forma bilinear se a cada par de vetores de V essa aplicação associa um único número real B ( u, w ) satisfazendo as seguintes condições: B ( u, w1 + w2 ) = B ( u, w1 ) + B ( u, w2 )
(10.22)
B ( u1 + u2 , w ) = B ( u1 , w ) + B ( u2 , w )
(10.23)
B (d u, w ) = d B ( u, w )
(10.24)
B ( u, lw ) = lB ( u, w )
(10.25)
Como exemplo, pode-se verificar que a função f ( x, y ) = xy é uma forma bilinear em x e y. Voltando a apresentação da forma fraca dada na Equação (10.15), pode-se definir: L
Kij = ∫ E ⋅ A 0
( ) ( ) dx com i, j = 1,..., n
d fi d fj dx
L
dx
Fj = ∫ qfj dx + Pfj ( L) 0
com
i, j = 1,..., n
(10.26) (10.27)
Dessa forma, chega-se à expressão indicial para o sistema que permite determinar os coeficientes ai: a i Kij = Fj
com
i, j = 1,..., n
(10.28)
Finalmente, as n equações dadas na Equação (10.28) podem ser representadas matricialmente reunindo-se os coeficientes ai em um vetor coluna a (dimensão n × 1), os Fj reúnem-se em um outro vetor coluna f (dimensão n × 1) e os Kij são reunidos nas posições de linha i e coluna j de uma matriz K (dimensão n × n), assim: KT a = f
(10.29)
Observando a Equação (10.26), tem-se que K é simétrica, já que Kij = K ji , então: Ka = f
10 Cap. 10_Reyolando.indd 122
(10.30)
21/09/2015 12:51:28
123
Método dos elementos finitos: introdução
Como exemplo de aplicação do método de Galerkin no PVC modelo, ver as Equações (10.1), (10.2) e (10.3), considerando a seguinte aproximação para u ( x ): u ( x ) = a 1 + a 2 x + a 3 x 2
(10.31)
A aproximação u ( x ) dada na Equação (10.31) deve obrigatoriamente satisfazer a condição de contorno essencial do problema (Equação (10.2)), assim: u (0) = 0
(10.32)
0 = a1 + a 2 ⋅ 0 + a 3 ⋅ 0 ⇒ a1 = 0 A Equação (10.32) assume a seguinte forma: u ( x ) = a 2 x + a 3 x 2
(10.33)
Observando a Equação (10.33), têm-se duas (n = 2) funções fi ( x ), com i = 1, 2, de aproximação definidas: f1 ( x ) = x
(10.34)
f2 ( x ) = x 2
(10.35)
As funções f1 ( x ) e f2 ( x ) são homogêneas na condição de contorno essencial do PVC modelo (Equação(10.2)), também compatível com a regularidade exigida na Equação (10.26). Analisando as Equações (10.26) e (10.27), é necessário derivar as funções para compor o sistema de equações dado na Equação (10.30), então: f1′ ( x ) = 1
(10.36)
f ′2 ( x ) = 2 x
(10.37)
Substituindo as Equações (10.36) e (10.37) na Equação (10.26), todas as K11 K12 entradas da matriz K 2 x 2 = são determinadas: K 21 K 22
(
L
)(
)
(
)(
)(
)
L
K11 = ∫ E ⋅ A ⋅ f1′ ( x ) ⋅ f1′ ( x ) dx = ∫ E ⋅ A ⋅ 1 ⋅ 1dx = EAL 0
L
0
)
L
K12 = K 21 = ∫ E ⋅ A ⋅ f1′ ( x ) ⋅ f2′ ( x ) dx = ∫ E ⋅ A ⋅ 1 ⋅ 2 xdx = EAL2 0
L
(
0
L
K 22 = ∫ E ⋅ A ⋅ f2′ ( x ) ⋅ f2′ ( x ) dx = ∫ E ⋅ A ⋅ 2 x ⋅ 2 xdx = 0
10 Cap. 10_Reyolando.indd 123
0
4 EAL3 3
(10.38) (10.39) (10.40)
21/09/2015 12:51:29
124
Métodos numéricos e computacionais na prática de engenharias e ciências
F1 As entradas do vetor f2 x1 = são calculadas substituindo as Equações (10.34) F2 e (10.35) na Equação (10.27), assim: L
(
)
(
)
L
F1 = ∫ q ⋅ f1 ( x ) dx + Pf1 ( L) = ∫ q ⋅xdx + PL = 0
L
0
L
qL2 + PL 2
F2 = ∫ q ⋅ f2 ( x ) dx + Pf2 ( L) = ∫ q ⋅x 2 dx + PL2 = 0
0
qL3 + PL2 3
(10.41) (10.42)
Finalmente, a Equação (10.30), para a aproximação u ( x ) definida na Equação (10.33), tem a seguinte forma: EAL EAL2
qL2 + PL EAL2 a 2 = 2 3 4 3 a EAL 3 qL 2 + PL 3 3
(10.43)
Resolvendo o sistema de equações representado na Equação (10.43), obtém-se: P + qL a 2 EA = a 3 − q 2EA
(10.44)
Dessa forma, a aproximação u ( x ) tem a seguinte apresentação: P + qL −q 2 u ( x ) = x+ x EA 2EA
(10.45)
A Equação (10.45) pode ser comparada com a solução exata u(x) do PVC modelo (Equações (10.1), (10.2) e (10.3)). Essa solução exata pode ser facilmente determinada integrando a Equação (10.1) duas vezes e, posteriormente, aplicando as condições de contorno definidas nas Equações (10.2) e (10.3). Com isso: P + qL −q 2 u ( x) = x+ x EA 2EA
(10.46)
Comparando as Equações (10.45) e (10.46), tem-se que o método de Galerkin, para a aproximação dada na Equação (10.33), recuperou a solução exata u(x). Isso deu-se porque a solução aproximada u ( x ) foi definida por uma combinação linear de monômios presentes na solução exata u(x). Observe que, pela regularidade exigida na Equação (10.26), seria plenamente possível estabelecer a aproximação u ( x ) com:
10 Cap. 10_Reyolando.indd 124
21/09/2015 12:51:30
125
Método dos elementos finitos: introdução
u ( x ) = a 1 + a 2 x
(10.47)
Similarmente ao desenvolvimento apresentado entre as Equações (10.34) e (10.44), pode-se determinar a 1 e a 2 da Equação (10.47) e explicitar a u ( x ) como: qL2 + 2PL u ( x ) = x 2EA
(10.48)
É claro que o confronto das Equações (10.46) e (10.48) estabelece uma função erro. Como exercício complementar, recomenda-se definir valores para q, E, P, L e A e comparar, para o domínio do PVC modelo − 0 ≤ x ≤ L , as funções representadas nas Equações (10.46) e (10.48).
10.3 Técnica de elementos finitos aplicada ao método de Galerkin O método de Galerkin, dentre os Métodos de Resíduos Ponderados, apresentou uma estratégia específica para a solução aproximada u ( x ) do PVC modelo ilustrado anteriormente. Nessa estratégia, as funções fi ( x ), com i = 1,..., n , que defi ( x ) foram, obrigatoriamente, nem a solução aproximação u ( x ) e a função peso w definidas para todo o domínio do problema − 0 ≤ x ≤ L. Além disso, a função aproximada u ( x ) obrigatoriamente tinha de atender a condição de contorno essencial do PVC modelo. Saindo do PVC exclusivamente abordado e avaliando uma condição mais geral da solução numérica de equações diferenciais (ordinárias ou parciais) via Galerkin, tem-se, justamente, como dificuldade inerente desse método a construção de uma aproximação u ( x ) que atenda as condições de contorno essenciais das equações diferenciais. O Método dos Elementos Finitos apresenta uma metodologia para estruturar uma aproximação do tipo u ( x ) = a ifi ( x ), com i = 1,..., n, que necessariamente não precisa ser trabalhada a priori para atender as condições de contorno essenciais do problema. Para a apresentação introdutória do MEF proposta aqui, considere-se a forma variacional do PVC modelo escrita da seguinte forma, com dados q, E, P, L e , tal que: ( x ) ∈W A, para determinar u ( x ) ∈U ∀ w ( x )) = F ( w ( x )) B ( u ( x ) , w
(10.49)
onde ( x )) = ∫ E ⋅ A B ( u ( x ) , w L
0
10 Cap. 10_Reyolando.indd 125
( x )) d ( u ( x )) d (w dx
dx
dx (forma bilinear)
(10.50)
21/09/2015 12:51:32
126
Métodos numéricos e computacionais na prática de engenharias e ciências
( x )) = ∫ qw ( x ) dx + Pw ( L) (forma linear) F (w L
0
(10.51)
U é o espaço finito das funções admissíveis, contido no espaço U das funções admissíveis − U ⊂ U . Pode-se definir U como: 2 L du ( x ) U = u ( x ) u (0) = 0, ∫ dx < ∞ 0 dx
(10.52)
é o espaço finito das funções peso, contido no espaço W das funções peso − W Pode-se definir W como: W ⊂ W. 2 L dw ( x ) W = w ( x ) w (0) = 0, ∫ dx < ∞ 0 dx
(10.53)
Como a técnica de elementos finitos é aplicada em Galerkin, U e W representam o mesmo espaço de funções. Foram também definidos os espaços finitos , pois as funções do tipo u ( x ) = a f ( x ) e w ( x ) = b jf j ( x ), com i, j = 1,..., n, U e W i i ) e as aproximatêm um número finito de termos. Com os espaços finitos (U e W ( x ) = b jf j ( x ), com i, j = 1,..., n, definidas, escrevem-se as ções u ( x ) = a ifi ( x ) e w Equações (10.49), (10.50) e (10.51) com a seguinte apresentação:
(
)
(
)
(
)
L
d fi ( x ) d f j ( x )
B fi ( x ) , f j ( x ) = F f j ( x )
(10.54)
onde B fi ( x ) , f j ( x ) = ∫ E ⋅ A
(
)
L
0
(
) (
dx
dx
) dx (forma bilinear)
F fj ( x ) = ∫ qfj ( x ) dx + Pfj ( L) (forma linear) 0
(10.55)
(10.56)
A técnica de elementos finitos para o PVC modelo percorre, basicamente, os passos a seguir: • Distribuir uma quantidade m de pontos nodais (nós) no domínio do problema, unidimensional, 0 ≤ x ≤ L . • Esses m nós vão definir regiões discretas no domínio, 0 ≤ x ≤ L , denominadas elementos finitos.
• Para cada nó k definido nesse domínio, associa-se uma função fk ( x ), . Estas com k = 1,..., m , que vai compor a base de dimensão finita U ≡ W funções fk ( x ), com k = 1,..., m, por exemplo, podem ser polinômios (que devem ser contínuos no domínio em questão). Elas ainda devem ter regu-
10 Cap. 10_Reyolando.indd 126
21/09/2015 12:51:33
127
Método dos elementos finitos: introdução
laridade compatível com a exigida na Equação (10.54) e atender a condições impostas nas Equações (10.52) e (10.53) (as fk ( x ), com k = 1,..., m, vão construir uma u ( x ) que atende a Equação (10.52), devem ser homo ( x) gêneas nas condições de contorno essenciais – para a definição de w – e possuir derivada primeira quadrado integrável no domínio do problema estudado (0 ≤ x ≤ L)).
• Estabelecer o grau p da função polinomial fk ( x ), associada ao nó k, para estruturar o tipo de elemento finito que é utilizado na discretização do domínio do problema. A quantidade de nós de um dado elemento finito está atrelada ao grau p do polinômio fk ( x ). Por exemplo, no caso unidimensional, sendo definido p = 1 (aproximação linear), o elemento finito da discretização vai possuir dois nós. Então, por exemplo, para as funções fk ( x ) lineares, p = 1, os m nós no domínio unidimensional vão definir uma discretização com m − 1 elementos finitos, ver Figura 10.1. • As funções fk ( x ) devem ter suporte compacto, ou seja, são diferentes de zero somente em uma dada parte do domínio. Além disso, quando a função fk ( x ) for avaliada na coordenada do nó k, ela obrigatoriamente deve valer 1, ver Figura 10.1.
f2(x2) = 1
fk(xk) = 1
Nós
1 x=0
2 1
k–1
k
2
m
k+1 m–1
x=L
Elementos finitos lineares – dois nós
Figura 10.1
Discretização do domínio do PVC modelo – 0 ≤ x ≤ L – com elementos finitos lineares (dois nós).
• Com as características das fk ( x ) apontadas no item anterior, pode-se escrever a aproximação u ( x ) = a kfk ( x ) da seguinte forma: u ( x ) = u ( x k ) fk ( x ). Agora, os parâmetros incógnitos do problema têm correspondência com os valores nodais da função u ( x ) nas coordenadas dos nós k utilizados na discretização – a k = u ( x k ) . • Após discretizar o domínio unidimensional em elementos finitos, é preciso avaliar as Equações (10.55) e (10.56) nos subdomínios, definidos por cada elemento, para a composição de K e do vetor f.
10 Cap. 10_Reyolando.indd 127
21/09/2015 12:51:34
128
Métodos numéricos e computacionais na prática de engenharias e ciências
• Impor as condições de contorno essenciais do problema no sistema Ka = f de forma que u ( x ) = u ( x k ) fk ( x ) possa atender a Equação (10.52). • Resolver o sistema Ka = f com as condições de contorno essenciais impostas. • Finalmente, escrever a u ( x ) = u ( x k ) fk ( x ).
Por exemplo, considera-se o domínio do PVC modelo, 0 ≤ x ≤ L, discretizado com três nós (k = 3) e coordenadas ilustradas na Figura 10.2.
f1(0) = 1
1 f2 = 1 2
f3(L) = 1
j1(x) j2(x)
j2(x)
2
1 x=0
x=
j3(x)
3 L 2
x=L
Elementos finitos lineares – dois nós
Figura 10.2 Discretização do domínio do PVC modelo – 0 ≤ x ≤ L – com dois elementos finitos lineares (dois nós).
Na discretização apresentada na Figura 10.2, foram associadas aos nós 1, 2 e 3, respectivamente, as funções lineares f1 ( x ) , f2 ( x ) e f3 ( x ). Dessa forma, têm-se dois elementos finitos (cada um com dois nós) utilizados na discretização do domínio do PVC expresso em forma integral. As funções f1 ( x ) , f2 ( x ) e f3 ( x ), nos subdomínios dos dois elementos finitos, foram determinadas a partir das Figuras 10.2 e 10.3. Assim: fk ( x ) =
x − x k −1 , x k −1 ≤ x ≤ x k x k − x k −1
(10.57)
fk ( x ) =
x − x k +1 , x k ≤ x ≤ x k +1 x k − x k +1
(10.58)
10 Cap. 10_Reyolando.indd 128
21/09/2015 12:51:35
129
Método dos elementos finitos: introdução fk(xk ) = 1
fk(x)
fk(x)
fk(xk – 1) = 0 k–1 xk – 1
Figura 10.3
fk(xk + 1) = 0
k xk
k+1 xk + 1
Função de aproximação linear f k(x) para subdomínios xk – 1 ≤ x ≤ xk e xk ≤ x ≤ xk + 1.
L −2 x L + 1, 0 ≤ x ≤ 2 f1 ( x ) = L 0, ≤ x ≤ L 2
(10.59)
L 2x L , 0≤ x≤ 2 f2 ( x ) = −2 x L + 2, ≤ x ≤ L 2 L
(10.60)
L 0, 0 ≤ x ≤ 2 f3 ( x ) = 2x L − 1, ≤ x ≤ L 2 L
(10.61)
Pela técnica de elementos finitos, as funções fk ( x ) têm suporte compacto, ou seja, devem apresentar valores não nulos somente nos subdomínios dos elementos adjacentes ao nó k, ver Figura 10.4.
10 Cap. 10_Reyolando.indd 129
21/09/2015 12:51:36
130
Métodos numéricos e computacionais na prática de engenharias e ciências fk(xk ) = 1 f1(x)
x=0
1
2
k–1
m m–1 x=L
Região de influência da função fk(x)
Região de influência da função f1(x)
Figura 10.4
k+1
k
Suporte compacto – regiões de influência da função de aproximação linear f k(x).
As derivadas das funções f1 ( x ) , f2 ( x ) e f3 ( x ) são mostradas nas Equações (10.62), (10.63) e (10.64). L −2 L , 0≤ x≤ 2 f1′ ( x ) = L 0, ≤ x ≤ L 2
(10.62)
L 2 L , 0 ≤ x ≤ 2 f2′ ( x ) = −2 L , ≤x≤L L 2
(10.63)
L 0, 0 ≤ x ≤ 2 f3′ ( x ) = 2 L , ≤x≤L L 2
(10.64)
As Equações (10.62), (10.63) e (10.64) e as Equações (10.59), (10.60) e (10.61) são aplicadas, respectivamente, nas Equações (10.55) e (10.56), para determinação de todas as entradas da matriz K e do vetor f, considerando, é claro, o domínio discreto da Figura 10.2 e k = i = j = 3. Então: d (f ( x )) d (f ( x )) dx + ) dx dx d (f ( x )) d (f ( x )) 2EA E⋅ A dx =
(
L
k11 = B f1 ( x ) , f1 ( x ) = ∫ 2 E ⋅ A
∫
L
L
2
10 Cap. 10_Reyolando.indd 130
1
0
1
1
dx
dx
1
(10.65)
L
21/09/2015 12:51:37
131
Método dos elementos finitos: introdução
(
)
L
k12 = B f1 ( x ) , f2 ( x ) = ∫ 2 E ⋅ A
∫
L
L
2
( E⋅ A
) (
dx
(
)
L
∫ E⋅ A
(
L
dx
(
∫
L
2
)
L
( E⋅ A
) (
dx
L
2
(
)
( E⋅ A
L
L 2
(
L
2
L
2
dx
(10.69)
d (f ( x )) d (f ( x )) dx + ) dx dx d (f ( x )) d (f ( x )) −2EA E⋅ A dx =
(10.70)
d (f ( x )) d (f ( x )) dx + ) dx dx d (f ( x )) d (f ( x )) E⋅ A dx = 0
(10.71)
L
2
2
3
dx
dx
L
L
3
1
0
3
1
dx
dx
)
( E⋅ A
10 Cap. 10_Reyolando.indd 131
3
0
(
∫
) dx +
L
L
k32 = B f3 ( x ) , f2 ( x ) = ∫ 2 E ⋅ A L
(10.68)
) (
) dx = 4EA
dx
(
∫
dx
dx
k31 = B f3 ( x ) , f1 ( x ) = ∫ 2 E ⋅ A L
) dx +
d f2 ( x ) d f2 ( x )
0
) (
(
L
(10.67)
L
k23 = B f2 ( x ) , f3 ( x ) = ∫ 2 E ⋅ A
∫
) (
dx
d f2 ( x ) d f2 ( x ) dx
dx
) dx = −2EA
dx
) dx +
d f1 ( x ) d f2 ( x )
d f1 ( x ) d f2 ( x )
(
∫
dx
0
k22 = B f2 ( x ) , f2 ( x ) = ∫ 2 E ⋅ A L
) (
) dx = 0
k21 = B f1 ( x ) , f2 ( x ) = ∫ 2 E ⋅ A L
(
d f1 ( x ) d f3 ( x )
0
) (
dx
(10.66)
L
d f1 ( x ) d f3 ( x )
2
) dx +
dx
) dx = −2EA
d f1 ( x ) d f2 ( x ) dx
) (
dx
0
k13 = B f1 ( x ) , f3 ( x ) = ∫ 2 E ⋅ A L
(
d f1 ( x ) d f2 ( x )
) (
0
dx
) (
dx
) dx = −2EA
d f3 ( x ) d f2 ( x ) dx
(
) dx +
d f3 ( x ) d f2 ( x ) dx
(10.72)
L
21/09/2015 12:51:38
132
Métodos numéricos e computacionais na prática de engenharias e ciências
d (f ( x )) d (f ( x )) dx + ) dx dx d (f ( x )) d (f ( x )) 2EA E⋅ A dx =
(
L
k33 = B f3 ( x ) , f3 ( x ) = ∫ 2 E ⋅ A
∫
L
L
2
3
3
0
(
)
(
)
(
)
3
3
dx
dx
(10.73)
L
L
L
0
2
L
L
0
2
L
L
0
2
F f1 ( x ) = ∫ 2 qf1 ( x ) dx + ∫L qf1 ( x ) dx + Pf1 ( L) = F f2 ( x ) = ∫ 2 qf2 ( x ) dx + ∫L qf2 ( x ) dx + Pf2 ( L) = F f3 ( x ) = ∫ 2 qf3 ( x ) dx + ∫L qf3 ( x ) dx + Pf3 ( L) =
qL 4
(10.74)
qL 2
(10.75)
qL +P 4
(10.76)
Com as entradas da matriz K e do vetor f definidas, pode-se escrever o sistema Ka = f : qL 2 −2 0 u ( x1 ) 4 EA qL −2 4 −2 u ( x2 ) = L 2 0 −2 2 u ( x3 ) qL 4 + P
(10.77)
Até esse ponto do desenvolvimento da técnica de elementos finitos, para a discretização da Figura 10.2, não foi considerada a condição de contorno essencial do PVC modelo ( u (0) = 0) exigida no espaço finito das funções admissíveis, ver Equação (10.52). Como dito anteriormente, a técnica de elementos finitos propõe uma aproximação u ( x ) = u ( x k ) fk ( x ) que não precisa, a priori, atender a condição essencial u ( x1 ) = u (0) = 0, pois esta seria imposta a posteriori. Assim, a técnica de elementos finitos aplica a condição de contorno essencial do PVC modelo – u ( x1 ) = u (0) = 0 – na Equação (10.77), substituindo por 1 o valor da entrada da diagonal principal da matriz K, no caso k11, ligada ao nó da discretização, onde a condição de contorno essencial é estabelecida (k = 1) , e zerando os outros termos da linha (k12 , k13 ) e da coluna (k21 , k31 ) vinculados a esse mesmo elemento da diagonal principal de K (k11). Além disso, a entrada do vetor f para o nó k = 1 recebe o valor da condição de contorno essencial definida – u ( x1 ) = u (0) = 0 . Dessa forma, a Equação (10.77) tem a seguinte apresentação:
10 Cap. 10_Reyolando.indd 132
21/09/2015 12:51:39
133
Método dos elementos finitos: introdução
0 0 u ( x1 ) 1 0 EA u x = qL − 0 4 2 ( ) 2 L 2 0 −2 2 u ( x3 ) qL 4 + P
(10.78)
Resolvendo o sistema representado na Equação (10.78), tem-se: 0 u ( x1 ) 2 4PL + 3qL u ( x2 ) = 8EA u ( x ) 3 2qL2 + 4PL 4EA
(10.79)
A aproximação u ( x ) = u ( x k ) fk ( x ), para k = 1, 2 e 3 é:
(
)
(
)
4PL + 3qL2 4PL + 2qL2 j 2( x) + j3( x ) u ( x ) = 8EA 8EA
(10.80)
com j2 ( x ) e j3 ( x ) representadas, respectivamente, nas Equações (10.60) e (10.61). Agora, é possível comparar a solução aproximada obtida via Método dos Elementos Finitos, Equação (10.80), com a solução exata do PVC modelo, Equação (10.46). Por fim, todo esse conjunto de passos da aplicação do MEF, para determinação de solução aproximada do PVC modelo, pode ser facilmente programado em linguagens de alto nível ou com softwares matemáticos, como, por exemplo, o MATLAB®. Na programação (com linguagens de alto nível ou não) da estrutura do MEF aplicada ao PVC modelo, é necessário interagir fortemente com os tópicos dos Capítulos 2 e 8.
10.4 Aplicações em engenharias e ciências 10.4.1 Barra sob força normal A Figura 10.5 é um modelo de uma barra prismática de seção transversal A, engastada em x = 0 , com vão L, ( L >> A) , submetido à carga uniformemente distribuída q (força por unidade de comprimento) em 0 ≤ x ≤ L . Admite-se ainda que no contorno x = L existe uma força P (unidade de força) aplicada e que as forças q e
10 Cap. 10_Reyolando.indd 133
21/09/2015 12:51:40
134
Métodos numéricos e computacionais na prática de engenharias e ciências
P são normais à seção transversal A. Tem-se também que o material constituinte da barra é homogêneo, elástico linear, isótropo, e que o módulo de elasticidade longitudinal vale E (força por unidade de comprimento ao quadrado). Na modelagem em questão, considera-se também o equilíbrio imposto na configuração inicial do sistema, pequenos deslocamentos e giros das seções transversais.
x, u (x)
L
E, A
q
P
Figura 10.5
Barra sob força normal: problema mecânico estrutural.
O objetivo principal de qualquer problema mecânico estrutural é a determinação das tensões (força por unidade de comprimento ao quadrado), deformações e deslocamentos (unidade de comprimento) em todos os pontos do domí nio de uma dada estrutura sob carregamento qualquer e vinculações impostas. No caso do problema de barra sob força normal, apresentado na Figura 10.5, entende-se da teoria da elasticidade que os campos de tensão (s ( x )), deformação (e ( x )) e deslocamento ( u ( x )) variam no domínio da barra, 0 ≤ x ≤ L, exclusivamente em função de x. O equilíbrio de forças verticais de um segmento de comprimento dx é: ds ( x ) − q = A dx
(10.81)
Da teoria da elasticidade, pode-se definir a relação de compatibilidade entre a deformação (e ( x )) e o deslocamento ( u ( x )) por: e ( x ) = u′ ( x )
(10.82)
Para materiais elásticos lineares e isótropos, a relação tensão-deformação é dada pela lei de Hooke: s ( x ) = Ee ( x )
10 Cap. 10_Reyolando.indd 134
(10.83)
21/09/2015 12:51:41
135
Método dos elementos finitos: introdução
Substituindo a Equação (10.82) na Equação (10.83), tem-se: s ( x ) = Eu′ ( x )
(10.84)
Das Equações (10.84) e (10.81), pode-se escrever: u′′ ( x ) =
−q E⋅ A
(10.85)
A Equação (10.85) representa a equação diferencial do problema de barra sob força normal, como ilustrado na Figura 10.5. Para determinar a função deslocamento ( u ( x )), são necessárias duas condições de contorno. A primeira condição de contorno em deslocamentos (condição de contorno essencial) é u (0) = 0. No segundo contorno do problema ( x = L), tem-se que a função força normal N ( x ) vale P, então: N (L) = P
(10.86)
Para o problema de barra sob força normal, as tensões normais (s ( x )) relacionam-se com as forças normais N ( x ) da seguinte forma: s ( x) =
N ( x) A
(10.87)
Especificamente, no contorno x = L: s (L) =
N (L) P = A A
(10.88)
A Equação (10.84) avaliada em x = L é: s ( L) = Eu′ ( L)
(10.89)
As Equações (10.88) e (10.89) são combinadas para a definição da condição de contorno em x = L explicitada em função dos deslocamentos, ver Equação (10.90). u′ (L) =
P E⋅ A
(10.90)
O PVC em questão (problema de barra sob força normal), descrito na variável deslocamento ( u ( x )), é definido pela Equação (10.85) e condições de contorno P u (0) = 0 e u′ ( L) = . E⋅ A Observe que o PVC abordado aqui é igual ao representado nas Equações (10.1), (10.2) e (10.3). Dessa forma, toda a estrutura apresentada anteriormente para a aproximação de u ( x ) (aqui definida como deslocamento) por meio de Galerkin e MEF é também estendida ao problema de barra sob força normal.
10 Cap. 10_Reyolando.indd 135
21/09/2015 12:51:43
136
Métodos numéricos e computacionais na prática de engenharias e ciências
10.4.2 Condução de calor Neste exemplo, considera-se o mesmo problema de condução estacionária de calor (equilíbrio térmico) em uma barra delgada de comprimento L, apresentado no Capítulo 9. Aqui, contudo, por simplificação, propõe-se que não exista transferência de calor por convecção, mas sim produção interna Q de calor. Tem-se também que as extremidades da barra são mantidas a temperaturas T constantes. Agora, os parâmetros de interesse são a área da seção transversal A e a condutividade térmica do material K. Neste caso, o conjunto de equações (PVC – forma forte) que descreve o problema é: AK ⋅
d 2T (x) = QA p / dx 2
T (0) = TA p /
0≤ x≤L
x = 0 e T ( L) = TB
(10.91) p/
x=L
(10.92)
Para aplicação do MEF (Galerkin e a técnica de elementos finitos), é obrigatório definir a forma integral fraca desse PVC. Assim, dados Q, L, K e A, deve-se , tal que: ( x ) ∈W determinar T ( x ) ∈ T ∀ w
(
)
(
)
( x ) = F (w ( x )) B T ( x ) , w
(10.93)
onde L
( x) = ∫ K ⋅ A B T ( x ) , w 0
(
)
d T ( x ) d (w ( x )) dx
dx
dx (forma bilinear)
( x )) = ∫ AQw ( x ) dx (forma linear) F (w L
0
(10.94)
(10.95)
T é o espaço finito das funções temperaturas admissíveis, contido no espaço T das funções temperaturas admissíveis, T ⊂ T . Define-se T como: 2 L dT ( x ) U = T ( x ) T (0) = TA , T ( L) = TB , ∫ dx < ∞ 0 dx
(10.96)
é o espaço finito das funções peso, contido no espaço W das funções peso, W . Define-se W como: W ⊂W 2 L dw ( x ) W = w ( x ) w (0) = w ( L) = 0, ∫ dx < ∞ 0 dx
10 Cap. 10_Reyolando.indd 136
(10.97)
21/09/2015 12:51:44
137
Método dos elementos finitos: introdução
Observe que existem diferenças entre os espaços definidos para o PVC modelo (Equações (10.52) e (10.53)) e os apresentados para o problema de condução de calor (Equações (10.96) e (10.97)). Seguindo a metodologia de aplicação da técnica do MEF, tem-se: ( x ) = b jf j ( x ) , T ( x ) = T ( x i ) fi ( x ) e w
(
)
L
B fi ( x ) , f j ( x ) = ∫ K ⋅ A
(
)
L
0
(
) (
d fi ( x ) d f j ( x ) dx
dx
F f j ( x ) = ∫ AQf j ( x ) dx (forma linear) 0
i, j = 1,..., n
(10.98)
) dx (forma bilinear)
(10.99)
com
(10.100)
Após a discretização do domínio do problema, 0 ≤ x ≤ L, em m nós, associa-se uma aproximação linear fk ( x ) a cada nó k, k = 1,..., m, da discretização e definem-se os m − 1 elementos finitos da malha. Nesses m − 1 elementos finitos unidimensionais, avaliam-se as Equações (10.99) e (10.100), com i = j = k, para a definição do sistema de equações lineares do tipo Ka = f . A aproximação linear foi adotada também para este problema, pois atende as exigências apresentadas nas Equações (10.99) e (10.100). Uma questão importante, específica deste problema, relaciona-se com a imposição das condições de contorno essenciais – Equação (10.92) – no sistema Ka = f . Observa-se da Equação (10.92) que essas condições de contorno podem não ser homogêneas, ou seja, T (0) = T ( L) ≠ 0. Caso essas condições de contorno sejam não homogêneas, a imposição delas em Ka = f segue uma metodologia diferente da apresentada na Equação (10.78). Nessa situação, substitui-se por 1 os valores da entrada da diagonal principal da matriz K, ligada aos nós da discretização, onde as condições de contorno essenciais são estabelecidas (k = 1 e k = m), e anula-se somente os outros termos da linha vinculados aos mesmos elementos da diagonal principal de K. Tem-se também que as entradas do vetor f para os nós k = 1 e k = m recebem, respectivamente, o valor das condições de contorno essenciais definidas, T (0) = TA e T (L) = TB . Finalmente, resolve-se o sistema Ka = f com a imposição das condições de contor no essenciais e define-se a aproximação do campo de temperatura T ( x ) = T ( x i ) fi ( x ).
10 Cap. 10_Reyolando.indd 137
21/09/2015 12:51:45
10 Cap. 10_Reyolando.indd 138
21/09/2015 12:51:45
Referências bibliográficas
AMODIO, P; MAZZIA, F. A Parallel Gauss-Seidel method for block tridiagonal linear systems. SIAM Journal of Science Computing, [S.l.], v. 16, n. 6, p. 1451-1461, 1995. ARORA, J. S. Introduction to optimum design. 3. ed. Waltham: Academic Press, 2012. ATKINSON, K. E. An introduction to numerical analysis. New York: Wiley & Sons, 1978. Balthazar, J. M. Introdução à teoria matemática de controle e algumas aplicações no mundo real. In: V ENCONTRO REGIONAL DE MATEMÁTICA APLICADA E COMPUTACIONAL, 5., 1999, Belo Horizonte. Anais... Belo Horizonte: SBMAC, maio 1999. ———. Um passeio pelo mundo encantado da dinâmica não linear. In: ENCONTRO
REGIONAL DE MATEMÁTICA APLICADA E COMPUTACIONAL, 6., 2001, Uberlândia. Anais... Uberlândia: SBMAC, 2001.
Balthazar, J. M.; Brasil, R. M. F. L. Introdução à modelagem matemática e teoria de vibrações não lineares. In: CONGRESSO NACIONAL DE MATEMÁTICA APLICADA, 23., 2000, Santos. Anais... Santos: SBMAC, set. 2000. ———. Análise geométrica de sistemas dinâmicos estruturais não lineares com número
finito de graus de liberdade: aspectos teóricos preliminares (parte 1). Boletim Técnico da EPUSP, Departamento de Engenharia de Estruturas e Fundações, São Paulo, n. 9901, p. 1-15, 1999.
BALTHAZAR, J. M.; OLIVEIRA, V. A.; SILVA, G. N.; ROSÁRIO, J. M. (Org.). Aplicações em dinâmica e controle. São Carlos: USP, 2001 BATHE, K.-J. Finite elements procedures. Cambridge: Prentice-Hall, 2006.
11 Cap. 11_referecias_Reyolando.indd 139
21/09/2015 12:52:04
140
Métodos numéricos e computacionais na prática de engenharias e ciências
BRASIL, R. M. L .R. F.; SILVA, M. A. Introdução à dinâmica das estruturas: para engenharia civil. São Paulo: Blucher, 2013. BURDEN R. L.; FAIRES J. D. Numerical analysis. Boston: PWS-Kent Pub, 1993. Campos-Filho, F. F. Algoritmos numéricos. São Paulo: LTC, 2007. 444 p. CHAPMAN S. J. N. Programação em MATLAB© para engenheiros. Tradução Flávio Soares Correa da Silva. São Paulo: Thomson Pioneira, 2002. CHAPRA, S. C. Applied numerical methods with MATLAB®: for engineers and scientists. 2. ed. New York: McGraw-Hill, 2008. CHAPRA, S. C.; CANALE, R. P. Numerical methods for engineering. 2. ed. New York: McGraw-Hill, 1988. CLOUGH, R. W.; PENZIEN, J. Dynamics of structures. 3. ed. New York: McGraw-Hill, 1993. CRANDALL, S. H. Engineering analysis: a survey of numerical procedures. New York: McGraw-Hill, 1956. 417 p. CUNHA, M. C. C. Métodos numéricos. Campinas: Editora da Unicamp, 2000. CUNHA, R. D. da. Computação paralela: uma breve introdução. In: CONGRESSO NACIONAL DE MATEMÁTICA APLICADA E COMPUTACIONAL, 20., 1997, Gramado. Anais... Gramado: SBMAC, 1997. 23 p. FIORENTINO, G.; SERRA, S. Fast parallel solvers for elliptic problems. Computers & Mathematics with Applications, [S.l.], v. 32, n. 2, p. 61-68, 1996. GEROTO, O. H.; BALTHAZAR, J. M. Noções básicas de álgebra computacional e aplicações nas ciências via MATLAB®. In: CONGRESSO TEMÁTICO DE APLICAÇÕES DE DINÂMICA E CONTROLE, 2., 2003, São José dos Campos. Anais... São José dos Campos: SBMAC, 2003. p. 2951-3009. CD-ROM. LINDFIELD, G.; PENNY, J. Numerical methods using MATLAB® . New York: Ellis Horwood, 1995. MACDONALD, N. et al. Writing message-passing parallel programs with MPI. Edinburgh: University of Edinburgh/Edinburgh Parallel Computing Centre, 1995. v. 1.8.2. MEIROVITCH, L. Computational methods in structural dynamics. Rockville: Sijthoff & Noordhoff, 1980. NACHBIN, A. Introdução à modelagem matemática e computação científica. In: CONGRESSO NACIONAL DE MATEMÁTICA APLICADA E COMPUTACIONAL, 19., 1996, Goiânia. Anais... Goiânia: SBMAC, 1996. 51 p. NAYFEH, A. H.; BALACHANDRAN B. Applied nonlinear dynamics: analytical, computational and experimental methods. New York: John Wiley & Sons, 1994. 700 p. ODEN, J. T.; REDDY, J. N. An introduction to the mathematical theory of finite elements. New York: Dover Publications, 2011. 446 p. PARKER, S. T.; CHUA, L. O. Practical numerical algorithms for chaotic systems. New York: Springer Verlag, 1989. 348 p. PRESS, W. T.; FLANERY, B. P.; TEUKOSKY, S. A.; VELLERTG, W. P. Numerical recipes: the art of scientific computing. 3. ed. New York: Cambridge University Press, 2007.
11 Cap. 11_referecias_Reyolando.indd 140
21/09/2015 12:52:04
141
Referências bibliográficas
REDDY, J. N. An introduction to the finite element method. 3. ed. New York: McGraw-Hill, 2006. 896 p. SIMIONI, B.; BALTHAZAR, J. M.; BRASIL, R. M. F. L. R. Uma abordagem à computação paralela e uma aplicação ao estudo da dinâmica não linear de uma rede de satélites geossíncronos e amarrados à Terra. In: CONGRESSO TEMÁTICO DE DINÂMICA, CONTROLE E APLICAÇÕES, 6., 2007, São José do Rio Preto. Anais... São José do Rio Preto: SBMAC, 2007. CD-ROM. STOER, J.; BULIRSH, R. Introduction to numerical analysis. New York: Springer Verlag, 1980. TOLEDO, E. M; SILVA, R. S. Introdução à computação paralela. In: ESCOLA DE VERÃO EM COMPUTAÇÃO CIENTÍFICA, 2., 1997, Rio de Janeiro. Curso. Rio de Janeiro: LNCC, 1997. TROVO, D. G. E.; BALTHAZAR, J. M. Métodos sequencial e paralelo das diferenças finitas aplicados à ciência da engenharia. In: BRAZILIAN CONFERENCE ON DYNAMICS, CONTROL AND APPLICATIONS, 8., 2009, Bauru. Anais... Bauru: SBMAC, 2009. CD-ROM. WOLF, A.; SWIFT, J. B.; SWINNEY, H. L.; VASTANO, J. A. Determining Lyapunov exponents from a time series. Physica D, Amsterdam, v. 16, p. 285-317, 1985. YAO, A. An efficient parallel three-level preconditioner for linear elliptic partial differential equations. 1998. 67 f. Dissertação (Mestrado em Ciências da Computação), Virginia Polytechnic Institute and State University, Blacksburg, 1998. YOUNG, D. M. A survey of numerical mathematics. Reading: Addison-Wesley, 1973. 2 v. ZIENKIEWICZ, O. C.; TAYLOR, R. L. The finite element method for solid and structural mechanics. 6. ed. Amsterdam: Elsevier Butterworth-Heinemann, 2005.
11 Cap. 11_referecias_Reyolando.indd 141
21/09/2015 12:52:04
11 Cap. 11_referecias_Reyolando.indd 142
21/09/2015 12:52:04
apêndice
1
MATLAB® visto como uma calculadora
A seguir, apresenta-se o MATLAB® como uma calculadora, com o objetivo de propiciar resolução de sistemas lineares, autovalores e autovetores, interpolações, ajuste de curvas a dados, otimização etc.
A1.1 Sistemas lineares Se AX=b, tem-se x=A \ b. Com o programa carregado, vê-se, na tela: >> A=[ 4 –2 2; –2 190; –7; 2 –7 30]; >> b=[ 8 11 –31]´ >> x=A\b x= 3 1 –1 >> r=(b–A*x)´ r= 0 0
0
12 Cap. 12_apendice1_Reyolando.indd 143
21/09/2015 12:52:26
144
Métodos numéricos e computacionais na prática de engenharias e ciências
A função eig(A) permite o cálculo do autossistema de A (autovalores e autovetores) por meio de um método mais eficiente do que construindo o polinômio característico. O uso de [V, D]=eig(A) produz uma matriz diagonal D contendo os autovalores e uma matriz V com os autovetores. Para se obter apenas os autovalores em um vetor d, basta d=eig(A). Se a matriz for simétrica, então os autovetores são mutuamente ortogonais. Para a matriz simétrica A definida acima: >> [V,D]=eig(A) V= –0.5363 0.7387 0.3948 0.8375 0.4732 0.2734 –0.0151 –0.4799 0.8772 D= 5.6162 0 0 0 1.4104 0 0 0 9.9734 >> d=eig(A) d= 5.6162 1.4104 9.8734 >> round( V´* V) ans 1 0 0 0 1 0 0 0 1 O MATLAB® possui uma função para calcular diversas normas de vetores e matrizes, bem como uma função para determinar o número de condição de matrizes.
12 Cap. 12_apendice1_Reyolando.indd 144
21/09/2015 12:52:26
145
MATLAB® visto como uma calculadora
A função norm(X,p) fornece a norma p de um vetor ou matriz X. No caso de um vetor x, p pode ser qualquer número (inteiro ou real, positivo ou negativo). Se o parâmetro p for omitido, então é assumido p = 2 (norm(x)=norm(X,2)). >> x=[ 12 3 4 5]; >> A=[ 1 2 3; 4 5 6; 7 8 9]; >> norm(x,2), norm(x) ans= 7.4162 ans= 7.4162 A função dot (a,b) calcula o produto interno entre os vetores a e b, os quais devem ter o mesmo tamanho. Se A e B são matrizes, então dot (A,B) produz um vetor linha contendo o produto interno entre as correspondentes colunas de A e B. Assim: >> v=1:3; >> y=–3: –1; >> d=dot(v,y) d= –10 A função cond(X) calcula o número de condição da matriz X definido em termos da norma 2, ou seja cond(X) = X 2 . X −1 2 . Para a matriz: >> B=[ 5 3 0; –1 8 6; 4 2 9] >> cond(B) ans= 2.6641 A função det(X) calcula o determinante da matriz X por meio da decomposição LU. Para A e B definidos previamente, tem-se: >> det(A) ans= 0 > > det(B) ans= 399
12 Cap. 12_apendice1_Reyolando.indd 145
21/09/2015 12:52:26
146
Métodos numéricos e computacionais na prática de engenharias e ciências
A função trace(M) determina o traço da matriz M, isto é, a soma dos elementos de sua diagonal principal. >> t=trace(A) t= 15
A1.2 Interpolação e ajuste de curvas Os valores contidos em um vetor qualquer podem ser interpolados pela função interp1 (interpolação unidimensional), cuja sintaxe é <resultado> = interp1 (x,y,z,’<método>’) e onde <método> especifica o método a ser utilizado na interpolação, sendo: ‘linear’
Interpolação linear
‘cubic’
Interpolação por polinômios cúbicos
‘spline’
Interpolação por splines cúbicos
Caso não seja especificado o método a ser utilizado, o MATLAB® assume como interpolação linear. Os valores do vetor x devem crescer ou decrescer monotonamente e, além disso, no caso de interpolação cúbica, os valores de x devem ser igualmente espaçados. Utilizando como exemplo a função y = x3 para x maior ou igual a –1 ou menor ou igual a 1. >> x = linspace(–1,1,5);
% abcissas dos pontos
>> y = x.^3;
% ordenadas
>> interp1(x,y,0.4,'linear') ans = 0.1000 >> interp1(x,y,0.4,'cubic') ans = 0.0520 >> interp1(x,y,0.4,'spline') ans = 0.0640 Considerando que o valor exato é 0.43, ou seja, 0.064, o método de interpolação com splines cúbicos produziu o melhor resultado para este caso. Para visualização dos métodos, faz-se:
12 Cap. 12_apendice1_Reyolando.indd 146
21/09/2015 12:52:26
147
MATLAB® visto como uma calculadora
>> x1 = linspace (–1,1,60);
% abcissas para a interpolação
>> y1 = x1.^3;
% ordenadas da curva real
>> cubica = interp1(x,y,x1,'cubic');
% interpolação cúbica
>> spline = interp1(x,y,x1,'spline');
% interpolação por splines
>> plot(x,y,'o',x,y,'-.',x1,y1,'-',x1,cubica,'--',x1,spline,' : ') >> xlabel('x'); ylabel('y'); title('Métodos de interpolação') Para a função y = x3, a linha continua é a curva correta: o
Pontos a ser interpolados
.-.-
Interpolação linear
--
Interpolação por polinômios cúbicos
....
Interpolação por splines cúbicos
Métodos de interpolação 1 0.8 0.6 0.4
y
0.2 0 –0.2 –0.4 –0.6 –0.8 –1 –1
–0.5
0 x
0.5
1
O comando c = polyfit(x,y,n) atribui ao vetor c os valores dos coeficientes do polinômio de mínimos quadrados de grau n que melhor se ajustam aos pontos (xi,yi) definidos nos vetores x e y.
12 Cap. 12_apendice1_Reyolando.indd 147
21/09/2015 12:52:27
148
Métodos numéricos e computacionais na prática de engenharias e ciências
O polinômio é na forma: Pn(x) = c1xn + c2x n–1 + c3x n–2 + . . . ... + cnx + cn+1. Apresenta-se um exemplo do uso da função polyfit, com dados relacionados à temperatura em graus Celsius e Fahrenheit obtidos a partir de um termômetro com pouca exatidão. >> c = [15 17 18 20 23 25 26 28 30 32]; >> f = [40 41 42 43 45 46 46 48 49 50]; A reta de mínimos quadrados é obtida por f = P1(c) = b1c + b2. Então: >> b = polyfit(c,f,1) b= 0.5925 31.1345 Mesmo sendo os dados obtidos por meio de um termômetro com pouca exatidão, o resultado foi muito próximo do valor exato obtido pela equação F =5/9C + 32. Os pontos P(ci) do polinômio de regressão de grau 1 em relação a c são obtidos pelo comando: >> p = polyval(b,c); Os resíduos do ajuste ri = fi – P(ci) são verificados por: >> [c; f ; p ; f-p]' ans = 15.0000
40.0000
40.0226
–0.0226
17.0000
41.0000
41.2077
–0.2077
18.0000
42.0000
41.8003
0.1997
20.0000
43.0000
42.9854
0.0146
23.0000
45.0000
44.7630
0.2370
25.0000
46.0000
45.9481
0.0519
26.0000
46.0000
46.5406
–0.5406
28.0000
48.0000
47.7257
0.2743
30.0000
49.0000
48.9108
0.0892
32.0000
50.0000
50.0959
–0.0959
Visualizando o ajuste: >> plot(c,f,'o',c,p) >> xlabel('Graus Celsius'); ylabel('Graus Fahrenheit');
12 Cap. 12_apendice1_Reyolando.indd 148
21/09/2015 12:52:27
149
MATLAB® visto como uma calculadora Ajuste polinomial de grau 1
52
50
Graus Fahrenheit
48
46
44
42
40 15
20
25 Graus Celsius
30
35
A1.3 Funções “matemáticas” Uma classe de comandos do MATLAB® não trabalha com matrizes numéricas, mas com funções matemáticas. Esses comandos incluem equações não lineares e otimização, solução de equações diferenciais, integração numérica etc. As funções matemáticas são representadas no MATLAB® por arquivos ".m". Por exemplo, a função: humps ( x ) =
1
+
1
( x − 0.3) + 0.01 ( x − 0.9)2 + 0.04 2
−6
está disponível no MATLAB® como um arquivo ".m" chamado humps.m: function y = humps(x) y = l ./ ((x–.3).^2 + .0l) + 1./((x-.9).^2 + .04) – 6;
O gráfico da função é: >> x = –l:0.0l:2; >> plot(x,humps(x))
12 Cap. 12_apendice1_Reyolando.indd 149
21/09/2015 12:52:27
150
Métodos numéricos e computacionais na prática de engenharias e ciências 100
80
60
40
20
0
–20 –1
–0.5
0
0.5
1
1.5
2
Os dois comandos para equações não lineares e otimização, de baixa ordem, incluem: Fmin
Minimizar função de uma variável.
Fmins
Minimizar função de várias variáveis.
Fzero
Encontrar zero de função de uma variável.
Continuando o exemplo, a localização do mínimo da função humps(x) no intervalo de 0.5 a 1, é obtido da seguinte maneira: >> xm = fmin(‘humps’,0.5,1) xm = 0.6370 >> ym = humps(xm) ym = 11.2528 O gráfico desse intervalo com o ponto de mínimo pode ser construído assim: >> x = 0.5:0.01:1; >> plot(x, humps(x), xm, ym, ‘o’) Pode-se ver que a função humps(x) apresenta dois “zeros” no intervalo de –1 a 2. A localização do primeiro “zero” é próxima do ponto x = 0:
12 Cap. 12_apendice1_Reyolando.indd 150
21/09/2015 12:52:27
151
MATLAB® visto como uma calculadora
>> xzl = fzero('humps',0) xzl = –0.1316 A localização do segundo “zero” é próxima do ponto x= 1: >> xz2=fzero('humps',1) xz2 = 1.2995 O gráfico da função com os dois “zeros” é obtido por meio da expressão: >> x = –1:0.01:2 >> plot(x, humps(x), xzl, humps(xzl),'*', xz2, humps(xz2), '+'), grid
100
80
60
40
20
0
–20 –1
–0.5
0
0.5
1
1.5
2
A1.4 Integração numérica Se f(x) for uma função contínua em [a,b], então essa função tem uma primitiva nesse intervalo, ou seja, existe F(x) tal que F’(x) = f(x). b
∫ f (x)dx = F(b) − F(a) a
12 Cap. 12_apendice1_Reyolando.indd 151
21/09/2015 12:52:27
152
Métodos numéricos e computacionais na prática de engenharias e ciências
Se o valor de f(x) for conhecido apenas em alguns pontos, em um intervalo [a,b], como não é conhecida a expressão analítica de f(x), deve-se proceder numericamente.
Regra de Simpson A área abaixo de uma curva pode ser determinada por meio da integração numérica da função usando o processo chamado quadratura. Como exemplo, tem-se a regra de Simpson. Integrando-se a função sin(x) de 0 a 90º: >> x = (pi*90/180) x= 1.5708 >> area = quad ('sin', 0, 1.5708) area = 1.0000 Os dois comandos do MATLAB® para integração usando quadratura são: Quad
Calcular integral numericamente, método para baixa ordem.
Quad8
Calcular integral numericamente, método para alta ordem.
Outra maneira para se encontrar a área abaixo da curva da função ‘sin(x)’ é por meio da função ‘simp(x, y)’, que é um arquivo M. Por exemplo: >> angle = 0: 15: 90; x = (pi*angle/180)'; >> y = sin(x); >> area = simp(x,y); área = 1.0000 Dada uma integral y = f (x), com os pares (xi, yi) sendo definidos nos vetores x e y, respectivamente, é possível calcular a área dessa função utilizando o comando trapz(x,y). Definindo o vetor x com passo de 0,1, y como a função: f(x) = cos(3x +1) x 2 + x1,5 Para se calcular a área pela regra do trapézio, faz-se: >> area = trapz(x,y) area = 102.4429
12 Cap. 12_apendice1_Reyolando.indd 152
21/09/2015 12:52:27
apêndice
2
Fundamentos de programação em MATLAB®
O objetivo deste apêndice é apresentar algumas noções de programação em MATLAB® (MATrix LABoratory), que é um software interativo de alto desempenho voltado para o cálculo numérico e científico. O MATLAB® integra análise numérica, cálculo com matrizes, processamento de sinais e construção de gráficos em ambiente fácil de usar, onde problemas e soluções podem ser expressos como são escritos na matemática ou na forma de uma linguagem de programação. No MATLAB® o elemento básico de informação é uma matriz que não requer dimensionamento, por essa razão permite a resolução de muitos problemas numéricos em apenas uma fração do tempo que se gastaria para escrever um programa semelhante em linguagem Fortran, Basic ou C. A potencialidade do software está muito além do que é mostrado neste apêndice, cujo principal objetivo é exibir o MATLAB® como uma linguagem de programação capaz de implementar um algoritmo qualquer. Deve-se lembrar a importância de enunciar o problema proposto claramente, fornecer a descrição da informação da entrada e saída e realizar o teste da solução, usando uma variedade de grupo de dados. Supõe-se que o leitor conheça do MATLAB®: inicialização do programa; as declarações, constantes e variáveis; formatação; manipulação de vetores e matrizes;
13 Cap. 13_apendice_2_Reyolando.indd 153
21/09/2015 12:52:49
154
Métodos numéricos e computacionais na prática de engenharias e ciências
operações com matrizes; operações com conjuntos e polinômios; e construção de gráficos que é mais uma das facilidades do sistema. Por meio de comandos simples, pode-se obter gráficos bidimensionais ou tridimensionais com qualquer tipo de escala e coordenada. Existe no MATLAB® uma vasta biblioteca de comandos gráficos disponíveis.
A2.1 Programando com o MATLAB® Deve-se abrir um arquivo a partir do MATLAB® (File, New, M-File). Depois, é preciso trabalhar no Bloco de Notas (Notepad) do Windows; digitar os seguintes comandos e gravar o arquivo com o nome “testel.m”, no diretório de usuários (alunos).
A2.2 Estruturas condicionais Os comandos que controlam o fluxo especificam a ordem em que a computação é feita. No MATLAB® esses comandos são semelhantes aos usados na linguagem C, mas têm uma estrutura diferente. O laço “for” é o controlador de fluxo mais simples e usado na programação MATLAB®. Analisando a expressão: >>for i=1:5, X(i)=i^2; end pode-se notar que o laço “for” é dividido em três partes. A primeira parte (i=1) é realizada uma vez, antes do laço ser inicializado. A segunda parte é o teste ou a condição que controla o laço, (i<=5). Essa condição é avaliada; se verdadeira, o corpo do laço (X(i)=i^2) é executado. A terceira parte acontece quando a condição torna-se falsa e o laço termina. O comando “end” é usado como limite inferior do corpo do laço. É comum construções em que conjuntos de laços “for” são usados principalmente com matrizes: for i=1:8 for j=1:8, A(i,j)=i+j; B(i,j)=i–j; end end C=A+B;
13 Cap. 13_apendice_2_Reyolando.indd 154
21/09/2015 12:52:49
155
Fundamentos de programação em MATLAB®
No laço “while” apenas a condição é testada. Por exemplo: a = l; b = 15; while a<b, clc a = a+l b = b-l pause(l) end disp(‘fim do loop’) A condição a<b é testada. Se for verdadeira, o corpo do laço é executado. Então, a condição é retestada e, se verdadeira, o corpo é executado novamente. Quando o teste tornar-se falso, o laço termina e a execução continua no comando que segue o laço após o “end”. A seguir, são apresentadas as declarações “if” e “break”. Inicia-se com um exemplo do uso da declaração “if” no MATLAB®. for i = l:5, for j = l:5,
if i = = j
A(i,j) = 2;
elseif abs(i-j) = = 1
A(i,j) = –1;
else
A(i,j) = 0;
end end end A Os valores de i e j variam de 1 a 5, varrendo toda a matriz A. Se (if) i for igual a j, A(i,j)=2, ou se (elseif), o valor absoluto de i-j, for igual a 1, A(i,j)=–1, ou (else) A(i,j)=0, se nenhuma das condições anteriores forem satisfeitas. É conveniente, às vezes, controlar a saída de um laço de outro modo além do teste, no início ou no fim dele. O comando “break” permite uma saída antecipada de um “for” ou “while”. Um comando “break” faz o laço mais interno ser terminado imediatamente. Por exemplo:
13 Cap. 13_apendice_2_Reyolando.indd 155
21/09/2015 12:52:49
156
Métodos numéricos e computacionais na prática de engenharias e ciências
%modifica a matriz A clc x = ’s’; for i = l:5, if x = = ‘q’, break end j = l; while j<=5, [‘A(‘num2str(i) ‘,’ num2str(j)’) = ‘num2str(A(i,j))] x = input(‘Modifica? (s-sim, n-não, p-próxima linha, q-sair) =>’); if x = = ’s’,
A(i,j) = input(‘Entre com o novo valor de A(i,j) = = >’);
j=j+l; clc end if x = = ‘n’, j=j+l; clc end
if x = = ‘p’,
clc break end
if x = = ‘q’,
clc break end end end
A2.3 Comandos para execução de expressões Existem comandos para execução de expressões. O comando: [v1, v2, ...., vm]=feval(‘< função>’, a1, a2, ...an) atribui os n argumentos a1, a2, ..., an a uma função e retorna o resultado nas m variáveis v1, v2, ..., vm.
13 Cap. 13_apendice_2_Reyolando.indd 156
21/09/2015 12:52:49
157
Fundamentos de programação em MATLAB®
>> x=rem(5,3) x= 2 >> y=feval(´rem´, 5, 3) y= 2
A2.4 “m – files” (ARQUIVOS “.m”) Os comandos do MATLAB®são normalmente digitados na janela de comando, onde uma única linha de comando é introduzida e processada imediatamente. O MATLAB® também é capaz de executar sequências de comandos armazenadas em arquivos. Os arquivos que contêm as declarações do MATLAB® são chamados arquivos “.m” e consistem em uma sequência de comandos normais do MATLAB®, possibilitando incluir outros arquivos “.m” escritos no formato texto (ASCII). Para editar um arquivo texto na janela de comando do MATLAB®, deve-se selecionar “New M-File” para criar um novo arquivo ou “Open M-File” para editar um arquivo já existente, a partir do menu “File”. Os arquivos também podem ser editados fora do MATLAB® utilizando qualquer editor de texto. Existem alguns comandos e declarações especiais para serem usados nos arqui vos, por exemplo: %Plota uma função y=ax^2 + bx + c no intervalo –5<x<5 clear aux=’s’; while aux= = ‘s’, clc a=input(‘a =’); b=input(‘b =’); c=input(‘c =’); x=–5:0.1:5; y=a*x.^2+b*x+c; plot(y) figure(1) pause clc close aux=input(‘Plotar outro ? (s/n) = => ‘,’s’); end
13 Cap. 13_apendice_2_Reyolando.indd 157
21/09/2015 12:52:49
158
Métodos numéricos e computacionais na prática de engenharias e ciências
O caractere “%” é usado para inserir um comentário no texto; o comando “clear” apaga todos os dados da memória; o comando “input” é usado quando se deseja entrar com um dado a partir da janela de comando; “pause” provoca uma pausa na execução do arquivo até que qualquer tecla seja digitada; “clc” limpa a janela de comando; “figure(1)” mostra a janela gráfica número 1; “close” fecha todas as janelas gráficas.
A2.5 Operações com o disco Os comandos “load” e “save” são usados, respectivamente, para importar dados do disco (rígido ou flexível) para a área de trabalho do MATLAB® e exportar dados da área de trabalho para o disco. Outras operações com o disco podem ser efetuadas, como executar programas externos, trocar o diretório de trabalho, listagem do diretório. Os detalhes estão a seguir.
Manipulação do disco Os comandos “cd”, “dir”, “delete”, “type” e “what” do MATLAB® são usados da mesma maneira que os comandos similares do sistema operacional dos. cd
Troca o diretório de trabalho atual.
dir
Lista o conteúdo do diretório atual.
delete
Exclui arquivo.
type
Mostra o conteúdo do arquivo texto.
what
Lista arquivos “.m”, “.mat” e “.mex”.
Para mais detalhes sobre estes comandos utilize o “help”.
Executando programas externos O caractere ponto de exclamação “!” é um desvio e indica que o restante da linha é um comando a ser executado pelo sistema operacional. Este procedimento vem sendo historicamente utilizado em todas as versões do MATLAB® como “prompt” para indicar a execução de um comando do DOS, sendo muito útil nas versões que usavam somente o DOS. No ambiente Windows, entretanto, esse comando é desnecessário, mas foi mantido nas versões do MATLAB® para Windows. Para entrar com o caractere de desvio no “prompt” do MATLAB®, deve-se colocá-lo no início do comando do DOS ou Windows que se deseja executar. Por exemplo, para carregar um aplicativo como o programa Notepad do Windows (Bloco de Notas), sem sair do MATLAB®, é preciso entrar com: >> ! Notepad
13 Cap. 13_apendice_2_Reyolando.indd 158
21/09/2015 12:52:50
159
Fundamentos de programação em MATLAB®
Uma nova janela é aberta e o Notepad é carregado, podendo ser utilizado da maneira usual. Pode-se usar, também, qualquer comando implícito do DOS, por exemplo: copy, fomat, ren, mkdjr, rmdir.
Importando e exportando dados Os dados contidos na área de trabalho do MATLAB® podem ser armazenados em arquivos, no formato texto ou binário, utilizando o comando “save”. Existem diversas maneiras de utilizar este comando. Por exemplo, para armazenar certas variáveis X, Y e Z pode-se fazer: save
Salva os dados no arquivo binário “matlab.mat”.
save X
Salva a matriz X no arquivo binário “x.mat”.
save arql X Y Z
Salva as matrizes X, Y e Z no arquivo binário “arq1.mat”.
save arq2.sai X Y Z –ascii
Salva as matrizes X, Y e Z no arquivo texto “arq2.sai” com oito dígitos.
save arq3.sai X Y Z –ascii –double
Salva as matrizes X, Y e Z no arquivo texto “arq3.sai” com dezesseis dígitos.
Os dados obtidos por outros programas podem ser importados pelo MATLAB®, desde que esses dados sejam gravados em disco no formato apropriado. Se os dados são armazenados no formato ASCII, e no caso de matrizes, com colunas separadas por espaços e cada linha da matriz em uma linha do texto, o comando “load” pode ser usado. Por exemplo, supõe-se que um programa em linguagem C, depois de executado, monte o arquivo “teste.sai” (mostrado abaixo) que contém uma matriz. 1.0000
2.0000
3.0000
4.0000
5.0000
6.0000
7.0000
8.0000
9.0000
Executando o comando: >> load teste.sai o MATLAB® importa a matriz, que passa a chamar-se “teste”: >> teste teste = 1 4 7
13 Cap. 13_apendice_2_Reyolando.indd 159
2 5 8
3 6 9
21/09/2015 12:52:50
160
Métodos numéricos e computacionais na prática de engenharias e ciências
Obviamente, o MATLAB® pode também importar (através do comando “load”) os dados que foram anteriormente exportados por ele. Por exemplo, para importar as variáveis X, Y e Z, anteriormente exportadas usando o comando “save”, pode-se fazer: save
load
save X
load x
save arq1 X Y Z
load arq1
save arq2.sai X Y Z -ascii
load arq2.sai
save arq3.sai X Y Z -ascii -double
load arq3.sai
Deve-se ressaltar que o comando “save”, quando usado para exportar os dados do MATLAB® em formato texto, exporta apenas um bloco contendo todas as variáveis. E, quando se importa estes comandos através do comando “load”, apenas uma variável com nome do arquivo é importada. Por exemplo: >> X=rand(3,3) X = 0.2190 0.6793 0.5194 0.0470 0.9347 0.8310 0.6789 0.3835 0.0346 >> Y = rand(3,3) Y = 0.0535 0.0077 0.4175 0.5297 0.3835 0.6868 0.6711 0.0668 0.5890 >> save arq2.sai X Y –ascii >> clear >> load arq2.sai >> arq2 arq2 = 0.2190 0.6793 0.5194 0.0470 0.9347 0.8310 0.6789 0.3835 0.0346 0.0535 0.0077 0.4175 0.5297 0.3834 0.6868 0.6711 0.0668 0.5890
13 Cap. 13_apendice_2_Reyolando.indd 160
21/09/2015 12:52:50
Fundamentos de programação em MATLAB®
161
A2.6 Exemplo de programação Método de Newton function[re, it]=fnewton(func, dfunc, x, tol) it=0; x0=x; d=feval( func, x0)/feval(dfunc, x0) while abs(d)>tol x1=xo-d, it=it+1; x0=x1; d= feval(func, xo)/feval(dfunc, x0) end; res=x0 No caso do exemplo de determinar as raízes de: x 3 − 10x 2 + 29x − 20 = 0 Tem-se: function F=f302(x) F=x.^3–10.0x.^2+29.0*x–20.0 Function F=f303(x) F=3*x.2–20*x+29 [x,t]=fnewton(´f302´, ´f303´, 7, 0.0005 x= 5.000 it= 6 No caso de usar o método de Newton para sistemas, tem-se: function[xv,it]=newton(x,f,jf,n, tol) it=0;xv=x; fr=feval(f,xv) while norm(fr)>tol jr=feval(jf,xv); xv1=xv–jr\;xv=xv1; fr=feval(f,xv);
13 Cap. 13_apendice_2_Reyolando.indd 161
21/09/2015 12:52:50
162
Métodos numéricos e computacionais na prática de engenharias e ciências
it=it+1, end; Usando-se, no caso de obtenção das raízes de x 2 + y 2 = 4; xy = 1 com aproximação inicial, x = 3 e y = –1.5, tem-se: function f=f308(v) x=v(1);y=v(2); f=zeros(2,1); f(1)=x^2+y^2–4; f(2)=x*y–1; function jf=f309(v) x=v(1);y=v(2); jf=zeros(2,2) Jf(1, : )=[2*x 2*y] Jf(2, : )=[ y x] >> [rpootsvals, iter]=newtonv([3 –1.5]´, ´f308´, ´f309´, 2, 0, 0.0005) rootsvals= 1.9319 0.5176 iter= 5
13 Cap. 13_apendice_2_Reyolando.indd 162
21/09/2015 12:52:50
apêndice
3
Recursos gráficos e animações em MATLAB®
O objetivo deste apêndice é apresentar recursos gráficos usuais e algumas animações básicas usando o software Matlab®. As animações são sugestões para outras simulações de aplicações específicas. A linguagem de programação apresentada é do próprio Matlab®, e o resultado obtido é uma simulação, que reproduz o comportamento do sistema, cujo funcionamento se deseja estudar. Ressalta-se que o MATLAB® é um sistema interativo, cujo elemento básico de informação é uma matriz. A partir das matrizes consegue-se plotar seus gráficos. Plotando uma sequência de gráficos sobrepostos, pode-se gerar uma animação.
A3.1 Recursos gráficos Existem dois tipos de gráficos em MATLAB®: gráficos 2D e gráficos 3D.
Gráficos 2D “Plot” é uma função básica para desenhar gráficos em 2D. Exemplo: plot(x,y), onde x é a definição do intervalo que se quer plotar y é a função que se deseja plotar.
14 Cap. 14_apendice_3_Reyolando.indd 163
21/09/2015 12:53:23
164
Métodos numéricos e computacionais na prática de engenharias e ciências
Estes são os comandos para plotar gráficos bidimensionais: plot
Plotar linear.
loglog
Plotar em escala loglog.
semilogx
Plotar em semilog.
semilogy
Plotar em semilog.
fill
Desenhar polígono 2D.
polar
Plotar em coordenada polar.
Bar
Gráfico de barras.
stem
Sequência discreta.
stairs
Plotar em degrau.
errorbar
Plotar erro.
hist
Plotar histograma.
rose
Plotar histograma em ângulo.
compass
Plotar em forma de bússola.
feather
Plotar em forma de pena.
pie
Plotar em forma de pizza.
pareto
Plotar em forma de barras.
fplot
Plotar função.
comet
Plotar com trajetória de cometa.
Se Y for um vetor, o comando “plot(Y)” gera um gráfico linear dos elementos de Y versus o índice dos elementos de Y. Por exemplo, para plotar os números [0.0, 0.48, 0.84, 1.0, 0.91, 0.6, 0,14], executa-se o comando “plot”: >> Y = [0.0, 0.48, 0.84, 1.0, 0.91, 0.6, 0,14]; >> plot (Y) e o resultado é mostrado na janela gráfica:
14 Cap. 14_apendice_3_Reyolando.indd 164
21/09/2015 12:53:23
165
Recursos gráficos e animações em MATLAB® 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0
1
2
3
4
5
6
7
Se X e Y forem vetores com dimensões iguais, o comando “plot(X,Y)” gera um gráfico bidimensional dos elementos de X versus os elementos de Y: >> t = 0:0.05:4*pi; >> y = sin(t); >> plot(t,y) resultando em:
1 0.8 0.6 0.4 0.2 0 –0.2 –0.4 –0.6 –0.8 –1
0
14 Cap. 14_apendice_3_Reyolando.indd 165
2
4
6
8
10
12
14
21/09/2015 12:53:24
166
Métodos numéricos e computacionais na prática de engenharias e ciências
Se Y for uma matriz e X for um vetor, “plot(X,Y)” plota sucessivamente as linhas ou colunas de Y versus o vetor X. Se X for uma matriz e Y for um vetor, “plot(X,Y)” plota sucessivamente as linhas ou colunas de X versus o vetor Y. Se X e Y forem matrizes com mesma dimensão, “plot(X,Y)” vai plotar sucessivamente as colunas de X versus as colunas de Y. Se Y for uma matriz, “plot(Y)” vai plotar sucessivamente as colunas de Y versus o índice de cada elemento da linha de Y. A segunda e mais fácil maneira de plotar gráficos com múltiplas linhas é usando o comando “plot” com múltiplos argumentos. Por exemplo: >> plot(t, sin(t), t, cos(t), t, sin(t + pi), t, cos(t + pi))
1 0.8 0.6 0.4 0.2 0 –0.2 –0.4 –0.6 –0.8 –1 1
2
4
6
8
10
12
14
• Estilos de linha e símbolo Os tipos de linhas, símbolos e cores usados para plotar gráficos podem ser controlados se os padrões não forem satisfatórios. Por exemplo: >> X = 0:0.05:1; >> subplot(l2l), plot(X,X.^2,’k*’) >> subplot(l22), plot(X,X.^2,’k --‘)
14 Cap. 14_apendice_3_Reyolando.indd 166
21/09/2015 12:53:24
167
Recursos gráficos e animações em MATLAB® 1
1
0.9
0.9
0.8
0.8
0.7
0.7
0.6
0.6
0.5
0.5
0.4
0.4
0.3
0.3
0.2
0.2
0.1
0.1
0
0
0.5
0
1
0
0.5
1
Outros tipos de linhas, pontos e cores também podem ser usados: Símbolo
Cor
Símbolo
Marcador
Símbolo
Tipo de linha Linha contínua
Y
amarelo
.
Ponto
-
M
lilás
∗
Estrela
--
Linha tracejada
C
azul-claro
°
Círculo
-.
Traços e pontos
R
vermelho
+
+
:
Linha pontilhada
G
verde
x
X
B
azul-escuro
s
Quadrado
W
branco
d
Losango
K
preto
∨
Triângulo para baixo
∧
Triângulo para cima
<
Triângulo para esquerda
>
Triângulo para direita
p
Pentagrama
h
Hexagrama
14 Cap. 14_apendice_3_Reyolando.indd 167
21/09/2015 12:53:24
168
Métodos numéricos e computacionais na prática de engenharias e ciências
Plotando gráficos tridimensionais e contornos Estes são alguns comandos para plotar gráficos tridimensionais e contornos. plot3
Plotar em espaço 3D.
fill3
Desenhar polígono 3D.
comet3
Plotar em 3D com trajetória de cometa.
contour
Plotar contorno 2D.
contour3
Plotar contorno 3D.
clabel
Plotar contorno com valores.
quiver
Plotar gradiente.
mesh
Plotar malha 3D.
bar3
Plotar em forma de barra 3D.
meshc
Combinação mesh/contour.
surf
Plotar superfície 3D.
surfc
Combinação surf/contour.
surfil
Plotar superfície 3D com iluminação.
sice
Plotar visualização volumétrica.
cylinder
Gerar cilindro.
sphere
Gerar esfera.
O comando “mesh(X,Y,Z)” cria uma perspectiva tridimensional plotando os elementos da matriz Z em relação ao plano definido pelas matrizes X e Y. Por exemplo: >> [X,Y] = meshdom(–2:.2:2, –2:.2:2); >> Z = X.* exp(–X..^2 – Y.^2); >> mesh(X,Y,Z) 0.5
0
–0.5 2 1 0 –1 –2 –2
14 Cap. 14_apendice_3_Reyolando.indd 168
–1
0
1
2
21/09/2015 12:53:25
169
Recursos gráficos e animações em MATLAB®
O comando “contour(Z,10)” mostra a projeção da superfície acima no plano xy com 10 isolinhas:
20 18 16 14 12 10 8 6 4 2 2
4
6
8
10
12
14
16
18
20
• Anotações no gráfico O MATLAB® possui comandos de fácil utilização para adicionar informações em um gráfico: title
Título do gráfico.
xlabel
Título do eixo-X.
ylabel
Título do eixo-Y.
zlabel
Título do eixo-Z.
text
Inserir anotação no gráfico.
gtext
Inserir anotação com o mouse.
ginput
Selecionar pontos no gráfico com o mouse.
grid
Linhas de grade.
axis
Define os valores mínimos e máximos dos eixos.
Por exemplo: >> fplot(‘sin’, [–pi pi]) >> title(‘Gráfico da função f(x)=seno(x), –pi<x<pi’)
14 Cap. 14_apendice_3_Reyolando.indd 169
21/09/2015 12:53:25
170
Métodos numéricos e computacionais na prática de engenharias e ciências
>> xlabel(‘x’) >> ylabel(‘f(x)’) >> grid
Gráfico da função f(x) = seno(x), –pi < x < pi
1 0.8 0.6 0.4 0.2 f(x)
0 –0.2 –0.4 –0.6 –0.8 –1 –4
–3
–2
–1
0 x
1
2
3
4
• Manipulação de gráficos Para se adicionar curvas a um gráfico já existente, utiliza-se o comando “hold”. Depois de executado o comando “hold on”, as curvas já existentes no gráfico não são removidas a cada comando “plot”, mas são acrescentadas novas curvas ao gráfico. O comando “hold off” libera a janela de figuras atual para novos gráficos. Por exemplo: >> x = linspace(0, 2*pi, 30); >> y = sin(x); >> z = cos(x); >> plot(x, y); Para incluir a curva do cos(x): >> hold on >> plot(x, z, 'b'); >> hold off
14 Cap. 14_apendice_3_Reyolando.indd 170
21/09/2015 12:53:25
171
Recursos gráficos e animações em MATLAB® 1 0.8 0.6 0.4 0.2 0 –0.2 –0.4 –0.6 –0.8 –1
0
1
2
3
4
5
6
7
A3.2 Animações resultantes de simulações numéricas Entende-se por animação uma sequência de gráficos plotados sobrepostos. O MATLAB® possui funções específicas para a criação de animações (vídeos): Avifile (‘nome_arquivo.avi’)
Gera arquivo .avi para salvar a animação.
Close (ponteiro do arquivo)
Fecha o arquivo de filme.
Getframe
Retorna cada pixel da imagem para a variável de frames.
Addframe (ponteiro do arquivo, variável de frames)
Copia cada quadro do gráfico plotado para o final do arquivo de vídeo.
Axis ([xi xf yi yf zi zf])
Copia cada quadro do gráfico plotado para o final do arquivo de vídeo.
Movie (array_pixel)
Executa o filme.
Movie (array_pixel,n)
Executa o filme n vezes.
Aviread (nome_arquivo)
Lê um arquivo de filme .avi.
A biblioteca de EDOs do MATLAB® possui os seguintes métodos de valor inicial:
14 Cap. 14_apendice_3_Reyolando.indd 171
21/09/2015 12:53:25
172
Métodos numéricos e computacionais na prática de engenharias e ciências ode23
Método explícito de um passo, RK de ordem baixa.
ode45
Método explícito de um passo, RK de ordem média. Este é geralmente o primeiro método a ser tentado em um novo problema.
ode113
Método de passo múltiplo, de Adams-Bashforth-Moulton, de ordens variadas.
A seguir, são exibidos exemplos típicos, usando-se “ode23” e “ode45” para ilustrar o procedimento a ser seguido. Eles são facilmente estendidos ao caso de “ode113” e a situações mais complexas. Deve-se lembrar que se denomina espaço de fase o espaço das variáveis dependentes do sistema dinâmico associado. • Exemplo 1: No caso da equação da mola sujeita a uma força a sin wt, as equações de Lagrange são: mw1′′ + cw1 + hw1 = a sin wt Na forma de equações de estado: w1′ = w 2 w 2′ = −
c h a w 2 − w1 + sin(t) m m m
Estas são escritas na sintaxe do Matlab® deste modo: function wd=spring(t,w); a=2.0; m=2.0; c=1.4;h=0.1; wd = [w(2);–c/m*w(2)-h/m*w(1)+a/m*sin(t)]; >> tspan=[0 100]; >> wo=[0;0]; >> [t,w] = ode23(@mola,tspan,wo); >> plot(t,w(:,1)); >> grid >> xlabel('tempo, segundos'); >> ylabel('Elongamento da mola, metros');
14 Cap. 14_apendice_3_Reyolando.indd 172
21/09/2015 12:53:25
173
Recursos gráficos e animações em MATLAB®
O resultado gerado é:
2.5
Elongamento da mola, metros
2 1.5 1 0.5 0 –0.5 –1
0
10
20
30
40 50 60 tempo, segundos
70
80
90
100
>> plot(w(:,1),w(:,2)); >> xlabel('Velocidade das oscilacoes da mola'); >> ylabel('Amplitude das oscilacoes da mola');
1
Amplitude das oscilações da mola
0.8 0.6 0.4 0.2 0 –0.2 –0.4 –0.6 –0.8 –1
–0.5
0
0.5
1
1.5
2
2.5
Velocidade das oscilações da mola
14 Cap. 14_apendice_3_Reyolando.indd 173
21/09/2015 12:53:26
174
Métodos numéricos e computacionais na prática de engenharias e ciências
• Exemplo 2: No caso da equação de Van der Pol, tem-se: − m(1 − x 2 )x + x = 0 x onde m é um parâmetro positivo. Logo, escolhendo-se y1 = x e y 2 = x a equação de Van der Pol torna-se: y 1 = y 2 y 2 = m(1 − y12 )y 2 − y1 Estas equações escritas na sintaxe do Matlab® ficam deste modo: function yprime=vdpol(t,y) mu=2; yprime = [y(2);mu*(1-y(1)^2)*y(2)–y(1)]; >> tspan = [0 20]; >> yo = [2; 0]; >> [t,y] = ode45(@vdpol,tspan,yo); >> plot(t,y(:,1),t,y(:,2),'--'); >> xlabel('tempo'); >> title('Solucao de Van der Pol');
Solução de Van der Pol
4 3 2 1 0 –1 –2 –3 –4
0
14 Cap. 14_apendice_3_Reyolando.indd 174
2
4
6
8
10 tempo
12
14
16
18
20
21/09/2015 12:53:26
Recursos gráficos e animações em MATLAB®
175
• Exemplo 3: No caso da equação de Lorenz, tem-se: function fv=f505(t, x) % x, y and z are represented by x(1), x(2) and x(3) global r fv=zeros(3, 1); fv(1)=10*(x(2)–x(1)); fv(2)=r*x(1)-x(2)-x(1)*x(3); fv(3)=x(1)*x(2)-8*x(3)/3; % Programa LorMat.m % Calcula e faz o gráfico da equação de Lorentz global r r=input('enter a value for the constant r .. ') simtime=input('enter runtime .. '); acc=input('enter accuracy value .. '); initx=[–7.69 –15.61 90.39]’; %Call ode45 to solve equations [t, x]=ode45('f505', 0, simtime, initx, acc); % root results against time figure(1); plot(t, x); xlabel('time'); ylabel('x'); figure(2); plot(x(:,1), x(:,3)); xlabel('x'); ylabel('z');
14 Cap. 14_apendice_3_Reyolando.indd 175
21/09/2015 12:53:26
176
Métodos numéricos e computacionais na prática de engenharias e ciências
Os gráficos gerados por “LorMat.m” são:
200
150
x
100
50
0
–50
–100
0
1
2
3
4
5
6
7
8
10
20
30
40
time
180 160
z
140 120 100 80 60 –40
–30
–20
–10
0 x
• Exemplo 4: Dinâmica de populações Os arquivos “-m” a seguir contêm os comandos necessários para solucionar o problema de dinâmica de populações. Para fácil utilização, o código do arquivo deve ser gravado no diretório do MATLAB® com o nome “runpop.m”. Primeiramente, cria-se um “programa principal” (runpop.m), que “chamará” o arquivo subsequente (pop.m) que funciona, neste caso, como “função”.
14 Cap. 14_apendice_3_Reyolando.indd 176
21/09/2015 12:53:26
Recursos gráficos e animações em MATLAB®
177
Programa principal: % leitura dos dados iniciais para um sistema de edo 2 × 2. %initial = [0 0.25]; clg %axis; initial(1) = input('Primeiro dado inicial da presa '); initial(2) = input('Segundo dado inicial do predador '); % Intervalo de tempo usado [ti,tf] ti = input('Tempo inicial '); tf = input('Tempo final '); % Constantes referentes a presa e ao predador %k1 = input('Taxa de nascimento da presa '); %k2 = input('Taxa de mortandade da presa '); %k3 = input('Taxa de nascimento do predador '); %k4 = input('Taxa de mortandade do predador '); k1 = 3. k2 = 0.002 k3 = 0.0006 k4 = 0.5 [x, num_y] = ode23('pop',ti,tf,initial); subplot(211), plot(x,num_y(:,1),'– g'),... title(‘Populacao da Presa’),xlabel('t'),grid,... subplot(212),plot(x,num_y(:,2),'– g'),... title(‘Populacao do Predador’),xlabel('t'),grid Função pop (Salvar como pop.m) function xf = pop (t,x) global k1 k2 k3 k4 k1=3.; k2=0.002;
14 Cap. 14_apendice_3_Reyolando.indd 177
21/09/2015 12:53:26
178
Métodos numéricos e computacionais na prática de engenharias e ciências
k3=0.0006; k4=0.5; xf(1)= k1*x(1)–k2*x(1)*x(2); xf(2)= k3*x(1)*x(2)–k4*x(2); Visualizando a solução: Agora que se têm os arquivos necessários para a solução do problema, é só digitar no prompt do MATLAB®: >> runpop Assim, vão ser pedidos alguns dados como população inicial de presa, predadores, tempo inicial e final. Os dados estão a seguir: População inicial da presa = 0,8 População inicial do predador = 0,2 Tempo inicial = 0 Tempo final = 50 Obtém-se o gráfico:
6
População da presa
x 104
4 2 0 –2 0
10
20
30
40
50
40
50
t 2
População do predador
x 104
1.5 1 0.5 0 0
10
20
30 t
14 Cap. 14_apendice_3_Reyolando.indd 178
21/09/2015 12:53:26
179
Recursos gráficos e animações em MATLAB®
Observe-se a relação entre crescimento da presa em relação ao predador e vice-versa. • Exemplo 5: Trajetória de uma bola de tênis com “ top –spin ” Os arquivos “.m” a seguir contêm os comandos necessários para solucionar e disponibilizar visualmente o problema da trajetória de bolas de tênis em diferentes casos. O código do programa principal é salvo com o nome “tenis.m”. Programa principal: % Problema para a trajetória de uma bola de tênis viajando no vácuo, % e no ar na presença de um spin (rotação) %
tenisV = caso no vácuo
% As 4 funções
tenisA = caso no ar sem spin
% utilizadas são:
tenisAsp = caso no ar com rotação positiva
%
tenisAfs = caso no ar com rotação negativa
% Variáveis usadas pelas funções com os campos vetoriais global g alpha w etha % Inicializando as variáveis % Constantes básicas em unidades MKS clg g = 9.81; d = 0.063; m = 0.05; rho = 1.29; alpha = pi*d^2/(8*m)*rho; etha = 1; w = 20; % Condições iniciais h = 1; v0 = 25; theta = pi/180*15; xin = [0, h, v0*cos(theta), v0*sin(theta)]; % Tempo de voo no vácuo tmaxid = (xin(4) + sqrt(xin(4)^2 + 2*g*xin(2)))/g;
14 Cap. 14_apendice_3_Reyolando.indd 179
21/09/2015 12:53:27
180
Métodos numéricos e computacionais na prática de engenharias e ciências
% solução no vácuo [tV, xV] = ode23('tenisV',0,tmaxid,xin); % solução no ar sem spin [tA, xA] = ode23('tenisA',0,tmaxid,xin); % solução com spin [tAsp, xAsp] = ode23('tenisAsp',0,tmaxid,xin); % Preparando a saída gráfica do problema N = max(xV(:,1)); x =0:N/100:N; axis([0, max(xV(:,1)), 0 , max(xV(:,2))]) hold % comando que permite sobrepor os três gráficos (plots) seguintes %1 plot(x, spline(xV(:,1), xV(:,2), x), ':g'); %2 plot(x, spline(xA(:,1), xA(:,2), x), '-- g'); %3 plot(x, spline(xAsp(:,1), xAsp(:,2), x), '–w'); plot(xV(:,1), xV(:,2), ':g'); plot(xA(:,1), xA(:,2), '-- g'); plot(xAsp(:,1), xAsp(:,2), '–w'); Função “tenisV.m” é a função que calcula o campo vetorial para a bola no vácuo. function xdot = tenisV(t,x) global g g=9.81; xdot(1) = x(3); xdot(2) = x(4); xdot(3) = 0; xdot(4) = -g; Função “tenisA.m” é a função que calcula o campo vetorial para a bola no ar sem rotação. function xdot = tenisA(t,x) % sem spin a constante de Magnus CM e ZERO.
14 Cap. 14_apendice_3_Reyolando.indd 180
21/09/2015 12:53:27
181
Recursos gráficos e animações em MATLAB®
global g alpha v = sqrt(x(3)^2+x(4)^2); xdot(1) = x(3); xdot(2) = x(4); xdot(3) = –alpha*0.508*x(3)*v; xdot(4) = –g –alpha*0.508*x(4)*v; Função tenisAsp.m é a função que calcula o campo vetorial para a bola no ar com rotação. function xdot = tenisAsp(t,x) global g alpha w etha v = sqrt(x(3)^2+x(4)^2); % cálculo do campo levando em conta as constantes de arraste CD % e a de Magnus CM aux1 = (0.508 +1/(22.503 + 4.196*(v/w)^0.4))*alpha*v; aux2 = etha*w/(2.022*w + 0.981*v)*alpha*v; xdot(1) = x(3); xdot(2) = x(4); xdot(3) = –aux1*x(3) + aux2*x(4); xdot(4) = –g –aux1*x(4) – aux2*x(3); Visualizando a solução: Agora que os arquivos necessários para a solução do problema foram criados, basta digitar no “prompt” do MATLAB®: >> tenis Assim, obtém-se o seguinte gráfico que ilustra a trajetória da bola de tênis nos três casos que foram estudados: 1. A linha pontilhada indica a trajetória da bola no vácuo. 2. A linha tracejada indica a trajetória da bola no ar sem rotação. 3. A linha contínua indica a trajetória da bola no ar com rotação.
14 Cap. 14_apendice_3_Reyolando.indd 181
21/09/2015 12:53:27
182
Métodos numéricos e computacionais na prática de engenharias e ciências
3
2.5
2
1.5
1
0.5
0
0
5
10
15
20
25
30
35
A seguir, são exibidos alguns exemplos básicos de animações, cabendo ao leitor executá-las: • Exemplo A1 mov = avifile('animaçao1.avi') t = 0:pi/100:10*pi; for i=0:1:50 plot3(sin(t+i).*cos(t+i),sin(t+i),t+i) hold on axis off axis([–1 1 –1 1 0 100]) F=getframe mov = addframe(mov,F); end mov=close(mov); • Exemplo A2 function exemplo=funcao(t,y) B1=1; B2=1; B3=1; A1=1; A2=1; exemplo = [y(2);(–(y(1)–y(3))/B1)/A1; y(4);(–(y(3)–y(5))/B2 – (y(1)–y(3))/B1)/ A2; y(6); (–(y(5)/B3 – (y(3)–y(5))/B2))/A2;];
14 Cap. 14_apendice_3_Reyolando.indd 182
21/09/2015 12:53:27
Recursos gráficos e animações em MATLAB®
183
m=avifile('teste5.avi') yo = [0.1 0.1 0.1 0.1 0.1 0.1]; for tspan=1:0.05:10 [t,y] = ode45(@funcao,[0 tspan],yo); plot(t,y(:,1)); f=getframe; m=addframe(m,f) end m=close(m) • Exemplo A3 function yprime=vdpol(t,y) a=0.398; b=2; c=4; yprime = [–(y(2)+y(3));y(1)+a.*y(2); b+y(3).*(y(1)–c)]; m=avifile('teste2.avi'); yo = [0.1; 0.1; 0.1]; for tspan=1:5:1000 [t,y] = ode45(@vdpol,[0 tspan],yo); plot(t,y(:,3)); f=getframe m=addframe(m,f) end m=close(m) • Exemplo A4 function yprime=vdpol(t,y) a=0.398; b=2; c=4; yprime = [–(y(2)+y(3));y(1)+a.*y(2); b+y(3).*(y(1)–c)]; m=avifile('eod.avi'); yo = [0.1; 0.1; 0.1]; for t=1:5:1000 [t,y] = ode45(@vdpol,[0 t],yo); plot(y(:,1),y(:,3));
14 Cap. 14_apendice_3_Reyolando.indd 183
21/09/2015 12:53:27
184
Métodos numéricos e computacionais na prática de engenharias e ciências
f=getframe m=addframe(m,f) end m=close(m); • Exemplo A5 m=avifile('superficie.avi') x=-3:3; y=1:5; [X,Y]=meshgrid(x,y); for i=–100:1 Z=((X+Y).^2)/2–(X.^3); [X,Y,Z]=peaks(49) surfl(X,Y,Z./i); axis([–4 4 –5 5 –10 10]) axis off; F=getframe; m=addframe(m,F) end m=close(m) • Exemplo A6 video=avifile('trajetoria.avi') s0=20; v0=15; a=2; for i=1:5:100 y=s0+v0*i+(a*(i.^2))/2; xlabel('tempo'); ylabel('espaço'); plot(i,y,'bo'); hold on; axis off; F=getframe; video=addframe(video,F); end video=close(video)
14 Cap. 14_apendice_3_Reyolando.indd 184
21/09/2015 12:53:27
Recursos gráficos e animações em MATLAB®
185
• Exemplo A7 mov = avifile('animaçao1.avi') t = 0:pi/100:10*pi; for i=0:1:50 plot3(sin(t+i).*cos(t+i),sin(t+i),t+i) hold on axis off axis([–1 1 –1 1 0 100]) F=getframe mov = addframe(mov,F); end mov=close(mov);
14 Cap. 14_apendice_3_Reyolando.indd 185
21/09/2015 12:53:27
14 Cap. 14_apendice_3_Reyolando.indd 186
21/09/2015 12:53:27
1 Modelagem conceitual, matemática e numérica em engenharia
2 Solução de sistemas de equações algébricas lineares
3 Solução de sistemas de equações algébricas não lineares
Otimização e programação linear
5
Destaca-se o Método dos Elementos Finitos, nascido na Engenharia de Estruturas Aeronáuticas, na década de 1950, e hoje aplicado a todas as áreas citadas e muitas outras. Apresentam-se, nos Anexos deste livro, algumas implementações de algoritmos em linguagem MATLAB®.
Problemas de autovalores e autovetores
6 Representação de séries de dados experimentais por curvas
7 Equações diferenciais: problemas de valor inicial
8 Integração numérica
9 Equações diferenciais: problemas de valor de contorno
10 Método dos elementos finitos: introdução
Referências Bibliográficas Apêndices
www.blucher.com.br
REYOLANDO MANOEL LOPES REBELLO DA FONSECA BRASIL Doutor em Engenharia Civil. Livre Docente do Departamento de Estruturas da Escola Politécnica da Universidade de São Paulo e Professor Titular de Engenharia Aeroespacial da Universidade Federal do ABC. Bolsista de Produtividade em Pesquisa do CNPq Nível 1B.
JOSÉ MANOEL BALTHAZAR
MÉTODOS NUMÉRICOS E COMPUTACIONAIS
4
Os autores apresentam neste trabalho um apanhado dos métodos numéricos que consideram de maior aplicabilidade às Engenharias e Ciências do século XXI. O objeto é a solução numérica das equações algébricas e diferenciais que regem os fenômenos tratados em mecânica dos sólidos, mecânica dos fluidos, eletromagnetismo, termologia, química, geociências, ciência da computação etc. Aplicações em otimização e gestão de empreendimentos também são consideradas.
BRASIL | BALTHAZAR | GÓIS
CONTEÚDO
MÉTODOS NUMÉRICOS E COMPUTACIONAIS NA PRÁTICA DE ENGENHARIAS E CIÊNCIAS
Doutor em Engenharia Mecânica. Professor Titular do Departamento de Estatística, Matemática Aplicada e Computação da Universidade Estadual Paulista "Júlio de Mesquita Filho" e Professor Senior do Instituto Tecnológico de Aeronáutica. Bolsista de Produtividade em Pesquisa do CNPq Nível 1A.
WESLEY GÓIS
REYOLANDO M. L . R. F. BRASIL JOSÉ MANOEL BALTHAZAR WESLEY GÓIS
Doutor em Engenharia Civil. Professor Adjunto de Engenharia Aeroespacial da Universidade Federal do ABC.