Skip to main content

Métodos Numéricos e Computacionais na Prática de Engenharias e Ciências

Page 1

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 linea­ridade 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 tabe­lados 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 = [1111] 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.


Turn static files into dynamic content formats.

Create a flipbook
Métodos Numéricos e Computacionais na Prática de Engenharias e Ciências by Editora Blucher - Issuu