• Nenhum resultado encontrado

BC-0005 Bases Computacionais da Ciência Aula 08 Modelagem e simulação por computador

N/A
N/A
Protected

Academic year: 2021

Share "BC-0005 Bases Computacionais da Ciência Aula 08 Modelagem e simulação por computador"

Copied!
76
0
0

Texto

(1)

Aula 08 – Modelagem e simulação

por computador

BC-0005

Bases Computacionais da Ciência

Prof. Rodrigo Hausen

(2)

2

Motivação

Modelagem e Simulação Computacional:

(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)

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 elementos interconectados que interagem 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

(6)

6

Sistema

Há três formas de se estudar um sistema:

(1) Experimentos com o Sistema Real.

(2) Experimentos com Modelos Físicos.

(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 VW

(8)

8

(1) Experimentos com sistema real

Algumas desvantagens:

Custo

Tempo para preparar e

executar o experimento

Pode envolver risco

Ex.: análise de situações de

incêndio

Pode ser impossível de se

tratar diretamente.

(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)

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

(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

(12)

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.

(14)

Conjectura de Collatz

(15)

Conjectura de Collatz

Lothar Collatz imaginou o seguinte processo em 1937: 1) Tome um inteiro positivo n

2) Se n for 1, pare

3) 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 n 5) 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

(16)

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 end endfunction

(17)

Conjectura de Collatz

No Scilab: -->collatz(3) ans = 3. 10. 5. 16. 8. 4. 2. 1.

(18)

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.

(20)

Estimando o valor de π

(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)

22

Estimando o valor de

π

r

ℓ = 2r

Quadrado com circunferência inscrita

A

circ

r

2

A

quad

=

ℓ r

2

=(

2 r

2

)=

4 r

2

A

circ

A

quad

=

π

r

2

4 r

2

π=

4

A

circ

A

quad

(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.

(24)

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 áreas

do quadrado contando quantos

pontos caem sobre cada uma das 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²

(26)

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.

(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

(28)

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

(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²

(30)

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:

π = 4 Acirc

Aquad ≈ 4

nú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/npontos

(32)

Jogo da Vida

(Game of life)

Jogo de simulação

Jogo que recria processo do mundo-real

http://to-campos.planetaclix.pt/fractal/celular/Vida.html

Modelos numéricos e simulação

(33)

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

(34)

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

(35)

Jogo da vida

rg an iz aç ão

(36)

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

(37)

Simulação

1

2

3

4

5

1 2 3 4 5

Preto: viva Branca: morta

(38)

Simulação

1 2 3 4 5 Estado inicial Sobrevivência: 2<=N<=3 Nascimento: N=3 Morte: 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

(39)

Simulação

1 2 3 4 5 Sobrevivência: 2<=N<=3 Nascimento: N=3 Morte: N<2 ou N>3 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 Preto: viva Branca: morta

(40)

Simulação

1 2 3 4 5 Estado inicial Sobrevivência: 2<=N<=3 Nascimento: N=3 Morte: 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

(41)

Simulação

1 2 3 4 5 Sobrevivência: 2<=N<=3 Nascimento: N=3 Morte: N<2 ou N>3 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 Preto: viva Branca: morta

(42)

Simulação

1 2 3 4 5 Estado inicial Sobrevivência: 2<=N<=3 Nascimento: N=3 Morte: 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

(43)

Simulação

1 2 3 4 5 Sobrevivência: 2<=N<=3 Nascimento: N=3 Morte: N<2 ou N>3 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 Preto: viva Branca: morta

(44)

Simulação

1 2 3 4 5 Estado inicial Sobrevivência: 2<=N<=3 Nascimento: N=3 Morte: 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

(45)

Simulação

1 2 3 4 5 Sobrevivência: 2<=N<=3 Nascimento: N=3 Morte: N<2 ou N>3 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 Preto: viva Branca: morta

(46)

Simulação

1 2 3 4 5 Estado inicial Sobrevivência: 2<=N<=3 Nascimento: N=3 Morte: 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

(47)

Simulação

1 2 3 4 5 Sobrevivência: 2<=N<=3 Nascimento: N=3 Morte: N<2 ou N>3 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 Preto: viva Branca: morta

(48)

Simulação

1 2 3 4 5 Estado inicial Sobrevivência: 2<=N<=3 Nascimento: N=3 Morte: 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

(49)

Simulação

1 2 3 4 5 Sobrevivência: 2<=N<=3 Nascimento: N=3 Morte: N<2 ou N>3 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 Preto: viva Branca: morta

(50)

Simulação

1 2 3 4 5 Estado inicial Sobrevivência: 2<=N<=3 Nascimento: N=3 Morte: 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

(51)

Simulação

1 2 3 4 5 Sobrevivência: 2<=N<=3 Nascimento: N=3 Morte: N<2 ou N>3 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 Preto: viva Branca: morta

(52)

Simulação

1 2 3 4 5 Estado inicial Sobrevivência: 2<=N<=3 Nascimento: N=3 Morte: 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

(53)

Simulação

1 2 3 4 5 Sobrevivência: 2<=N<=3 Nascimento: N=3 Morte: N<2 ou N>3 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 Preto: viva Branca: morta

(54)

Simulação

1 2 3 4 5 Estado inicial Sobrevivência: 2<=N<=3 Nascimento: N=3 Morte: 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

(55)

Simulação

1 2 3 4 5 Sobrevivência: 2<=N<=3 Nascimento: N=3 Morte: N<2 ou N>3 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 Preto: viva Branca: morta

(56)

Simulação

1 2 3 4 5 Estado inicial Sobrevivência: 2<=N<=3 Nascimento: N=3 Morte: 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

(57)

Simulação

1 2 3 4 5 Sobrevivência: 2<=N<=3 Nascimento: N=3 Morte: N<2 ou N>3 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 Preto: viva Branca: morta

(58)

Simulação

1 2 3 4 5 Estado inicial Sobrevivência: 2<=N<=3 Nascimento: N=3 Morte: 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

(59)

Simulação

1 2 3 4 5 Sobrevivência: 2<=N<=3 Nascimento: N=3 Morte: N<2 ou N>3 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 Preto: viva Branca: morta

(60)

Simulação

1 2 3 4 5 Estado inicial Sobrevivência: 2<=N<=3 Nascimento: N=3 Morte: 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

(61)

Simulação

1 2 3 4 5 Sobrevivência: 2<=N<=3 Nascimento: N=3 Morte: N<2 ou N>3 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 Preto: viva Branca: morta

(62)

Simulação

1 2 3 4 5 Estado inicial Sobrevivência: 2<=N<=3 Nascimento: N=3 Morte: 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

(63)

Simulação

1 2 3 4 5 Sobrevivência: 2<=N<=3 Nascimento: N=3 Morte: N<2 ou N>3 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 Preto: viva Branca: morta

(64)

Exercício 01

Matriz A: Estado inicial

Sobrevivência: 2<=N<=3 Nascimento: N=3 Morte: 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

(65)

Exercício 02

Sobrevivência: 2<=N<=3Nascimento: N=3 Morte: N<2 ou N>3

Utilize as regras de Conway para determinar as duas primeiras

iterações da população indicada pela matriz de A

Preto: viva Branca: morta

(66)

Exercício 01- Solução

Matriz A: Estado inicial Iteração 1

Avalição por pares: -1 ponto por erro

(67)

Exercício 02 - Solução

Iteração 2 Iteração 1

Estado inicial

Avalição por pares: -1 ponto por erro

(68)

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);

(69)

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

(70)

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

(71)

Objeto Boat Objeto Ship Objeto Loaf Objeto Beehive Boats

Padrão estável

(72)

Objeto Spiral Objeto Hat

Objeto Pond

(73)

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

(74)

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

(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)

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.

Referências

Documentos relacionados

Outro ponto previsto ainda na Constituição Federal de 1988 é a participação social no controle da Administração Pública, a qual LOCK (2004) afirma como sendo própria do Estado

2.4.1 Objetivo Geral Assim, o objetivo deste estudo é estabelecer um modelo de negócio para exportação de software pela Internet que seja exeqüível para pequenas e médias

(Estudos na Teoria do Comércio internacional, 1937).. Livre Comércio se estabelece entre dois ou mais países quando chega-se a uma tarifa interna zero para todos os

Por sua vez, o Código Brasileiro de Governança Corporativa – Companhias Abertas, resultado do trabalho conjunto de 11 onze entidades do mercado de capitais, lançado em 16 de novembro

Entretanto, a produtividade desta cultura pode ser limitada devido à ocorrência de doenças como a brusone, causada pelo fungo Pyricularia grisea e a doença denominada giberela,

Assim, uma pergunta se impõe: de que forma o aperfeiçoamento dos meios de transporte implica numa circulação mais efetiva de mercadorias? A resposta dada por Harvey,

10. Como é que actualmente resolve as situações descritas na pergunta 10? Responda, apenas, relativamente às alíneas que classificou com valores superiores ou iguais a 3. O LOPES

We analyzed the advertisement calls of Dendropsophus elegans males from 18 sites and compared them with those of four closely related congeneric species, in order to test