{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# PRO5765 Modelagem e Simulação de Sistemas de Produção\n", "## Lista 4a – Simulação de Monte Carlo\n", "### Entrega ao final da aula, exercícios: 1, 3, 6, 7 e 8" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Nome (número USP) em ordem alfabética" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1. Aluno 1 (9999999)\n", "2. Aluno 2 (9999999)\n", "3. Aluno 3 (9999999)\n", "4. Aluno 4 (9999999)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Questões" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1. Defina Simulação de Monte Carlo." ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2. Explique os conceitos de exatidão, eficiência, independência e repetibilidade na geração de números aleatórios (GNA)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "3. Explique como funciona o método da função inversa de GNA." ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "4. Explique como funciona o método da aceitação e rejeição para GNA." ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Exercícios" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1. Utilizando o método da função inversa e as amostras de números aleatórios dadas, gerar amostras com n=10 observações para cada uma das distribuições abaixo. Para cada amostra, calcule a média e o desvio padrão e compare com os valores esperados." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "a) Uniforme, com valor mínimo 0,5 e máximo 1,5" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "| i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |\n", "|----|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|\n", "| ui | 0,8042 | 0,2000 | 0,7993 | 0,9015 | 0,0070 | 0,9145 | 0,4397 | 0,5079 | 0,2896 | 0,9024 |\n", "| xi | - | - | - | - | - | - | - | - | - | - |" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Solução**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "$$ X = a + (b-a) \\cdot U $$\n", "$$ E[X] = {{a + b} \\over 2} $$\n", "$$ V[X] = {{(b - a)^2} \\over 12} $$" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "import numpy as np" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "us = [0.8042, 0.2000, 0.7993, 0.9015, 0.0070, 0.9145, 0.4397, 0.5079, 0.2896, 0.9024]\n", "a=0.5\n", "b=1.5\n", "xs = [round(a+(b-a)*u,4) for u in us]\n", "print(us)\n", "print(xs)\n", "print('%6.4f %6.4f' %(np.mean(xs),np.std(xs,ddof=1)))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "| i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |\n", "|----|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|\n", "| ui | 0,8042 | 0,2000 | 0,7993 | 0,9015 | 0,0070 | 0,9145 | 0,4397 | 0,5079 | 0,2896 | 0,9024 |\n", "| xi | 1.3042 | 0.7000 | 1.2993 | 1.4015 | 0.5070 | 1.4145 | 0.9397 | 1.0079 | 0.7896 | 1.4024 |" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "EX=(a+b)/2\n", "VX=(b-a)**2/12\n", "DPX=VX**0.5\n", "print('%6.4f %6.4f' %(EX,DPX))" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "b) Exponencial, com média 2,0" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "| i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |\n", "|----|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|\n", "| ui | 0.9729 | 0.6578 | 0.5678 | 0.4145 | 0.7720 | 0.8005 | 0.7777 | 0.4474 | 0.4806 | 0.5639 |\n", "| xi | - | - | - | - | - | - | - | - | - | - |" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "c) Triangular, com a=0, b=2, c=5" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "| i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |\n", "|----|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|\n", "| ui | 0.3780 | 0.7993 | 0.3118 | 0.2861 | 0.5463 | 0.4032 | 0.9311 | 0.3015 | 0.5795 | 0.6270 |\n", "| xi | - | - | - | - | - | - | - | - | - | - |" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "d) Normal, com média 1,0 e desvio-padrão 0,2" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "| i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |\n", "|----|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|\n", "| ui | 0.5431 | 0.6333 | 0.2671 | 0.9290 | 0.7829 | 0.0914 | 0.8355 | 0.1339 | 0.8598 | 0.3408 |\n", "| zi | - | - | - | - | - | - | - | - | - | - |\n", "| xi | - | - | - | - | - | - | - | - | - | - |" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "2. Utilizando as amostras de números aleatórios, gerar amostras com n=10 observações para as distribuições Equiprovável (a) e Bernoulli (b). Para cada amostra, calcule a média e o desvio padrão e compare com os valores esperados. A partir da Bernoulli, explique como gerar amostras da Binomial (c) e Binomial Negativa (d)." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "a) Equiprovável, x=1,2,...,6 (dado)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "| i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |\n", "|----|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|\n", "| ui | 0.7191 | 0.1433 | 0.1027 | 0.1129 | 0.1926 | 0.7625 | 0.2886 | 0.7603 | 0.0556 | 0.4600 |\n", "| xi | - | - | - | - | - | - | - | - | - | - |" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "b) Bernoulli, p=0,4 (cara e coroa)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "| i | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |\n", "|----|--------|--------|--------|--------|--------|--------|--------|--------|--------|--------|\n", "| ui | 0.2945 | 0.7954 | 0.5492 | 0.8735 | 0.5960 | 0.4397 | 0.9124 | 0.4167 | 0.2595 | 0.4985 |\n", "| xi | - | - | - | - | - | - | - | - | - | - |" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "c) Explique como seria a geração de uma amostra de tamanho m=20 para uma Binomial, com n=10 e p=0,4" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "d) Idem, para Binomial Negativa, com r=2 e p=0,4" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "3. Utilizando funções da biblioteca numpy.random, gerar amostras com n=1000 observações das distribuições abaixo. Para cada amostra, calcular a média e o desvio padrão e elaborar o histograma da distribuição de frequências." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "a) Uniforme, com valor mínimo 0,5, valor máximo 1,5 e semente 100." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "|