Notebook 12
Fragmentação de um objeto, md array

Considere um objeto de massa $m$ inicialmente em repouso. O objeto tem algum mecanismo de liberação de energia interna (uma mola, explosivos etc.) que o faz partir-se em dois fragmentos. Os fragmentos têm massas $m_1$ e $m_2$, tais que $m_1 + m_2 = m$, e velocidades $v_{x1}$ e $v_{x2}$ e o momento linear total é conservado.($m_1 v_{x1} + m_2 v_{x2} = 0$).

O script deste documento sorteia valores para as massas e para a componente $x$ de uma das velocidades, calculando a outra utilizando a conservação do momento linear. Os dados são organizados em uma matriz bidimensional, cujo primeiro índice refere-se ao fragmento e o segundo às suas propriedades ([0]: velocidade, [1]: massa). O script calcula e apresenta as informações sorteadas e calcula o momento linear e a energia cinética total do sistema.

Console: fragmentos: (2) [Array(2), Array(2)] 0: (2) [0.07575672287701285, 0.9672019152337809] 1: (2) [-2.2340343340398103, 0.032798084766219135] momento total: 0

Exercícios

  1. Modifique o programa de modo que calcule a posição dos fragmentos após 1 unidade de tempo (assumindo posição inicial $x$ =0), bem como a distância entre elas.
  2. Console: Posições: (2) [0.8263973023712374, -0.20204709052508313] Distância: 1.0284443928963205
  3. A energia cinética final total varia a cada lançamento. Modifique o programa de modo a fazer com que a energia total final dos fragmentos seja sempre a mesma (isto é, que a energia interna antes da separação seja sempre a mesma).
  4. Console: fragmentos: (2) [Array(2), Array(2)] 0: (2) [1.4512862894966039, 0.48706455251176206] 1: (2) [-1.3780878483277919, 0.5129354474882379] momento total: 0 energia cinética total: 0.9999999999999998
  5. Modifique o programa de modo que inclua nos cálculos e na estrutura de dados final (a matriz frags) as velocidades nas outras duas direções ($v_y$ e $v_z$) e calcule e apresente o momento e a energia cinética de cada fragmento, bem como o momento e a energia cinética final.

    As velocidades das outras duas componentes podem ser armazenadas na estrutura de dados bidimensional acrescentando-se outros índices ([0]: $v_x$, [1]: $v_y$, [2]: $v_z$, [3]: $m$) ou sub-índices para a velocidade ([0][1]: $v_x$, [0][2]: $v_y$, [0][3]: $v_z$, [1]: $m$)

    Um comentário que não precisa ser levado em conta na resolução da questão: no caso da fragmentação em duas partículas, que sempre saem ao longo da mesma linha em direções opostas, uma estratégia seria sortear dois ângulos que definem a orientação dessa linha em relação ao sistema de coordenadas e calcular as projeções das velocidades neste sistema. Entretanto, visando a generalização do problema para mais do que duas partículas, talvez valha a pena pensar em uma solução considerando, de início, as componentes da velocidade de cada partícula explicitamente.

    Console: (Uma possibilidade de organização dos dados) (2) [Array(2), Array(2)] 0: Array(2) 0: Array(3) 0: 0.5567372446533094 1: 0.24244808762193815 2: 0.7089921259750769 1: Array(2) 0: Array(3) 0: -0.567308507966802 1: -0.2470516642619387 2: -0.7224543876125981
  6. Desafio opcional: você consegue generalizar esse programa para um número arbitrário de fragmentos?