Baixe o app para aproveitar ainda mais
Prévia do material em texto
Métodos Computacionais em Engenharia UNIGRANRIO U N I V E R S I D A D E Vá além da sala de aula ! Modelos Matemáticos Núcleo de Educação a Distância www.unigranrio.com.br Rua Prof. José de Souza Herdy, 1.160 25 de Agosto – Duque de Caxias - RJ Reitor Arody Cordeiro Herdy Pró-Reitor de Administração Acadêmica Carlos de Oliveira Varella Pró-Reitor de Pesquisa e Pós-graduação Emilio Antonio Francischetti Pró-Reitora Comunitária Sônia Regina Mendes Direção geral: Jeferson Pandolfo Revisão: Camila Andrade, Laís Sá e Mariana Baptista Produção editoração gráfica: Magno Dal Magro Desenvolvimento do material: Leonardo Tunala Desenvolvimento instrucional: Josane Mittmann Copyright © 2018, Unigranrio Nenhuma parte deste material poderá ser reproduzida, transmitida e gravada, por qualquer meio eletrônico, mecânico, por fotocópia e outros, sem a prévia autorização, por escrito, da Unigranrio. UNIGRANRIO U N I V E R S I D A D E Vá além da sala de aula ! Sumário Modelos Matemáticos Objetivos .......................................................................................... 04 Introdução ........................................................................................ 05 1. Equações Diferenciais e Algébricas: Série de Taylor ................... 06 1.1 Encontrando a Solução por meio do Cálculo Diferencial ............ 06 1.2 Série de Taylor ................................................................... 09 2. Simulações Computacionais .................................................. 11 Síntese ............................................................................................ 17 Referências Bibliográficas ................................................................... 18 Objetivos Ao final desta unidade de aprendizagem, você será capaz de: ▪ Usar a série de Taylor para desenvolver problemas numéricos, a partir de modelos matemáticos; ▪ Executar simulação computacional do problema numérico. 4 Métodos Computacionais em Engenharia Introdução Como sabemos, os processos, transformações químicas e/ou fenômenos físicos são representados por modelos matemáticos. Os modelos numéricos, juntamente com simulações computacionais, podem substituir, com algum grau de precisão, um método matemático, para que possamos encontrar a solução de um modelo matemático. Você, como conhecedor de cálculo diferencial, com certeza já percebeu que o cálculo de uma velocidade terminal, como no caso de um saltador em queda livre, é, na verdade, o cálculo de sua velocidade máxima. Então, imagine que essa velocidade pode ser determinada facilmente por meio do conceito de inclinação da curva em um ponto (que é essencialmente o significado gráfico da derivada de uma função), sem que seja necessário um método matemático ou simulação. Para entendermos essa técnica, vamos relembrar, por meio do exemplo do saltador, a relação entre derivada e inclinação da curva, resolvendo, ainda o problema por meio do conceito de diferenças finitas. Em seguida, vamos construir o mesmo problema utilizando a série de Taylor, uma série infinita, para, então, simular o problema numérico. 5Métodos Computacionais em Engenharia 1. Equações Diferenciais e Algébricas: Série de Taylor 1.1 Encontrando a Solução por meio do Cálculo Diferencial Vamos iniciar esse tópico observando o Gráfico 1. Perceba a curva construída a partir da função, que é a solução exata do modelo que iremos estudar. Gráfico 1 - Curva diminuindo de inclinação desde o ponto A até o ponto D. Fonte: Do autor. Nesse curva de variável dependente versus variável independente, existem quatro retas que tocam (tangentes) a curva em quatro pontos: A, B, C e D. Essas quatro retas representam a inclinação da curva nesses pontos. Podemos perceber que a inclinação das retas diminui desde o ponto A até o ponto D. Além disso, o ângulo que elas têm com o eixo horizontal diminui. A diminuição das inclinações das retas nestes pontos indica que toda a curva está diminuindo de inclinação ao longo do tempo, ou seja, a curva está ficando cada vez mais horizontal. Quando a curva estiver totalmente horizontal, a partir de um determinado instante de tempo, seu ângulo de inclinação será zero. Se a inclinação de uma curva for zero, a partir de um ponto em diante, a sua derivada também será zero. Portanto, não existirão mais variações no processo a partir desse mesmo ponto. Vamos, agora, aplicar essa ideia em um exemplo prático. O modelo matemático a seguir, segundo Chapra (2013), é uma equação diferencial ordinária (EDO) e pertence ao exemplo do saltador em queda livre. 0 0 2 4 6 8 10 12 14 16 10 20 30 40 50 60 6 Métodos Computacionais em Engenharia Onde a gravidade g = 9,81 m/s2, o coeficiente de arraste CD = 0,25 e a massa do saltador é m = 68,1 kg. Nesse exemplo, o saltador, ao cair em queda livre, descreve uma trajetória semelhante a do Gráfico 1. Do mesmo modo, quando a inclinação da curva for zero, a partir de um instante de tempo, a derivada será zero; isso significa que a variação de velocidade também será zero (nula) a partir desse instante. Então, não ocorrerão mais variações no “processo” a partir desse instante, ou seja, o saltador terá atingido sua velocidade terminal ou máxima. Utilizando o cálculo diferencial, você pode determinar a velocidade máxima do saltador. Veja como: Quando a derivada é zero, então . Assim, substituindo na equação, temos: Levando o termo -(0,25/68,1)v2 para o lado esquerdo da equação, isolando a velocidade e resolvendo, temos: Logo, a velocidade terminal é v=51,6938 m/s. O conceito de velocidade máxima que estudamos é exatamente igual ao estudado na otimização de funções. As funções algébricas possuem pontos máximos (ou mínimos), em que a primeira derivada da função é igual a zero, ou seja, no ponto onde a curva possui ²DCdv g v dt m = − 0dv dt = 20, 25 0,259,81 ² 0 9,81 68,1 68,1 dv v v dt = − ⇒ = − 2 9,81 9,81 = = (0,25 / 68,1) (0,25 / 68,1) v v⇒ Importante 7Métodos Computacionais em Engenharia inclinação nula. O modelo matemático está para sua solução exata do mesmo modo como a derivada de uma função está para essa função de origem. Portanto, derivando a solução exata, chegamos ao modelo matemático. Nesse exemplo, o próprio modelo matemático é a derivada da função. Então, basta zerar o termo de derivada e isolar a variável dependente (v) para encontrarmos a velocidade terminal. Entretanto, você não conseguiria determinar o instante de tempo em que o saltador atinge a velocidade terminal com essa estratégia, pois, para isso, precisaria de mais uma equação, ou seja, da solução exata, e, assim, “voltaria à estaca zero”. Se você foi um bom aprendiz de cálculo diferencial, pode se aprimorar nos métodos computacionais para determinar todas as informações pertinentes ao processo, sem deixar de lado seu aprendizado. Veja como os métodos computacionais podem auxiliar na determinação do tempo: Primeiramente, precisamos construir o problema numérico e, para isso, vamos recorrer novamente à definição de derivada do cálculo diferencial. De acordo com esse cálculo, a derivada é também o limite da relação entre duas diferenças finitas quando a diferença no denominador tende a zero, ou seja: A aproximação acima mostra que o termo diferencial pode ser substituído pela relação entre diferenças finitas no modelo, por isso é chamada de aproximação por diferenças finitas. Os índices ti e ti+1 significam o instante de tempo anterior e tempo posterior, respectivamente, que é uma nomenclatura importante do problema numérico. Vamos substituir esse resultado no modelo matemático: Onde v(t) do lado direito deve se tornar v(ti). Levando o denominador para o lado direito da equação e rearranjando o modelo, este fica na forma numérica final: 1 0 1 ( ) ( ) = lim = ( ) i i t i i v t v tdv v v dt t t t t + ∆ → + −∆ ∆ ∆ ∆ − 21 1 ( ) ( ) 0, 259,81 ( ) ( ) 63,1 i i i i iv t v t v t t t + + − = − − 8 Métodos Computacionais em Engenharia Esse modelo ou problema numérico, assim indexado, mostra que os valores posteriores de velocidade são sempre calculados a partir dos valores anteriores. Dessa forma, os valores de velocidade são determinados, passo a passo, por meio de cálculos repetidos. Dessa abordagem é formalmente chamada de método de Euler. O computador saberá parar quando os valores de velocidade estiverem variando abaixo de um desvio (erro) mínimo entre v(ti+1) e v(ti), que chamamos de tolerância; é assim que usamos o chamado critério de parada. Nesta unidade curricular, podemos fazer os cálculos computacionais à mão, utilizando uma simples calculadora científica; entretanto, também podemos fazê-los utilizando a linguagem computacional gratuita GNU Octave para desenvolver simulações computacionais. Essa linguagem é muito similar ao MATLABⓇ, o qual está entre as linguagens mais profissionais para esse tipo de tarefa. A simulação computacional também pode ser executada em softwares de planilhas como o ExcelⓇ (QUARTERONI; SALERI, 2007). A derivada de uma função consiste no limite da função quando a variação da variável independente tende a zero. Saiba mais sobre a relação entre limite e derivada, assistindo ao vídeo proposto. 1.2 Série de Taylor O mesmo problema numérico encontrado na seção anterior também pode ser facilmente encontrado a partir de uma série infinita: a série de Taylor. A série é infinita porque possui uma infinidade de termos que são usados para elevar a precisão do problema numérico, elevando, em contrapartida, o esforço computacional para encontrar a solução. Veja a forma geral da série de Taylor: 1 1 0, 25( ) ( ) 9,81 ( )² ( ) 63,1i i i i i v t v t v t t t+ + = + − − Vídeo Assista agora 9Métodos Computacionais em Engenharia Observe que, no segundo termo da série de Taylor, usa-se a primeira derivada f ’(xi); no terceiro termo, usa-se a segunda derivada f ”(xi), e assim por diante. O objetivo da série de Taylor é aumentar a precisão da aproximação e essa precisão é aumentada quanto mais termos são usados do lado direito da igualdade. O termo Rn está associado ao erro de truncatura (ou truncamento). Em alguns casos, reduzir o erro de truncatura pode elevar o erro de arredondamento. A série de Taylor truncada no segundo termo ao lado direito da igualdade fica assim: Onde f(xi+1) é o valor da função no tempo posterior; f(xi) é o valor da função no tempo anterior; f’(xi) é o valor da primeira derivada da função no tempo anterior; e h é o valor do passo ou intervalo de tempo. A série de Taylor pode ser adaptada ao problema do saltador, ficando da seguinte forma: Substituindo o termo dv/dt pela equação do modelo matemático, teremos: Assim, temos o problema numérico de diferenças finitas obtido a partir da série de Taylor truncada no segundo termo. Observe que, do lado direito da igualdade, as variáveis dependentes e/ou independentes ganham o índice numérico do tempo anterior, e os outros valores constantes não ganham índices numéricos, tais como g, Cd e m. A vantagem da série de Taylor em relação à aproximação por diferenças finitas é que podemos usar mais termos ( )(3) 21 1 1 1 ''( ) ( )( ) ( ) '( ) ³ ... 2! 3! ! n n i i n f x f xff x f x f x h h h h R n+ = + + + + + + 1 1( ) ( ) '( )i if x f x f x h+ = + 1( ) ( ) .i i dvv t v t passo dt+ = + 1( ) ( ) . ²( ) .i i i cdv t v t g v t passo m+ = + − da série para elevar a precisão do problema numérico. Por exemplo, para o mesmo problema numérico formulado a partir da série de Taylor truncada no terceiro membro, temos: 2. Simulações Computacionais Para simularmos o problema numérico, precisamos adaptá-lo à linguagem computacional que usaremos. Nesse caso, usaremos o GNU Octave, suprimindo os termos ti+1 e ti e substituindo simplesmente por i. Desse modo, temos: A equação acima deve ser uma linha de código digitada dentro de um laço de repetição de cálculos (laço for). Uma versão mais simples desse código usado para a simulação está representado abaixo. Nele, o critério de parada não está inserido, ou seja, o que define a parada é o valor do laço de repetição. Quadro 1: Código escrito em GNU Octave para simular o problema do saltador. Fonte: Do autor. 1 1( ) ( ) . ²( ) . 2 . ( ) . ² 2i i i i cd cdv t v t g v t passo v t passo m m+ = + − + − ( 1) ( ) . ²( ) .i cdv t v i g v i passo m + = + − 1. %%% simulação numérica do saltador 2. clear all %% limpa todas as variáveis antes de começar 3. passo = 2; %% esse é o valor do passo 4. v(1) = 0; %% condição inicial da velocidade 5. for i=1:15 %% início do laço de repetição (for) 6. v(i+1) = v(i) + (9.81 - (0.25/68.1)*(v(i))^2)*passo 7. end %% fim do laço de repetição (for) 8. disp(v); %% mostra os resultados na linha de comando 11Métodos Computacionais em Engenharia Esse código e outros serão mais exercitados, mas observe que o comando for i=1:15 na linha 7, força a simulação a repetir 15 vezes os cálculos entre as linhas 8 e 10. Na linha 9, está nosso problema numérico, que é função do valor do passo, ou seja, da diferença entre o instante de tempo posterior e anterior que nós mesmos podemos definir como sendo igual a 2s (dois segundos), na linha 4. As frases na cor verde, precedidas de %%, são apenas comentários explicativos e não são executados pelo GNU Octave na simulação. O resultado da simulação acima é mostrado na linha de comando, por causa da função nativa disp() inserida no código, na linha 12. A saída ou retorno da função está abaixo: Quadro 2: Saída da simulação na linha de comando do Octave. Fonte: Do autor. Observe que a velocidade (v) atinge um valor constante de 51,6938 somente a partir da 12ª (décima segunda) repetição do laço for. Esse valor corresponde a 24 segundos, pois o valor do passo é igual a 2s (dois segundos). Assim, podemos concluir que o saltador atingirá a velocidade terminal em 24 segundos. Inserindo o critério de parada no código, a simulação não se estenderia além da 12ª (décima segunda) repetição, economizando, assim, tempo de esforço computacional; por isso o critério de parada é tão importante. Para inserir o critério de parada, usamos o cálculo de um valor de desvio entre uma repetição e outra, que pode ser o erro relativo. A tolerância é um valor que nós definimos e que o erro relativo deve atingir para que a simulação seja encerrada e retorne o resultado. Abaixo, temos o erro relativo calculado para cada uma das três primeiras repetições (iterações): >> simulacao Columns 1 through 9: 0.00000 19.62000 36.41368 46.29832 50.18018 51.31229 51.60078 51.67129 51.68834 Columns 10 through 16: 51.69245 51.69344 51.69368 51.69373 51.69375 51.69375 51.69375 12 Métodos Computacionais em Engenharia Observe que o erro relativo diminui ao longo da simulação. Com o critério de parada, se a tolerância for de 0,01% (quarta casa decimal), a simulação não tardará em parar e retornará um resultado com 4 (quatro) casas decimais de precisão. A prática e habilidade vêm com o exercício, por isso, não perca tempo. Instale o OCTAVE em seu computador ou use os computadores da universidade para executar o código acima e gerar os resultados. Durante os estudos, você irá confrontar-se com dificuldades que são essenciais ao aprendizado, tais como os erros de digitação, por exemplo. Observe a presença de vários parênteses “()” no código, que costumam ser a causa mais comum dos erros de digitação, tanto no OCTAVE, como no EXCELⓇ ou em qualquer linguagem de programação. Fique atento, pois o código deve ser digitado exatamente como está no quadro. Os cálculos realizados pelo computador também podem ser feitos manualmente, utilizando uma calculadora científica. Vamos realizar esses cálculos, e, para isso, vamos montar a expressão da primeira iteração: Observe que as constantes e o valor de passo jáforam substituídos, pois não mudarão durante a simulação. Substituindo o valor de velocidade inicial (v(1) = 0), temos: 1 1 ( ) ( ) 19,62 0iteração (1): (1) 100% 100% 100% ( ) 19,62 36,4137 19,62iteração (2): (2) 100% 46,12% 36,4137 46,2983 36,4137iteração (3): (3) 100% 21,35% 46,2983 i i i v t v terro x x v t erro x erro x + + − − = = = − = = − = = Importante Baixe agora 0,25(2) (1) 9,81 . ²(1) .2 68,1 v v v = + − 0,25(2) 0 9,81 .0² .2 68,1 v = + − 13Métodos Computacionais em Engenharia Onde v(2) é o valor da velocidade no segundo intervalo de tempo; logo, v(2)=9,812=19,62 m/s. Esses cálculos podem ser feitos com uma calculadora científica, mas, se você quiser executar esses cálculos na linha de comando do GNU Octave, use os seguintes comandos: Quadro 3: Comandos para executar a primeira iteração no Octave. Fonte: Do autor. Para continuar executando no Octave, basta recuperar o último comando com a tecla direcional para cima (Figura 1), substituir os índices da velocidade (i) e clicar em Enter novamente. Figura 1: Tecla direcional para cima recupera os comandos. Vamos para a segunda iteração: Onde v(3) é o valor da velocidade no terceiro intervalo de tempo, v(2) será a velocidade calculada na iteração anterior. Substituindo, temos: E assim sucessivamente: >> v(1) = 0; >> v(2) = v(1) + ((9.81 - (0.25/68.1)*(v(1))^2))*2 20,25v(3) = v(2) + 9,81 - . v (2) . 2 68,1 2 0,25v(3) = 19,62 + 9,81 - . 19,62 . 2 = 36,4137 m/s 68,1 20,25v(4) = 36,4137 + 9,81 - . 36,4137 . 2 = 46,2983 m/s 68,1 20,25v(5) = 46,2983 + 9,81 - . 46,2983 . 2 = 50,1802 m/s 68,1 14 Métodos Computacionais em Engenharia Como sabemos, esse cálculos também podem ser feitos em outras linguagens computacionais, tais como o C, ExcelⓇ etc. Existem casos em que o modelo matemático consiste em mais de uma equação diferencial. Nesse caso, é um sistema de equações diferenciais que deve ser solucionado por meio de técnicas e ferramentas computacionais mais avançadas. Essas técnicas e ferramentas fazem parte do escopo de uma disciplina mais avançada em métodos computacionais. Abaixo, temos um código escrito em GNU Octave (daqui por diante referido apenas como Octave) mais completo para a execução desses cálculos com critério de parada. Esse código ainda “plota” um gráfico semelhante ao Gráfico 1: Vídeo Assista agora 1. %%% simulação numérica do exercício 2. clear all %% limpa todas as variáveis antes de começar 3. 4. g = 9.8; 5. Cd = 0.25; 6. m = 68.1; 7. 8. passo = 2; %% este é o valor do passo 9. tol = 0.0001; %% valor de tolerância admitido 10. 11. v(1) = 0; %% condição inicial da velocidade (0 metros por segundo) 12. t(1) = 0; %% valor de tempo inicial (0 segundos) 13. 14. for i=1:1000 %% início do laço de repetição (for) para muitos valores de i 15. t(i+1) = t(i) + passo; %% cria o vetor tempo para o gráfico 16. v(i+1) = v(i) + (g - (Cd/m)*(v(i))^2)*passo; 17. 18. erro = (abs(( v(i+1) - v(i))/( v(i+1)))); %% calcula o erro iterativo 19. 20. if erro <= tol %% compara o erro com a tolerância 21. break %% comando que encerra os cálculos, caso seja verdadeiro 15Métodos Computacionais em Engenharia Quadro 4: Código escrito em Octave para os cálculos com critério de parada baseado em erro iterativo. Fonte: Do autor. 22. else 23. end 24. 25. end %% fim do laço de repetição (for) 26. disp(v); %% mostra os resultados na linha de comando 27. figure(1), plot(t, v); 16 Métodos Computacionais em Engenharia Síntese As condições de máximo ou mínimo dos modelos matemáticos podem ser, até certo ponto, determinados por meio do cálculo diferencial. Entretanto, as simulações computacionais podem oferecer informações mais abrangentes sobre os processos representados por esse modelos. Por meio de uma série infinita, um modelo matemático pode ser aproximado a um problema numérico e simulado computacionalmente. Essa simulação tanto pode determinar condições de máximo ou mínimo como também outras informações pertinentes ao processo. Ao longo da simulação, pode-se calcular o erro entre os valores determinados pela solução numérica, e esses desvios são usados no critério de parada para encerrar a simulação. Os cálculos da simulação podem ser realizados tanto manualmente, com uma calculadora científica, como com a ajuda de uma linguagem computacional específica para esse fim. 17Métodos Computacionais em Engenharia Referências Bibliográficas CHAPRA, Steven C. Métodos numéricos aplicados com Matlab para engenheiros e cientistas. 3 ed. São Paulo: Mcgraw Hill, 2013. FERRETTO MATEMÁTICA. Derivada de uma Função (Aula 3). Disponível em: https://www.youtube.com/watch?v=OHi7owgHqcU. Acesso em: 29 jan. 2018. QUARTERONI, A.; SALERI, F. Cálculo científico com MATLAB e Octave. Milano: Springer, 2007. SIMULTECH. Solução de sistema de EDOs com a rotina ode45 do Matlab - Ex.: Pêndulo. Disponível em: https://www.youtube.com/watch?v=F_ F0g91Jfbg. Acesso em: 29 jan. 2018. 18 Métodos Computacionais em Engenharia
Compartilhar