Gravitação

Gravitação preview image

1 collaborator

Default-person Igor Souza (Author)

Tags

(This model has yet to be categorized with any tags)
Visible to everyone | Changeable by the author
Model was written in NetLogo 6.2.0 • Viewed 170 times • Downloaded 24 times • Run 0 times
Download the 'Gravitação' modelDownload this modelEmbed this model

Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)


O QUE É?

Este projeto exibe o fenômeno natural expresso pela lei do inverso do quadrado. Essencialmente, este modelo mostra o que acontece quando a intensidade da força entre dois objetos varia inversamente com o quadrado da distância entre esses dois objetos.

COMO FUNCIONA

Neste modelo, a fórmula usada para guiar o comportamento de cada objeto é a fórmula da Lei da Gravitação Universal:

(m1 * m2 * G) / d2

Este é um modelo de 'corpo-n' de força única, onde temos um certo número de pequenas partículas e uma grande massa atuante (o ponteiro do mouse). A força é inteiramente unilateral: a grande massa não é afetada pelas partículas menores ao seu redor. E as partículas menores também não são afetadas umas pelas outras. (Observe que isso é puramente para fins de simulação. No mundo real, uma força como a gravidade atua em todos os corpos ao seu redor.)

A gravidade é o melhor exemplo dessa força. Você pode observar as partículas formarem órbitas elípticas ao redor do ponteiro do mouse ou vê-las disparar ao redor dele, semelhante a como um cometa passa pelo nosso sol. Pense nos objetos individuais como planetas ou outros corpos solares e veja como eles reagem a várias massas que se movem ou permanecem estacionárias.

COMO USAR

Primeiro selecione o número de partículas com o controle deslizante NUMERO. Em seguida, pressione o botão MONTAR para criá-los e espalhá-los pelo mundo.

O controle deslizante MASSA define o valor da massa da força atuante. (também determina a que distâncias as partículas podem orbitar com segurança antes de serem sugadas por uma força avassaladora.)

O controle deslizante TAXA-DESAPARECIMENTO controla a porcentagem de cor que os caminhos marcados pelas partículas desbotam após cada ciclo. Portanto, em 100% não haverá nenhum caminho, pois eles desaparecem imediatamente, e em 0% os caminhos não desaparecerão de forma alguma. Com isso você pode ver as elipses e parábolas formadas por diferentes viagens de partículas.

Quando o interruptor CORES? é definido como ON, atribui cores diferentes às partículas, caso contrário, elas serão todas brancas.

Quando os controles deslizantes tiverem sido definidos para os níveis desejáveis, pressione o botão ATIVAR para iniciar a simulação. Mova o mouse para onde deseja começar e clique e segure o botão esquerdo do mouse. Isso iniciará o movimento das partículas. Se desejar parar a simulação (digamos, para alterar o valor de MASSA), solte o botão do mouse e as partículas irão parar de se mover. Você pode então alterar as configurações que desejar (exceto NUMERO DE PARTICULAS). Então, para continuar a simulação, basta colocar o mouse na janela novamente e clicar e segurar. Os objetos na janela só se moverão enquanto o botão do mouse estiver pressionado dentro da janela.

PONTOS PARA OBSERVAR

A coisa mais importante a observar é o comportamento das partículas. Observe que, como as partículas não têm velocidade inicial própria, uma única massa de ação imóvel irá puxá-las todas para dentro. Mesmo uma massa muito pequena (MASSA ajustada para um valor pequeno) irá puxar todas as partículas. (Devido à precisão limitada além de um certo ponto, a força motriz em uma partícula pode se tornar zero.)

Mova o mouse e observe o que acontece se você movê-lo rápido ou lentamente. Sacuda-o em um único lugar ou deixe-o parado. Observe em quais padrões as partículas se enquadram. (Mantenha TAXA-DESAPARECIMENTO baixo para assistir explicitamente.)

COISAS PARA TENTAR

Existem alguns outros parâmetros, definidos no código, que afetam o comportamento do modelo. A força que atua sobre cada partícula é multiplicada por uma constante, 'g' (outra variável global). Sinta-se à vontade para brincar com seus valores, definidos no procedimento de 'montar'. (Obviamente, o valor padrão de g para o modelo, 0,5, é muito maior do que o valor usado na Mecânica Newtoniana, 6,67e-11.)

As condições iniciais são muito importantes para um modelo como este. Tente mudar a forma como as partículas são colocadas durante o procedimento de montar.

Certifique-se de observar como os diferentes valores do controle deslizante MASSA impactam o modelo.

EXPANDINDO O MODELO

Deixe as partículas começarem com uma velocidade constante ou dê a todas elas uma velocidade aleatória. Você poderia adicionar um controle deslizante que permitiria ao usuário definir as velocidades e, assim, ser capaz de comparar os efeitos de diferentes velocidades. Ou tente dar a cada partícula uma massa variável, que afeta diretamente a intensidade da força atuante sobre ela.

O modelo assume que a força é uma força atrativa (as partículas tendem a ser puxadas em sua direção). No entanto, deve ser uma mudança relativamente fácil transformar isso em uma força repulsiva. Experimente configurar o modelo com uma força repulsiva e observe o que acontece.

CARACTERÍSTICAS DO NETLOGO

Este modelo cria a ilusão de um plano de tamanho infinito, para melhor modelar o comportamento das partículas. Observe que, com a marcação do rastro, você pode ver a maior parte da elipse que uma partícula desenha, embora a partícula periodicamente saia dos limites. Isso é feito por meio de uma combinação dos primitivos básicos de tartaruga hide-turtle e show-turtle, quando uma partícula atinge o limite, mantendo cada tartaruga xcor e ycor como variáveis especiais de tartaruga xc e yc, e cálculos semelhantes à primitiva distance que usa xc e yc em vez de xcor e ycor.

Ao examinar o código, observe que os comandos tartaruga padrão como set heading,fd 1 e assim por diante não são usados aqui. Tudo é feito diretamente nas coordenadas X e Y das tartarugas.

COMO CITAR

Se você mencionar este modelo ou o software NetLogo em uma publicação, pedimos que inclua as citações abaixo.

Para este modelo:

Cite o software NetLogo como:

COPYRIGHT E LICENÇA DE USO

Copyright 1998 Uri Wilensky.

CC BY-NC-SA 3.0

This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. To view a copy of this license, visit https://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.

Commercial licenses are also available. To inquire about commercial licenses, please contact Uri Wilensky at uri@northwestern.edu.

This model was created as part of the project: CONNECTED MATHEMATICS: MAKING SENSE OF COMPLEX PHENOMENA THROUGH BUILDING OBJECT-BASED PARALLEL MODELS (OBPML). The project gratefully acknowledges the support of the National Science Foundation (Applications of Advanced Technologies Program) -- grant numbers RED #9552950 and REC #9632612.

This model was converted to NetLogo as part of the projects: PARTICIPATORY SIMULATIONS: NETWORK-BASED DESIGN FOR SYSTEMS LEARNING IN CLASSROOMS and/or INTEGRATED SIMULATION AND MODELING ENVIRONMENT. The project gratefully acknowledges the support of the National Science Foundation (REPP & ROLE programs) -- grant numbers REC #9814682 and REC-0126227. Converted from StarLogoT to NetLogo, 2002.

Comments and Questions

Please start the discussion about this model! (You'll first need to log in.)

Click to Run Model

turtles-own
[ fx     ;; vetor força no eixo x
  fy     ;; vetor força no eixo x
  vx     ;; vetor velocidade no eixo x
  vy     ;; vetor velocidade no eixo x
  xc     ;; coordenada no eixo x (caso as particulas saiam do mundo)
  yc     ;; coordenada no eixo y  (caso as particulas saiam do mundo)
  r-sqrd ;; Quadrado da distância para o centro de massa
]

globals
[ m-xc  ;; Coordenada do click-mouse  (onde a massa ira atuar)
  m-yc  ;; Coordenada do click-mouse  (onde a massa ira atuar)
  g     ;; Constante gravitacional para diminuir a aceleração
]

;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Procedimento Montar ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;

to montar
  clear-all
  set g 0.5
  set-default-shape turtles "circle"
  create-turtles numero
  [
    if (not cores?)
    [ set color white ]
    set size 10
    fd (random-float (max-pxcor - 6))
    set vx 0
    set vy 0
    set xc xcor
    set yc ycor
  ]
  reset-ticks
end 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; Procedimento em tempo de execução ;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

to ativar
  if mouse-down? [
    ;; Recebe as coordenadas do mouse
    set m-xc mouse-xcor
    set m-yc mouse-ycor
    ask turtles [ gravitate ]
    enfraquecer-rastro
    tick
  ]
end 

to gravitate
  atualizar-forca
  atualizar-velocidade
  atualizar-posicao
end 

to atualizar-forca
  ;; Parecido com o procedimento 'distancexy', só que para um cenário infinito(Sem bordas)
  set r-sqrd (((xc - m-xc) * (xc - m-xc)) + ((yc - m-yc) * (yc - m-yc)))

  ;;Impede a divisão por zero prevents divide by zero
  ifelse (r-sqrd != 0)
  [
    ;; Calcula os componentes do vetor F usando lei do inverso do quadrado
    set fx ((cos (atan (m-yc - yc) (m-xc - xc))) * (massa / r-sqrd))
    set fy ((sin (atan (m-yc - yc) (m-xc - xc))) * (massa / r-sqrd))
  ]
  [
    ;; se r-sqrd = 0, então está na massa, portanto não há força.
    set fx 0
    set fy 0
  ]
end 

to atualizar-velocidade ;; Turtle Procedure
  ;; Atualiza a velocidade de cada particula
  ;; Realizando a soma com a força e velocidade anterior
  set vx (vx + (fx * g))
  set vy (vy + (fy * g))
end 

to atualizar-posicao ;; Turtle Procedure
  set xc (xc + vx)
  set yc (yc + vy)

  ifelse patch-at (xc - xcor) (yc - ycor) != nobody
  [
    setxy xc yc
    ifelse (cores?)
    [
      if (color = white)
      [ set color one-of base-colors ]
    ]
    [ set color white ]
    show-turtle
    if (taxa-desaparecimento != 100)
    [ ifelse (color = white)
      [ set pcolor red + 3 ]
      [ set pcolor color + 3 ]
    ]
  ]
  [ hide-turtle ]
end 

to enfraquecer-rastro
  ask patches with [pcolor != black]
  [ ifelse (taxa-desaparecimento = 100)
    [ set pcolor black ]
    [ if (taxa-desaparecimento != 0)
      [ fade ]
    ]
  ]
end 

to fade ;; Procedimento do Rastro
  let new-color pcolor - 8 * taxa-desaparecimento / 100
  ;; se new-color não está com o mesmo tom, então o rastro se torna preto
  ifelse (shade-of? pcolor new-color)
  [ set pcolor new-color ]
  [ set pcolor black ]
end 


; Copyright 1998 Uri Wilensky.
; See Info tab for full copyright and license.

There is only one version of this model, created over 4 years ago by Igor Souza.

Attached files

File Type Description Last updated
Gravitação.png preview Preview for 'Gravitação' over 4 years ago, by Igor Souza Download

This model does not have any ancestors.

This model does not have any descendants.