Corda Vibrante: mudanças entre as edições

De Física Computacional
Ir para navegação Ir para pesquisar
(11 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 2: Linha 2:


== Método FTCS ==
== Método FTCS ==
== Método Explícito ==
 
=== Sobre estabilidade ===
O método FTCS (Forward Time Central Space) é uma abordagem progressiva no tempo e centrada no espaço. Em outras palavras, ao lidarmos com uma função de duas variáveis, buscamos uma solução futura em termos do tempo, centrada em uma vizinhança espacial. Para a resolução numérica da equação diferencial unidimensional da onda, optamos por trabalhar exclusivamente com o método explícito.
 
=== Método Explícito ===
 
Para aplicar o método, é necessário inicialmente discretizar tanto as variáveis espaciais quanto as variáveis temporais. Seja a função <math> y(t,x): \mathbb{R}^{2} \mapsto \mathbb{R} </math>, sejam os intervalos <math> \left [ 0,X \right ], \left [ 0,T \right ]\subset \mathbb{R} </math> e <math> N,M\in \mathbb{N} </math>, discretizamos os intervalos em espaçamentos iguais <math> \Delta x = X/N </math>, <math> \Delta t = T/M </math> de tal maneira que obtemos as sequências crescentes monótonas <math>\left \{ x_{i} \right \}_{i=0}^{N} </math> e <math>\left \{ t_{i} \right \}_{j=0}^{M} </math> . Assim obtemos uma grade de malhas de pontos <math> (t_{i}, x_{i}) </math> onde a função <math> y(t,x) </math> tem seus valores aproximados por <math> y(t_{i}, x_{i}) </math> denotado <math> y_{j}^{n} </math>. Uma abordagem comum envolve a discretização da primeira derivada no tempo utilizando uma diferença finita progressiva baseada na expansão em séries de Taylor até a primeira ordem :
 
<center>
<math>
\frac{\partial y}{\partial t} \approx \frac{y(t+\Delta t, x) - y(t, x)}{\Delta t} = \frac{y_{j}^{n+1} - y_{j}^{n}}{\Delta t}
</math>
</center>
 
Discretizando a derivada temporal segunda utilizando um diferença finita regressiva :
 
<center>
<math>
\frac{\partial^2 y}{\partial t^2} \approx  \frac{\partial}{\partial t} \left(\frac{y_{j}^{n+1} - y_{j}^{n}}{\Delta t}\right) \approx \frac{1}{\Delta t}\left ( \frac{y(t+\Delta t, x) - y((t + \Delta t)- \Delta t, x)}{\Delta t} - \frac{y(t,x) - y(t - \Delta t, x)}{\Delta t }\right ) = \frac{y(t + \Delta t, x) + y(t - \Delta t, x) - 2y(t, x)}{(\Delta t)^{2}} = \frac{y_{j}^{n+1} + y_{j}^{n-1} - 2y_{j}^{n}}{(\Delta t)^{2}}
</math>
</center>
 
note que o processo retorna uma derivada de diferenças finitas centrada, além disso obtemos um aproximação de segunda ordem. O mecanismo de discretização das derivadas espaciais é completamente análogo, a derivada segunda centrada :
 
<center>
<math>
\frac{\partial^{2} y}{\partial x^{2}} \approx \frac{y_{j+1}^{n} + y_{j-1}^{n} - 2y_{j}^{n}}{(\Delta x)^{2}}
</math>
</center>
 
 
Aplicando as expressões das diferenciais na equação da onda :
 
<center>
<math>
\frac{\partial^2 y}{\partial t^2} = c^{2} \frac{\partial^2 y}{\partial x^2} \mapsto \frac{y_{j}^{n+1} + y_{j}^{n-1} - 2y_{j}^{n}}{(\Delta t)^{2}} = c^{2}\frac{y_{j+1}^{n} + y_{j-1}^{n} - 2y_{j}^{n}}{(\Delta x)^{2}}
</math>
</center>
 
defina <math> a := c\Delta t / \Delta x </math> e explicite a variável no estado temporal futuro, obtemos :
 
<center>
<math>
y_{j}^{n+1} = 2\left(1 - a^{2}\right)y_{j}^{n} - y_{j}^{n-1} + a^{2}\left ( y_{j+1}^{n} + y_{j-1}^{n}\right )
</math>
</center>
 
uma equação explicita no tempo <math> n+1 </math> dependendo somente de <math> n </math> e <math> n-1 </math>.
 
=== Estabilidade ===
 
Para analisar a estabilidade da solução numérica para a equação da onda, utilizaremos o método de Von Neumann. O procedimento consiste em utilizar a transformada de Fourier para determinar a estabilidade do esquema, a solução problema tem a forma :
 
<center>
<math>
y_{j}^{n+1}(\xi) = A(\xi \Delta x, \Delta x, \Delta t) y_{j}^{n}(\xi)
</math>
</center>
 
onde <math> \xi \in \left [ -\pi / \Delta x, \pi / \Delta x \right ] </math> e <math> A </math> é o fator de amplificação, observe que podemos estudar a estabilidade da aproximação somente analisando o fator de amplificação.
 
'''Teorema''' : Se o fator de amplificação não depender de <math> \Delta x </math> nem <math> \Delta t </math>, então a aproximação é estável se <math> \left | A(\xi \Delta x) \right | \leq 1 </math>.
 
Vejamos a estabilidade da aproximação de diferenças finitas para a equação do calor, utilizando as componentes de Fourier <math >y_{j}^{n} \mapsto B^{n}e^{ikj\Delta x} </math>, obtemos :
 
<center>
<math>
B^{n+1}e^{ikj\Delta x} = 2\left ( 1-a^{2} \right )B^{n}e^{ikj\Delta x} - B^{n-1}e^{ikj\Delta x} + a^{2}\left ( B^{n}e^{ik(j+1)\Delta x} + B^{n}e^{ik(j-1)\Delta x} \right )
</math>
</center>
 
simplificando os termos em comum :
 
<center>
<math>
B^{n+1} + B^{n-1}  = B^{n} \left [ 2\left ( 1-a^{2} \right ) + a^{2}\left (e^{ik\Delta x} + e^{-ik\Delta x}\right )\right ]
</math>
</center>
 
note que <math> e^{ik\Delta x} - e^{-ik\Delta x} = 2cos(k\Delta x) </math>,
 
<center>
<math>
\frac{B^{n+1} + B^{n-1}}{B^{n}} = 2\left ( 1-a^{2} \right ) + 2a^{2}cos(k\Delta x)
</math>
</center>
 
utilizando a identidade trigonométrica <math> cos(\theta) = cos^{2}(\theta /2) - sen^{2}(\theta) </math> e a identidade trigonométrica fundamental, obtemos :
 
<center>
<math>
A - \frac{1}{A} = -2\left [ 2a^{2}sen^{2}\left ( \frac{k\Delta x}{2} \right ) -1 \right ]
</math>
</center>
 
onde <math> A = B^{n+1}/B^{n} </math> é o fator de amplificação. Defina <math> d :=  2a^{2}sen^{2}\left (k\Delta x / 2 \right ) -1 </math>. Portanto obtemos a equação quadrática com soluções :
 
<center>
<math>
A^{2} + 2dA + 1 = 0 \Rightarrow A_{1,2} = -d \pm \sqrt{d^{2}-1}
</math>
</center>
 
se <math> \left | d \right | > 1 </math>, então
 
<center>
<math>
-1>d>1 \Rightarrow -1 > 2a^{2}sen^{2}\left (k\Delta x / 2 \right ) -1 > 1  \Rightarrow 0 > 2a^{2}sen^{2}\left (k\Delta x / 2 \right ) > 2 \Rightarrow 0 > \left( asen\left (k\Delta x / 2 \right ) \right)^{2} > 1
</math>
</center>
 
o que é um aburdo, pois esse termo é real. Se <math> \left | d \right | \leq  1 </math> , então
 
<center>
<math>
-1\leq d \leq 1 \Rightarrow -1 \leq 2a^{2}sen^{2}\left (k\Delta x / 2 \right ) -1 \leq 1  \Rightarrow 0 \leq 2a^{2}sen^{2}\left (k\Delta x / 2 \right ) \leq 2 \Rightarrow 0 \leq \left( asen\left (k\Delta x / 2 \right ) \right)^{2} \leq 1
</math>
</center>
 
note que <math> sen\left (k\Delta x / 2 \right ) \leq 1 </math>, logo <math> a \leq 1 </math>. Portanto para o método ser condicionalmente estável
 
<center>
<math>
\frac{c \Delta t}{ \Delta x} \leq 1
</math>
</center>


== Análise espectral ==
== Análise espectral ==

Edição das 23h57min de 20 de abril de 2024

A equação da onda

Método FTCS

O método FTCS (Forward Time Central Space) é uma abordagem progressiva no tempo e centrada no espaço. Em outras palavras, ao lidarmos com uma função de duas variáveis, buscamos uma solução futura em termos do tempo, centrada em uma vizinhança espacial. Para a resolução numérica da equação diferencial unidimensional da onda, optamos por trabalhar exclusivamente com o método explícito.

Método Explícito

Para aplicar o método, é necessário inicialmente discretizar tanto as variáveis espaciais quanto as variáveis temporais. Seja a função , sejam os intervalos e , discretizamos os intervalos em espaçamentos iguais , de tal maneira que obtemos as sequências crescentes monótonas e . Assim obtemos uma grade de malhas de pontos onde a função tem seus valores aproximados por denotado . Uma abordagem comum envolve a discretização da primeira derivada no tempo utilizando uma diferença finita progressiva baseada na expansão em séries de Taylor até a primeira ordem :

Discretizando a derivada temporal segunda utilizando um diferença finita regressiva :

note que o processo retorna uma derivada de diferenças finitas centrada, além disso obtemos um aproximação de segunda ordem. O mecanismo de discretização das derivadas espaciais é completamente análogo, a derivada segunda centrada :


Aplicando as expressões das diferenciais na equação da onda :

defina e explicite a variável no estado temporal futuro, obtemos :

uma equação explicita no tempo dependendo somente de e .

Estabilidade

Para analisar a estabilidade da solução numérica para a equação da onda, utilizaremos o método de Von Neumann. O procedimento consiste em utilizar a transformada de Fourier para determinar a estabilidade do esquema, a solução problema tem a forma :

onde e é o fator de amplificação, observe que podemos estudar a estabilidade da aproximação somente analisando o fator de amplificação.

Teorema : Se o fator de amplificação não depender de nem , então a aproximação é estável se .

Vejamos a estabilidade da aproximação de diferenças finitas para a equação do calor, utilizando as componentes de Fourier , obtemos :

simplificando os termos em comum :

note que ,

utilizando a identidade trigonométrica e a identidade trigonométrica fundamental, obtemos :

onde é o fator de amplificação. Defina . Portanto obtemos a equação quadrática com soluções :

se , então

o que é um aburdo, pois esse termo é real. Se , então

note que , logo . Portanto para o método ser condicionalmente estável

Análise espectral

Uma possível forma para quantitativamente analisar o som gerado por uma corda vibrante é estudar as frequências que compõem o seu movimento, técnica essa chamada de análise espectral. Antes de prosseguirmos vamos recapitular alguns resultados da álgebra linear

Supremacia da álgebra linear

O seguinte conjunto é o espaço de funções reais de uma variável. Esse conjunto é um espaço vetorial, logo podemos utilizar toda a artilharia da álgebra linear, em especial, estamos interessados no sub-espaço gerado pela base [1], pois elementos de , interpretados como sinais sonoros, representam um frequência pura de valor . Dessa forma, um sinal arbitrário pode ser escrito em termos das frequências puras que o formam

E podemos extrair suas coordenadas (também chamadas de transformada de fourier do sinal) ( e ), fazendo o produto escalar com os elementos da base

Se o domínio de é limitado, digamos , então uma base infinita com cardinalidade enumerável (em contraste com a base anterior, que possui cardinalidade não enumerável) é suficiente para representar , uma possível base ortonormal é a seguinte: , em que . Dessa forma, a representação e coordenadas de ficam

É impossível falar sobre bases enumeráveis de um sub-espaço de sem representar esse canhão matemático com uma animação. Abaixo segue uma visualização que calcula as primeiras coordenadas ( e ) de um sinal qualquer e sobrepõem a série obtida incrementando até as duas curvas serem indistinguíveis a olho nu.

Animação de uma série de fourier. É interessante notar que a série converge muito bem com apenas uma dúzia de frequências.

Potência espectral

Agora, considerando uma corda vibrante, adiante vamos ver que o sinal sonoro provém da vibração de um ponto específico da mesma, digamos em , então a função que representa esse sinal é . Como estamos interessados nas frequências que compõem o sinal, será calculado a transformada de fourier de e vamos definir que a potência da frequência é . A potência em função da frequência é o resultado da análise espectral.

Simulando uma corda de violão

Uma corda de violão geralmente é excitada por uma pancada dada por uma palheta ou pelo próprio dedo/unha do violonista. Essa pancada define uma condição inicial para a equação de onda. Uma suposição razoável da condição gerada é a seguinte

supondo que a corda possui comprimento e a pancado ocorreu em , causando uma deslocamento máximo . A imagem a seguir ilustra o estado da corda logo após a excitação

Condição inicial de uma corda de violão.

Dado essa condição inicial, podemos evoluir temporalmente o estado da corda utilizando a equação da onda, mantendo as bordas fixas (), mas como extrair som dessa simulação? Para responder essa pergunta precisamos saber como um violão gera som. Ao contrário do que inicialmente pareça, as ondas sonoras não são diretamente geradas pela vibração das cordas, mas sim da caixa do violão, que está diretamente conectada com as cordas em uma peça chamada ponte. A vibração das cordas gera uma força dependente do tempo que atua na caixa através da ponte, assim vibrando a caixa e gerando o som que escutamos. Portanto, para gerar som de forma realista, precisaríamos fisicamente simular a caixa, levando em consideração a sua geometria e as propriedades física do seu material, e então determinar as ondas de pressão que seriam geradas por essa vibração, o que está fora do escopo do presente trabalho. Felizmente, as seguintes simplificações vão nos permitir calcular as ondas de pressão:

  • A força que a ponte exerce na caixa é aproximadamente proporcional a sua velocidade (Dinâmica aristotélica).
  • A onda de pressão produzida pela caixa é aproximadamente proporcional a sua velocidade.

A força que a ponte exercer na caixa () é a força que a corda exerce na ponte (pois a ponte está firmemente conectada na caixa), e essa força é proporcional a inclinação da corda, ou seja

em que é a tensão na corda. Portando, o sinal da onda de pressão pode ser aproximado como o deslocamento de um ponto da corda próximo a ponte. Para gerar som com esse sinal, o tipo de arquivo WAV] é utilizado, pois o seu dado de entrada pode ser justante o sinal da onda de pressão.

Agora tudo está pronto para fazermos uma simulação, vamos tentar reproduzir a nota lá ( Hz). Primeiro precisamos descobrir qual deve ser a velocidade de propagação das ondas () para gerar a nota em questão. Resolvendo a equação da onda ideal, obtemos que as possíveis frequência que existem na solução são , então não é possível fazer a corda vibrar apenas com uma frequência, mas quando músicos se referem a uma nota, eles realmente estão se referindo a , a primeira frequência que compõem o sinal, então

Assumindo , temos que . Resolvendo a equação da onda realista pelo método FTCS com os seguinte parâmetros

Parâmetros da condição inicial
Parâmetros Valor
x_o
h 1 cm


Parâmetros da integração
Parâmetros Valor
k 1/4
c 880 m/s
0.01 m
L 1 m
b 5 1/s

obtemos o seguinte resultado

Solução da equação de onda ideal e realista.

Na animação acima, por questão de comparação, também foi coloca a solução de uma simulação com os mesmos parâmetros, apenas com a modificação , que seria o caso ideal (sem amortecimento e rigidez).

Realizando a análise espectral do deslocamento de um ponto próximo de , obtemos o seguinte gráfico

Espectro do deslocamento de um ponto próximo de

As linhas verticais pretas e tracejadas representam as possíveis frequências da solução do caso ideal, ou seja, a primeira linha está em como era de se esperar, mas é notável que a segunda e quarta linhas possuem uma potência praticamente nula, isso ocorre porque a excitação inicial foi exatamente no meio, e as frequência correspondentes a essas linhas provém de ondas estacionário que possum um nodo em , logo elas não foram excitadas pela condição inicial. Mudando o ponto de excitação inicial, podemos ver essas frequências aparecendo, rodando a simulação novamente, mas com , obtemos o seguinte espectro

Espectro do deslocamento de um ponto próximo de

Por fim, conforme descrito anteriormente, podemos gerar som com as dados da simulação, mas infelizmente essa wiki não nos permite upar arquivos de áudio. No entanto, áudio das duas simulações discutidas podem ser encontrados no repositório do projeto ana-julia dentro da pasta "sound".

Notas

  1. A constante está presente por questão de normalização. Esse caso pode parecer um pouco estranho, dado que não é possível normalizar os cossenos e senos, pois sua integral em todo a reta não é definida, mas o que se deseja é a seguinte propriedade que é safisfeita quando