O Jupiterweb entre outras informações fornece o conteudo desta disciplina.
As aulas serão realizadas pelo Google meet. Vocês devem receber um convite da videoaula ou um link da aula gravada. Penso disponibilizar as aulas durante o semestre tudo para vocês poderem ver varias vezes. Todas as mensagens e convites relativas as aulas serão enviadas ao email de cada um de vocés cadastrado no Jupiterweb (usualmente @usp.br). Qualquer duvida ou sugestão deve ser enviada ao email
As aulas estão baseadas nas seguintes notas de aula. Estas notas incluem tanto a teoria quanto as listas de exercícios. Qualquer observação, correção ou comentários sobre o conteúdo deste material são bem-vindos.
Eventualmente serão disponibilizados gabaritos para alguns dos exercícios das notas de aula neste site.
Serão colocados vários exercícios ao longo do semestre. Além dos exercícios também estou pensando entregar um ou dois problemas mais avanzados a cada um de vocês. Estes ultimos devem ser respondidos em uma monografia no final do semestre. A monografia terá maior peso na nota final.
As notas serão postadas no JupiterWeb.
O código em R para as simulações apresentadas na primeira aula se encontra em aula1.R. Um exemplo de como utilizar este script desde R para os processos do "sapo" e da "ruina do jogador" é
source("http://dcm.ffclrp.usp.br/~rrosales/aulas/aula1.R")
sapo(p=1)
sapo(p=0.5)
sapo(p=0.5, N=200)
sapoejacare()
ruina()
ruina(x0=25)
ruina(x0=25, seed1=2, seed2=37, seed3=101, N=500)
O resultado da terceira linha é apresentado pelo grafico abaixo.
O script nasmort.R simula a evolução do número de indivíduos de uma população segundo o processo de nascimento e morte simples descrito em aula. As simulações podem ser geradas desde R da seguinte forma
source("html://dcm.fflcrp.usp.br/~rrosales/aulas/nasmort.R") for (i in 1:50) nasmort(init=150,N=1000, n=1500, pltone=F, pltadd=T)
a função nasmort
gera uma trajetória de 1000 passos deste processo; o código acima gera 150 trajetorias. O resultado é apresentado no gráfico abaixo.
source("html://dcm.fflcrp.usp.br/~rrosales/aulas/rw2D.R") rw2D(n=4000)
A seguinte figura mostra o resultado gerado pelos comandos acima.
A função sample
(do R) é a base para simular os valores de uma variável aleatória discreta; por exemplo
sample(x=c(0, 1), size=1, prob=c(0.5, 0.5))
pode ser utilizado para simular o lancamento de uma moeda honesta, "0" corresponde a coroa e "1" a cara, por exemplo, e
sample(x=c(0, 1), size=100, prob=c(1/3, 2/3), replace=TRUE)
100 lancamentos de uma moeda com probabilidade de cara 1/3. Analogamente, 200 lancamentos de um dado honesto podem ser simulados da seguinte forma
sample(c(1,2,3,4,5,6), size=200, prob=c(rep(1/6, 6)) replace=TRUE)
Segundo o explicado em aula, uma cadeia de Markov pode ser simulada utilizando sample
. O script markov.R de fato implementa estas ideias. O seguinte codigo ilustra como simular a trajetoria de uma cadeia de Markov com matriz de probabilidade de transicao e distribuicao inicial
source("http://dcm.ffclrp.usp.br/~rrosales/aulas/markov.R") caminho <- markov(N=300) [1] "matriz de probabilidade (1a fila, 2a fila, ...):" 1: 0.2 0.8 3: 0.2 0.8 [1] "distribuicao inicial" 1: 0.5 0.5
Por de defeito markov
grafica a trajetoria simulada. No codigo anterior guardamos a sequencia dos estados vistados pelo processo no objeto caminho. O valor deste objeto pode ser inspecionado simplesmentes digitando
caminho [1] 1 1 2 1 2 2 1 2 2 2 1 1 2 2 2 2 2 2 2 1 2 1 2 2 1 2 2 2 2 2 2 2 1 1 2 2 2 [38] 1 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 1 2 2 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 [75] 2 2 2 1 1 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 2 2 1 2 2 2 1 1 2 1 2 2 2 2 [112] 2 2 2 2 1 2 2 2 2 2 2 2 2 1 2 1 2 1 2 1 2 2 2 2 2 2 2 2 1 2 2 2 1 1 2 2 2 [149] 1 2 2 2 2 1 2 2 1 2 2 2 2 2 2 2 2 2 2 1 1 2 2 2 2 2 2 1 2 2 2 2 1 2 2 1 1 [186] 1 1 2 2 2 1 1 2 2 2 2 2 1 2 1 2 2 1 2 2 2 2 2 2 1 1 2 2 2 2 2 2 1 2 2 2 2 [223] 1 2 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 1 1 2 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 [260] 1 2 1 2 2 2 1 2 1 2 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 1 2 1 2 2 2 2 2 2 2 2 [297] 1 2 2 2 2
o graficado como
plot(caminho, type="b")