Post on 10-Nov-2018
1
Aula 08 – Modelagem e simulação por computador
BC-0005 Bases Computacionais da Ciência
Prof. Rodrigo Hausen(dos slides do prof. Jesús P. Mena-Chalco)
3
Motivação
Modelagem e Simulação Computacional:● cada vez mais sendo utilizadas
Possibilidade de estudar sistemas reais de maneira aproximada, com base em modelos matemáticos que os representem
4
Motivação
Modelagem e Simulação Computacional:● cada vez mais sendo utilizadas
Possibilidade de estudar sistemas reais de maneira aproximada, com base em modelos matemáticos que os representem
Sistema:
Conjunto de elementosinterconectados queinteragem entre si.
5
Motivação
Modelagem e Simulação Computacional:● cada vez mais sendo utilizadas
Possibilidade de estudar sistemas reais de maneira aproximada, com base em modelos matemáticos que os representem
Tais modelos são implementados em simulações computacionais, que são executadas visando obter um melhor entendimento do sistema real.
6
Sistema
Há três formas de se estudar um sistema:
(1) Experimentos com o Sistema Real.(2) Experimentos com Modelos Físicos.(3) Experimentos com Modelos Matemáticos.
7
(1) Experimentos com sistema real
Feitos quando é possível trabalhar diretamente com o sistema real:
Atuando em seus elementos e/ou Alterando sua configuração para fazê-lo operar sob estas novas condições propostas
Exemplo:
experimento real de teste de colisão realizado em um veículo da VWFonte: youtu.be/Gix7ymymhTo
8
(1) Experimentos com sistema real
Algumas desvantagens:
Custo
Tempo para preparar e executar o experimento
Pode envolver riscoEx.: análise de situações de incêndio
Pode ser impossível de se tratar diretamente.Ex: análise de buracos negros
9
Experimentos com modelos
Em muitas situações é necessário construir um modelo para o sistema.
Modelo: uma representação parcial de um objeto, sistema ou ideia.
Após termos um modelo, realizamos experimentos para estudar o comportamento do sistema.
O resultado dos experimentos é uma aproximação do comportamento do sistema real.
10
(2) Experimentos com modelos físicos
Modelos físicos consideram:• experimentos com objetos reais• os objetos atuam como representações parciais do sistema que se deseja estudar
Exemplos: maquetes, aeromodelos, …
Fontes: https://upload.wikimedia.org/wikipedia/commons/d/d3/Maqueta_turbina_hidroel%C3%A9ctrica.jpg https://upload.wikimedia.org/wikipedia/commons/6/65/Koottava_DC3.JPG
11
(3) Experimentos com modelos matemáticos
Modelo matemático: descrição de um sistema usando linguagem matemática (funções, equações, etc.) no lugar de dispositivos físicos.
Procura representar as principais características e comportamentos do sistema alvo que se deseja analisar.
Como interpretar um modelo matemático?
• soluções analíticas, por álgebra, aritmética, trigonometria, técnicas de resolução de equações e inequações, etc. Fornecerá expressões matemáticas que descrevem exatamente o comportamento do modelo.
• soluções numéricas, que fornecem dados numéricos que descrevem aproximadamente o comportamento do modelo.
12
(3) Experimentos com modelos matemáticos
Ex.: um projétil é lançado de um ponto (x₀, y₀) na Terra, com velocidade inicial v₀ e com ângulo com a horizontal de θ. Desprezendo-se resistência do ar e vento, e considerando o movimento apenas em 2 dimensões, a sua posição no instante t é (x, y) onde:
x – x₀ = (v₀ cos θ) t
y – y₀ = (v₀ sen θ) t – ½ g t²
g é a aceleração da gravidade no local, aproximadamente 9,8 m/s² na maior parte da superfície terrestre.
Solução analítica: dados os valores iniciais, temos uma fórmula que nos dá a posição exata (x, y) em qualquer instante t.
13
(3) Experimentos com modelos matemáticos
Ex.: modelagem e simulação computacional de um teste de colisão.
https://www.youtube.com/watch?v=ffV3jjsw52g
Solução numérica: dada a configuração inicial, a cada instante temos aproximações numéricas para as propriedades de cada partícula simulada do carro: posição, velocidade, aceleração, etc.
Essas aproximações são usadas para mostrar graficamente o estado da simulação a cada instante de tempo simulado.
15
Conjectura de Collatz
Lothar Collatz imaginou o seguinte processo em 1937:1) Tome um inteiro positivo n2) Se n for 1, pare3) Se n for par, divida-o por 2. Caso contrário, tome 3n+1.4) Escreva esse novo número e considere-o agora como n5) Volte ao passo 2
Ex.: a sequência de Collatz para n=3 é
3, 10, 5, 16, 8, 4, 2, 1
Conjectura de Collatz: para qualquer inteiro positivo n, a sequência de Collatz sempre termina em 1.
Até hoje, ninguém sabe se a conjectura é verdadeira ou falsa. Só temos evidência experimental por simulação. Infelizmente, isto não nos dá certeza absoluta! Mas, se existir contra-exemplo, as simulações poderiam achá-lo.
16
Conjectura de Collatz
No Scilab:
function seq = collatz(n) seq(1) = n i = 1 // i = contador do número de iterações while n ~= 1 if modulo(n, 2) == 0 then n = n/2 else n = 3*n+1 end i = i + 1 seq(i) = n endendfunction
18
Conjectura de Collatz
Quantos elementos há na sequência de Collatz para n=97?
-->collatz(97) ans = 97. 292. 146. … 2. 1.
-->size(collatz(97),1) ans = 119.
19
Para casa: Atividade 11
Faça um programa em Scilab que:
● demonstre que a conjectura de Collatz vale para n até 1 milhão (10 ).⁶
● determine quantos elementos há na maior sequência de Collatz para n entre 1 e 10 e qual é o ⁶ n cuja sequência é a maior. (teste: para n entre 1 e 100, n=97 tem a maior sequência)
Dependendo do computador utilizado, seu programa deve levar algumas horas para terminar a execução.
Antes de tentar ir até 1 milhão, tente ir até 10², 10³, 10 , 10 ,⁴ ⁵5 × 10⁵, etc. Pode ser que você não consiga ir até 1 milhão. Vá até onde conseguir (desde que não seja um valor muito baixo)
Entregue o programa e um mini-relatório no Tidia.
21
Estimando o valor de π
Sabemos que o valor de Pi = 3.1415926535...
Podemos usar a simulação de um modelo estatístico para estimar este valor.
Esta estratégia é chamada método de Monte Carlo.
O modelo usa propriedades dos números aleatórios para calcular algumas áreas de interesse.
Em uma distribuição uniforme de números aleatórios, nenhum número tem maior chance de aparecer do que outro.
22
Estimando o valor de π
r
ℓ = 2r
Quadrado com circunferência inscrita
Acirc=π r2
Aquad=ℓ r2=(2 r2
)=4 r2
Acirc
Aquad
=π r2
4 r2 ⇒ π=4Acirc
Aquad
23
Estimando o valor de π
O método de Monte Carlo é utilizado para estimar a relação entre as áreas da circunferência e do quadrado.
Para tornar os cálculos mais simples, assume-se que o quadrado tenha um lado de tamanho ℓ = 1.
Assim, o raio da circunferência é r = ½ , logo r² = ¼
24
Estimando o valor de π
Utilizando um computador sorteamos alguns pares de números aleatórios no intervalo [0, 1].
Cada par de números representará as coordenadas x e y de um ponto que pertence à área do quadrado.
Podemos estimar as áreasdo quadrado contando quantos pontos caem sobre cada umadas figuras.
25
Dado um ponto A = (x, y) com coordenadas oriundas de um sorteio aleatório...
… podemos saber se o ponto está dentro ou fora da circunfe-rência de raio r e centro (xc, yc) se vale a desigualdade:
(x – xc)² + (y – yc)² ≤ r²
Estimando o valor de π
26
Dado um ponto A = (x, y) com coordenadas oriundas de um sorteio aleatório...
… podemos saber se o ponto está dentro ou fora da circunfe-rência de raio r e centro (xc, yc) se vale a desigualdade:
(x – xc)² + (y – yc)² ≤ r²
Ex.: sorteamos as coordenadas x = 0.8 e y = 0.75.
Estimando o valor de π
27
Dado um ponto A = (x, y) com coordenadas oriundas de um sorteio aleatório...
… podemos saber se o ponto está dentro ou fora da circunfe-rência de raio r e centro (xc, yc) se vale a desigualdade:
(x – xc)² + (y – yc)² ≤ r²
Ex.: sorteamos as coordenadas x = 0.8 e y = 0.75. Este ponto (x, y) está dentro da circunferência com raio r = ½ e centro (xc, yc) = (0.5, 0.5) pois
(0.8 – 0.5)² = 0.09
(0.75 – 0.5)² = 0.0625
Estimando o valor de π
28
Dado um ponto A = (x, y) com coordenadas oriundas de um sorteio aleatório...
… podemos saber se o ponto está dentro ou fora da circunfe-rência de raio r e centro (xc, yc) se vale a desigualdade:
(x – xc)² + (y – yc)² ≤ r²
Ex.: sorteamos as coordenadas x = 0.8 e y = 0.75. Este ponto (x, y) está dentro da circunferência com raio r = ½ e centro (xc, yc) = (0.5, 0.5) pois
(0.8 – 0.5)² = 0.09
(0.75 – 0.5)² = 0.0625
(x – xc)² + (y – yc)² = 0.01525
Estimando o valor de π
29
Dado um ponto A = (x, y) com coordenadas oriundas de um sorteio aleatório...
… podemos saber se o ponto está dentro ou fora da circunfe-rência de raio r e centro (xc, yc) se vale a desigualdade:
(x – xc)² + (y – yc)² ≤ r²
Ex.: sorteamos as coordenadas x = 0.8 e y = 0.75. Este ponto (x, y) está dentro da circunferência com raio r = ½ e centro (xc, yc) = (0.5, 0.5) pois
(0.8 – 0.5)² = 0.09
(0.75 – 0.5)² = 0.0625
(x – xc)² + (y – yc)² = 0.01525 ≤ ¼ = r²
Estimando o valor de π
30
Estimando o valor de π
Estratégia:● Sortear muitos pontos aleatórios, de forma a gerar
uma amostra considerável de pontos dispersos uniformemente no quadrado.
● Determinar se cada ponto encontra-se dentro ou fora da circunferência.
● Sendo os pontos dispersos uniformemente, a razão entre pontos dentro da circunferência e dentro do quadrado é próxima da razão entre as áreas.
● Ou seja:
π = 4Acirc
Aquad
≈ 4núm pontos na circunferência núm pontos no quadrado
31
Estimando o valor de Pi
No Scilab:
function estimativa = estima_pi(npontos) ncirc = 0 // núm. pontos na circunferência for i = 1:npontos x = rand() y = rand() if (x-0.5)^2 + (y-0.5)^2 <= 1/4 ncirc = ncirc + 1 end end estimativa = 4*ncirc/npontosendfunction
Jogo da Vida(Game of life)
Jogo de simulaçãoJogo que recria processo do mundo-real
http://to-campos.planetaclix.pt/fractal/celular/Vida.html
Modelos numéricos e simulação
Jogo da vida
O Jogo da Vida foi desenvolvido pelo matemático John Conway, em 1970
Conway explorava a ideia do construtor universal, de forma que uma máquina hipotética pudesse construir cópias de si mesma
O Jogo da Vida é um autômato celular que se desenvolve em um espaço de duas dimensões, dividido em células quadrangulares
É governado por regras simples que definem nascimentos, mortes e sobrevivências de células
Cada uma das células do universo bidimensional pode estar em dois estados possíveis:
- viva (cor branca)
- morta (cor preta)
Se uma célula sobrevive, morre ou nasce será determinado pelo número de vizinhos vivos ao redor de uma célula
Jogo da vida
Cada célula pode ter oito células vizinhas
As regras envolvem três tópicos:
Sobrevivência: Se a quantidade de vizinhos vivos é igual a dois (02) ou três (03)
Nascimento: Se a célula está morta, mas tem três (03) vizinhos vivos, então ela nasce na próxima fase
Morte: Se a quantidade de vizinhos vivos é menor que dois (solidão) ou maior que três (superpopulação)
Jogo da vida de Conway
As regras não são arbitrárias: evitam comportamento caótico, crescimento infinito ou rápida estabilidade
Simulação
1 2 3 4 5
Estado inicial
Sobrevivência: 2<=N<=3Nascimento: N=3Morte: N<2 ou N>3
1
2
3
4
5
Iteração 1
1 2 3 4 5
1
2
3
4
5
Preto: viva
Branca: morta
Simulação
1 2 3 4 5
Estado inicial
Sobrevivência: 2<=N<=3Nascimento: N=3Morte: N<2 ou N>3
1
2
3
4
5
Iteração 1
1 2 3 4 5
1
2
3
4
5
Preto: viva
Branca: morta
Simulação
1 2 3 4 5
Estado inicial
Sobrevivência: 2<=N<=3Nascimento: N=3Morte: N<2 ou N>3
1
2
3
4
5
Iteração 1
1 2 3 4 5
1
2
3
4
5
Preto: viva
Branca: morta
Simulação
1 2 3 4 5
Estado inicial
Sobrevivência: 2<=N<=3Nascimento: N=3Morte: N<2 ou N>3
1
2
3
4
5
Iteração 1
1 2 3 4 5
1
2
3
4
5
Preto: viva
Branca: morta
Simulação
1 2 3 4 5
Estado inicial
Sobrevivência: 2<=N<=3Nascimento: N=3Morte: N<2 ou N>3
1
2
3
4
5
Iteração 1
1 2 3 4 5
1
2
3
4
5
Preto: viva
Branca: morta
Preto: viva
Branca: morta
Simulação
1 2 3 4 5
Estado inicial
Sobrevivência: 2<=N<=3Nascimento: N=3Morte: N<2 ou N>3
1
2
3
4
5
Iteração 1
1 2 3 4 5
1
2
3
4
5
Preto: viva
Branca: morta
Simulação
1 2 3 4 5
Estado inicial
Sobrevivência: 2<=N<=3Nascimento: N=3Morte: N<2 ou N>3
1
2
3
4
5
Iteração 1
1 2 3 4 5
1
2
3
4
5
Preto: viva
Branca: morta
Simulação
1 2 3 4 5
Estado inicial
Sobrevivência: 2<=N<=3Nascimento: N=3Morte: N<2 ou N>3
1
2
3
4
5
Iteração 1
1 2 3 4 5
1
2
3
4
5
Preto: viva
Branca: morta
Simulação
1 2 3 4 5
Estado inicial
Sobrevivência: 2<=N<=3Nascimento: N=3Morte: N<2 ou N>3
1
2
3
4
5
Iteração 1
1 2 3 4 5
1
2
3
4
5
Preto: viva
Branca: morta
Simulação
1 2 3 4 5
Estado inicial
Sobrevivência: 2<=N<=3Nascimento: N=3Morte: N<2 ou N>3
1
2
3
4
5
Iteração 1
1 2 3 4 5
1
2
3
4
5
Preto: viva
Branca: morta
Simulação
1 2 3 4 5
Estado inicial
Sobrevivência: 2<=N<=3Nascimento: N=3Morte: N<2 ou N>3
1
2
3
4
5
Iteração 1
1 2 3 4 5
1
2
3
4
5
Preto: viva
Branca: morta
Simulação
1 2 3 4 5
Estado inicial
Sobrevivência: 2<=N<=3Nascimento: N=3Morte: N<2 ou N>3
1
2
3
4
5
Iteração 1
1 2 3 4 5
1
2
3
4
5
Preto: viva
Branca: morta
Simulação
1 2 3 4 5
Estado inicial
Sobrevivência: 2<=N<=3Nascimento: N=3Morte: N<2 ou N>3
1
2
3
4
5
Iteração 1
1 2 3 4 5
1
2
3
4
5
Preto: viva
Branca: morta
Simulação
1 2 3 4 5
Estado inicial
Sobrevivência: 2<=N<=3Nascimento: N=3Morte: N<2 ou N>3
1
2
3
4
5
Iteração 1
1 2 3 4 5
1
2
3
4
5
Preto: viva
Branca: morta
Simulação
1 2 3 4 5
Estado inicial
Sobrevivência: 2<=N<=3Nascimento: N=3Morte: N<2 ou N>3
1
2
3
4
5
Iteração 1
1 2 3 4 5
1
2
3
4
5
Preto: viva
Branca: morta
Simulação
1 2 3 4 5
Estado inicial
Sobrevivência: 2<=N<=3Nascimento: N=3Morte: N<2 ou N>3
1
2
3
4
5
Iteração 1
1 2 3 4 5
1
2
3
4
5
Preto: viva
Branca: morta
Simulação
1 2 3 4 5
Estado inicial
Sobrevivência: 2<=N<=3Nascimento: N=3Morte: N<2 ou N>3
1
2
3
4
5
Iteração 1
1 2 3 4 5
1
2
3
4
5
Preto: viva
Branca: morta
Simulação
1 2 3 4 5
Estado inicial
Sobrevivência: 2<=N<=3Nascimento: N=3Morte: N<2 ou N>3
1
2
3
4
5
Iteração 1
1 2 3 4 5
1
2
3
4
5
Preto: viva
Branca: morta
Simulação
1 2 3 4 5
Estado inicial
Sobrevivência: 2<=N<=3Nascimento: N=3Morte: N<2 ou N>3
1
2
3
4
5
Iteração 1
1 2 3 4 5
1
2
3
4
5
Preto: viva
Branca: morta
Simulação
1 2 3 4 5
Estado inicial
Sobrevivência: 2<=N<=3Nascimento: N=3Morte: N<2 ou N>3
1
2
3
4
5
Iteração 1
1 2 3 4 5
1
2
3
4
5
Preto: viva
Branca: morta
Simulação
1 2 3 4 5
Estado inicial
Sobrevivência: 2<=N<=3Nascimento: N=3Morte: N<2 ou N>3
1
2
3
4
5
Iteração 1
1 2 3 4 5
1
2
3
4
5
Preto: viva
Branca: morta
Simulação
1 2 3 4 5
Estado inicial
Sobrevivência: 2<=N<=3Nascimento: N=3Morte: N<2 ou N>3
1
2
3
4
5
Iteração 1
1 2 3 4 5
1
2
3
4
5
Preto: viva
Branca: morta
Simulação
1 2 3 4 5
Estado inicial
Sobrevivência: 2<=N<=3Nascimento: N=3Morte: N<2 ou N>3
1
2
3
4
5
Iteração 1
1 2 3 4 5
1
2
3
4
5
Preto: viva
Branca: morta
Simulação
1 2 3 4 5
Estado inicial
Sobrevivência: 2<=N<=3Nascimento: N=3Morte: N<2 ou N>3
1
2
3
4
5
Iteração 1
1 2 3 4 5
1
2
3
4
5
Preto: viva
Branca: morta
Simulação
1 2 3 4 5
Estado inicial
Sobrevivência: 2<=N<=3Nascimento: N=3Morte: N<2 ou N>3
1
2
3
4
5
Iteração 1
1 2 3 4 5
1
2
3
4
5
Preto: viva
Branca: morta
Simulação
1 2 3 4 5
Estado inicial
Sobrevivência: 2<=N<=3Nascimento: N=3Morte: N<2 ou N>3
1
2
3
4
5
Iteração 1
1 2 3 4 5
1
2
3
4
5
FIM
Preto: viva
Branca: morta
Exercício 01
Matriz A: Estado inicial
Sobrevivência: 2<=N<=3Nascimento: N=3Morte: N<2 ou N>3
Iteração 1?
Utilize as regras de Conway para determinar a primeira iteração da população indicada pela matriz de A
Preto: viva
Branca: morta
Exercício 02
Matriz A: Estado inicial
Sobrevivência: 2<=N<=3Nascimento: N=3Morte: N<2 ou N>3
Iteração 2?
Utilize as regras de Conway para determinar as duas primeiras iterações da população indicada pela matriz de A
Preto: viva
Branca: morta
Exercício 02 - Solução
Iteração 2Iteração 1Estado inicial
Avalição por pares:-1 ponto por erro
Padrão spaceship
Abra no Scilab o arquivo: jogo_da_vida.sce
Parâmetros da função jogo_da_vida
univ: matriz n × n que representa o universo
numero_iteracoes: quantas iterações da simulação devem ser executadas
Exemplo de simulação no Scilab--> M = matriz_aleatoria(50);--> novoM = jogo_da_vida(M, 1000);
Jogo da vida
Durante a execução do Jogo da Vida as células organizam-se seguindo alguns padrões, formando objetos visuais
Existem vários tipos de padrões identificados, dentre eles:
Tipo I: estáveis
Tipo II: oscilatórios
Tipo III: spaceships
Padrões de comportamento
Os objetos do padrão Tipo I (estáveis) são aqueles que não mudam, que são estáticos
Os objetos estáveis ocorrem quando nenhuma célula viva tende a morrer, e nenhuma célula tende a nascer
Como exemplo tem-se os seguintes objetos: block, beehive, boat, ship, loaf
Padrão estável
Objeto Block
Os objetos oscilatórios são formas que mudam da etapa em etapa até atingir um ciclo constante
O tipo mais simples é o oscilador de dois períodos, ou aqueles que se repetem após duas etapas
Padrão oscilatório
Objeto Blinker Objeto Toad
Padrões que se repetem depois de uma determinada sequência e retornam a seus estado original, e se transformam no espaço
Padrão spaceship
Objeto Glider
75
Para casa: Atividade 11
Faça um programa em Scilab que:
● demonstre que a conjectura de Collatz vale para n até 1 milhão (10 ).⁶
● determine quantos elementos há na maior sequência de Collatz para n entre 1 e 10 e qual é o ⁶ n cuja sequência é a maior. (teste: para n entre 1 e 100, n=97 tem a maior sequência)
Dependendo do computador utilizado, seu programa deve levar algumas horas para terminar a execução.
Antes de tentar ir até 1 milhão, tente ir até 10², 10³, 10 , 10 ,⁴ ⁵5 × 10⁵, etc. Pode ser que você não consiga ir até 1 milhão. Vá até onde conseguir (desde que não seja um valor muito baixo)
Entregue o programa e um mini-relatório no Tidia.
76
Para saber mais
● Capítulos 8 e 9 do livro
● No Scilab:
1) Execute demo_gui()
2) Na janela que abrir, escolha “Simulação”
3) Escolha uma das simulações
● Código das simulações neste link
● Livro: “Modeling and Simulation in Scilab/Scicos” de Stephen L. Campbell, Jean-Philippe Chancelier e Ramine Nikoukhah.