Informá(ca para as Ciências e Engenharias Versão : C (Engenharia Civil) Aula 6. Pedro Barahona 2016 / 17

Documentos relacionados
Vetores, Matrizes e Gráficos

Informática para Ciências e Engenharias 2014/15. Teórica 5

MATLAB. Que é MATLAB?

Introdução ao MATLAB. Parte 3

Aprender a utilizar o aplicativo Gnuplot para fazer gráficos

Monitor: Diego Augusto Silva (P8 Eng. Elétrica) Atendimento: 2as. de 19:45h às 21:30h

Aula 2P - Comandos básicos do Matlab aplicados a PDS

Antonio Carlos Roque da Silva Filho e Cristiano R. F. Granzotti 14 de março de 2016

Capítulo 11. GRÁFICOS COM WGNUPLOT

Introdução ao Processamento de Imagens Digitais Aula 01

MATLAB Avançado. Melissa Weber Mendonça Universidade Federal de Santa Catarina. M. Weber Mendonça (UFSC) MATLAB Avançado 2011.

INTRODUÇÃO AO SCILAB

Utilidades Diversas. Aplicações Informáticas para Engenharia. SérgioCruz

Noções de Simulação. Ciências Contábeis - FEA - Noturno. 2 o Semestre MAE0219 (IME-USP) Noções de Simulação 2 o Semestre / 23

Processamento Simbólico Polinómios e Equações Gráficos

Vetores, Matrizes e Gráficos

MATLAB Avançado. Melissa Weber Mendonça Universidade Federal de Santa Catarina. M. Weber Mendonça (UFSC) MATLAB Avançado 2011.

2 Programação de Simulink S-functions

Simulação MATLAB - Transmissão PCM em Banda Base e Diagrama de Olho. Testar o efeito de filtros sem ISI no espectro e na curva BERXE b /N 0.

Pedro Vasconcelos DCC/FCUP. Programação Funcional 11 a Aula Gráficos usando Gloss

Aula 2 - Sinais de tempo discreto Operações com sequências

Forecasting e ti O i Otim Oti ização de ã d Carteiras com Matlab AULA 3

Minicurso de MATLAB. Programa de Educação Tutorial de Engenharia Elétrica 28/03/15. lmax Rodrigues. lcaroline Pereira.

Corel Draw. Editoração Gráfica. Professor: Jarbas Araújo CENTRO EDUCACIONAL RADIER.

Funções Geradoras de Variáveis Aleatórias. Simulação Discreta de Sistemas - Prof. Paulo Freitas - UFSC/CTC/INE

TUTORIAL SIMPLIFICADO DE MATLAB

Minicurso de MATLAB. Programa de Educação Tutorial de Engenharia Elétrica 28/03/15. lmax Rodrigues. lcaroline Pereira.

Aula 2: Tipos de variáveis

Prof. Dr. Marco Antonio Leonel Caetano

Iteração e Pontos Fixos

Inteligência Computacional Aula 2 - Introdução ao MatLab Graduação /2

COMPUTAÇÃO E PROGRAMAÇÃO

Laboratório de Programação de Computadores para Engenharia - Notas de aula - Teoria - 12/12/2013. Funções

I-3 Introdução ao Matlab

CÁLCULO I. 1 Número Reais. Objetivos da Aula

Um modelo estocástico para o fluxo de caixa de um plano de previdência de um indivíduo 15

MATEMÁTICA A - 12o Ano N o s Complexos - Conjuntos e condições

Laboratório de Sistemas e Sinais L1: Matrizes, Sons e Imagens

ENG1000 Introdução à Engenharia

António Costa. Paulo Roma Cavalcanti

Existem três formas básicas de efectuar operações de entrada/saída:

Variáveis, Tipos de Dados e Operadores

1. Avaliação de impacto de programas sociais: por que, para que e quando fazer? (Cap. 1 do livro) 2. Estatística e Planilhas Eletrônicas 3.

Esta janela apresenta o procedimento para a edição matricial sobre imagens temáticas, sintéticas e classificadas.

Mídias Discretas. Introdução à Ciência da Informação

MATLAB EM VIBRAÇÕES MECÂNICAS

INTRODUÇÃO À COMPUTAÇÃO - EPET006 -

Primeiro Projeto de PG: Lista de Temas Selecionados

Introdução à Programação. Vanessa Braganholo

1º Exame de INTRODUÇÃO À PROGRAMAÇÃO Licenciatura em Engenharia Mecânica 30 de Junho de º Semestre

A equação da circunferência

Universidade Federal do Rio de Janeiro COPPE. Trabalho de Processamento de Imagens Reconhecimento de Símbolos de Componentes Eletrônicos

Aula Teórica 14 Matrizes

Computação Científica com MATLAB. Melissa Weber Mendonça

Aula 12- Variáveis e valores reais

Programação em MATLAB

Introdução Geral a Computação Gráfica. Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina de Computação Gráfica

MATEMÁTICA 3º ANO. Novo programa de matemática Objetivos específicos. Currículo Paulo VI. Números naturais. Relações numéricas Múltiplos e divisores

Departamento: Matemática Curso: Eng a Madeiras Ano: 1 o Semestre: 2 o Ano Lectivo: 2006/2007. Aula prática n o 1 - Introdução ao MATLAB

Resolução de problemas. Meta Final 1) Compreende o problema. Meta Final 2) Concebe estratégias de resolução de problemas.

Gráficos bidimensionais. Introdução ao MATLAB p.1/36

Redes Complexas Aula 7

LINGUAGEM C: COMANDOS DE CONTROLE CONDICIONAL

Resolução De Problemas Em Informática. Docente: Ana Paula Afonso Resolução de Problemas. 1. Analisar o problema

Introdução à Programação

Estudando com o MATLAB

Programa. Linguagem MATLAB Métodos Computacionais para EDO Métodos Computacionais para EDP. Critérios

Algoritmos e Estruturas de Dados I

Programação: Vetores

Álgebra Linear Aplicada à Compressão de Imagens. Universidade de Lisboa Instituto Superior Técnico. Mestrado em Engenharia Aeroespacial

Aula 7: Portas Lógicas: AND, OR, NOT, XOR, NAND e NOR

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Lista de exercícios de MAT / II

Aplicações Informáticas B 12º Ano

Introdução ao Matlab. Rodrigo Soares de Abreu

Introdução aos Sistemas Matlab/GNU Octave

Algoritmos Genéticos. Estéfane G. M. de Lacerda DCA/UFRN Outubro/2008

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

Introdução: A necessidade de ampliação dos conjuntos Numéricos. Considere incialmente o conjunto dos números naturais :

Caderno 1: 35 minutos. Tolerância: 10 minutos. (é permitido o uso de calculadora)

Dispositivos e Periféricos de Computador

Ficheiros de texto 1. Ficheiros de texto. 1. Implementar um programa que leia uma frase do teclado e a escreva num ficheiro.

Curso de PHP. FATEC - Jundiaí. A diferença a entre as matrizes e as arrays é que acrescentamos mais

Map05 - Métodos Matriciais Computacionais Mat Álgebra Matricial Computacional Primeiro Exercicio Computacional, entregar ao Prof: 22/10/2012

BAC004 Informática Teórica T2 Professora: Fabiana Costa Guedes Lista 05 Vetores e Matrizes Vetores

Quarta lista de exercícios: Potenciais e campos.

ESCOLA BÁSICA INTEGRADA DE ANGRA DO HEROÍSMO Plano da Unidade

Gráficos em duas dimensões

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem Python

Computação 1 - Python 1/ 41

Planeamento e Gestão de Redes. Simulação de Redes IP

Bitmap X Vetorial OS DOIS PRINCIPAIS TIPOS DE ARQUIVOS NA COMPUTAÇÃO GRÁFICA

2.1. Construção da Pista

MATLAB Avançado. Melissa Weber Mendonça

Informática no Ensino de Matemática Prof. José Carlos de Souza Junior jc

RHINOCEROS 4.0 RHINOCEROS 4.0

Exercícios sobre algoritmos

2. EXERCÍCIOS PROPOSTOS SOBRE V.A. E DISTRIB.PROBAB.


Transcrição:

Informá(ca para as Ciências e Engenharias Versão : C (Engenharia Civil) Aula 6 Pedro Barahona 2016 / 17

Sumário Representação de imagens num ecrã. Píxeis. Sistema RGB. Gráficos em Matlab. Gráficos de pontos e de linhas. Gráficos de barras. Gráficos de imagens. Cálculo de áreas pelo método de Monte Carlo. Números pseudo-aleatórios. Simulação de Modelos Discretos Exemplo: Incêndio numa floresta. 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 2

Cons(tuição do ecrã Píxel(1,1) Píxel(1,C) Ecrã cons(tuído por uma matriz de píxeis (picture elements). Organizado em L linhas (por exemplo, 768). L linhas Cada linha tem C colunas (por exemplo, 1024). C colunas Píxel(L,1) Píxel(L,C) 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 3

Imagem é composta por píxeis Image from: wikipedia, author: ed g2s Imagem ampliada para mostrar os píxeis 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 4

Píxeis formam figuras geométricas 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 5

Píxeis formam letras e números [1] 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 6

Píxeis formam letras e números [2] Uso de níveis intermédios para melhorar a imagem 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 7

Representação da cor [1] l Cor: cada píxel formado por 3 componentes primários. l RGB: l l l Red vermelho; Green verde; Blue azul. 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 8

Representação da cor [2] Cor de cada píxel codificada, usualmente, em 3 bytes (24 bits); 1 byte por componente. (red, green, blue) Os três números representam a contribuição de cada uma das cores primárias. Exemplo: O terno (255, 255, 0) resulta num brilhante amarelo. R (255,255,0) G http://en.wikipedia.org/wiki/rgb_color_model B Para testar cores: hjp://www.rapidtables.com/web/color/rgb_color.htm 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 9

Representação da cor Exemplos Cor representada por 3 valores de 8 bits (True Color) 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 10

Manipulação do ecrã (simplificado) CPU CPU escreve bits na memória de vídeo Píxel(1,1) Píxel(1,C) RAM vídeo (3 bytes cada píxel) Controlador do ecrã Eletrónica atualiza os píxeis do ecrã 50/60 vezes por segundo Píxel(L,1) Píxel(L, C) 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 11 11

Sumário Representação de imagens num ecrã. Píxeis. Sistema RGB. Gráficos em Matlab. Gráficos de pontos e de linhas. Gráficos de barras. Gráficos de imagens. Cálculo de áreas pelo método de Monte Carlo. Números pseudo-aleatórios. Simulação de Modelos Discretos Exemplo: Incêndio numa floresta. 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 12

Gráficos de linhas 1. Preencher um vetor x com os valores das abcissas. 2. Preencher um vetor y com os valores das ordenadas. 3. Usar a função plot(x, y, cor) para traçar o gráfico, onde cor especifica a cor a usar (por exemplo, r, b, g, c, y, ) Pode não usar o 3º argumento, usando a cor por omissão (ver help plot). >> X = [0, 1, 2, 3, 4, 5]; >> Y = [0, 0.5, 1, 0.5, 0, 0.5]; >> plot(x, Y, -b ) 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 13

Gráficos de Pontos 1. Preencher um vetor x com os valores das abcissas. 2. Preencher um vetor y com os valores das ordenadas. 3. Usar a função plot(x, y, sym) para traçar o gráfico, em que sym especifica o símbolo e a cor a usar (se não quiser a cor por omissão). Exemplos: +, *, o, +r, *g, etc. (ver help plot). Nota: O símbolo - corresponde à linha >> X = [0, 1, 2, 3, 4, 5]; >> Y = [0, 0.5, 1, 0.5, 0, 0.5]; >> plot(x, Y, * ) 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 14

Gráficos de linhas / funções [1] >> X = 0: pi/4:2pi; >> Y = sin(x) 0.00 0.71 1.00 0.71 0.00-0.71-1.00-0.71-0.00 >> plot(x,y) Nota: Relembrar que em Matlab os dados são tratados como matrizes. A função sin, chamada com uma matriz retorna o seno de cada elemento da matriz A função sin, chamada com um vetor retorna o seno de cada elemento do vetor. 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 15

Gráficos de linhas / funções [1] >> X = 0: pi/16:2pi; >> Y = sin(x); >> plot(x,y) Para melhorar a qualidade do gráfico usar mais pontos. 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 16

Gráficos de linhas / funções [1] Pode fazer-se o gráfico de várias funções se se usar a instrução hold on Pode acrescentar-se uma legenda ao gráfico com o comando legend('sin', 'cos ); >> X = 0: pi/16:2pi; >> Y = sin(x); >> Z = cos(x); >> plot(x,y, r ); >> hold on; >> plot(x,z, g ); >> legend('sin', 'cos ); >> hold off; % para outro gráfico 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 17

Sumário Representação de imagens num ecrã. Píxeis. Sistema RGB. Gráficos em Matlab. Gráficos de pontos e de linhas. Gráficos de barras. Gráficos de imagens. Cálculo de áreas pelo método de Monte Carlo. Números pseudo-aleatórios. Simulação de Modelos Discretos Exemplo: Incêndio numa floresta. 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 18

Gráficos de barras [1] 1. Preencher um vetor x com os valores de cada barra. 2. Usar a função bar(x) para traçar o gráfico. Por omissão as categorias são enumeradas no eixo dos x >> V = [10, 20, 15, 35, 5]; >> bar(v); 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 19

Gráficos de barras [2] Pode-se melhorar o gráfico Alterarando o nome das categorias; e /ou Adicionando o ytulo e os nomes dos eixos. >> V = [10, 20, 15, 35, 5]; >> bar(v); >> set(gca, 'XTickLabel', {, A, B, C, D, E }); >> title( Estatística ); >> ylabel( Reprovação ); >> xlabel( Disciplinas ); 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 20

Gráficos de barras [3] Pode-se traçar mais do que uma barra em cada categoria usando uma matriz, em que cada linha tem os pontos de cada categoria. Nota: Ver mais detalhes no manual ou com help bar V = [10, 90 ; 20, 80 ; 15, 85 ; 35, 65 ; 5, 95]; >> bar(v); >> set(gca, 'XTickLabel', {, A, B, C, D, E }); >> xlabel( Disciplinas ); 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 21

Sumário Representação de imagens num ecrã. Píxeis. Sistema RGB. Gráficos em Matlab. Gráficos de pontos e de linhas. Gráficos de barras. Gráficos de imagens. Cálculo de áreas pelo método de Monte Carlo. Números pseudo-aleatórios. Simulação de Modelos Discretos Exemplo: Incêndio numa floresta. 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 22

Gráficos de imagens [1] Para produzir um gráfico de uma imagem usar o seguinte procedimento: 1. Preencher uma matriz M com um valor de 1 a n para cada ponto. 2. Definir o mapa de cores usando a função colormap( [cor 1 ; ; cor n ] ) em que cor i = R G B, são 3 reais entre 0 e 1, definindo a cor para o valor i da matriz Exemplo: A matriz [ 0 1 0; 1 0 0; 1 1 0 ] especifica que cor 1 = verde; cor 2 = vermelho; cor 3 = amarelo Para testar outras cores usar, por exemplo: hjp://www.rapidtables.com/web/color/rgb_color.htm 3. Desenhar a imagem usando a função image(m). 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 23

Gráficos de imagens [2] >> V = [10, 20, 15, 35, 5]; >> imagem = [1 1 2 2 2 ; 1 3 3 2 2 ; 1 3 3 2 2 ; 1 1 2 2 2]; >> cores = [0 1 0 ; 1 0 0 ; 1 1 0]; % [1-green; 2-red; 3-yellow] >> colormap(cores); >> image(imagem); [ 1 1 2 2 2 ; 1 3 3 2 2 ; 1 3 3 2 2 ; 1 1 2 2 2 ]; 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 24

Sumário Representação de imagens num ecrã. Píxeis. Sistema RGB. Gráficos em Matlab. Gráficos de pontos e de linhas. Gráficos de barras. Gráficos de imagens. Cálculo de áreas pelo método de Monte Carlo. Números pseudo-aleatórios. Simulação de Modelos Discretos Exemplo: Incêndio numa floresta. 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 25

Métodos de Monte Carlo Métodos de Monte Carlo: Métodos usados para conceber algoritmos que recorrem a números (pseudo-)aleatórios. Números pseudo-aleatórios: Uma sequência de números pseudo-aleatórios tem uma aparência aleatória (aparentemente, sem padrão), mas é previsível e reproduyvel. Algumas aplicações: Simulações de fenómenos zsicos, químicos, biológicos, bioquímicos, etc., jogos, cálculo de áreas. 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 26

Monte Carlo aplicações Algumas aplicações do cálculo de áreas: Es(mar o valor de um número irracional (p.e. π). Es(mar a área de uma região definida por várias funções ou por funções com muitas variáveis. Es(mar o valor de um integral. Exemplo: 1.5 R 1 e x 3 0 dx 1 0.5 0 0 0.2 0.4 0.6 0.8 1 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 27

Monte Carlo Cálculo de áreas Método para calcular a área A R da região R: 1. Definir uma região S tal que: a) S contém R; b) a área de S (A S ) é conhecida (e fácil de calcular). 2. Gerar n pontos pseudo-aleatórios de S e contar o número k de pontos que quantos pertencem a R. 3. O valor es(mado para A R é proporcional ao número de pontos que pertemcem a R, pelo que se pode es(mar: A R = ( k / n ) A S. Nota: Os resultados são melhores quando: S é uma região contendo R, tão estritamente quanto possível; e n é grande. 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 28

Números pseudo-aleatórios A função rand retorna números pseudo-aleatórios uniformemente distribuídos no intervalo ]0, 1[. Para obter um número entre: ]0, 1[ rand ou rand( ) ]0, b[ (com 0 < b) b * rand ]a, b[ (com a < b) a + (b a) * rand Para obter uma matriz de L C com elementos entre: ]0, 1[ rand(l, C) 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 29

Problema da fa(a de um círculo Faça um programa que, dado o raio de um círculo e duas abcissas, es0ma a área da respe(va fa(a ver(cal do círculo e representa graficamente a es(ma(va. Sugestão: use o método de Monte Carlo para efetuar a es(ma(va. 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 30

Resolução Problema [1] 1. Compreender totalmente o problema. Pretende-se es(mar a área da fa(a ver(cal do círculo usando o método de Monte Carlo. Pretende-se uma representação gráfica da es(ma(va. 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 31

Monte Carlo Es(ma(va da área Algoritmo: A região S é [0, 2r] [0, 2r]. A área de S é (2r) 2. Geram-se n pontos uniformemente distribuídos em S. Contam-se os k pontos pertencendo a R. O valor es(mado para a área de R é (k / n) (2r) 2. Para usar este algoritmo, como se contam os pontos? Geram-se n pontos x, y tais que x: x A e x B y: y 0 e y 2r Conta-se o ponto se (x-r) 2 +(y-r) 2 r 2 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 32 2r r 0 0 S A R r B 2r

Resolução Problema [2] 2. Caracterizar o problema. Problema: Es(ma(va da área de uma fa(a ver(cal de um círculo com representação gráfica. Entrada: (real) raio, (real) xesq, (real) xdir, (inteiro) número de pontos a gerar. Saída: (real) es(ma(va da área da fa(a do círculo eé gerado um gráfico. 3. Generalizar o problema (sempre que for possível). Não vamos generalizar este problema. 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 33

Representação gráfica 2r r S R 0 0 A r B 2r 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 34

Resolução Algoritmo [1] 4. Desenhar o algoritmo para resolver o problema. a) Conceber o algoritmo, decompondo o problema em sub-problemas. Como es(mar a área e representar a es(ma(va? Aplicar o método de Monte Carlo, «computando uma es(ma(va da área; e «devolvendo os pontos gerados que ficam dentro e fora da fa(a. Desenhar o gráfico com os pontos gerados dentro e fora da fa(a. 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 35

Resolução Algoritmo [2] b) Iden(ficar, caracterizar e generalizar cada sub-problema. Problema: Es(ma(va da área de uma fa(a ver(cal de um círculo. Entrada: (real) raio, (real) xesq, (real) xdir, (inteiro) número de pontos a gerar. Saída: (real) es(ma(va da área da fa(a do círculo, (matriz) pontos gerados dentro da fa(a, (matriz) pontos gerados fora da fa(a. Nota: Temos aqui uma situação em que a função não retorna um só valor (escalar, vetor ou matriz) mas sim um conjunto de valores de (pos diferentes. No caso, um número real e duas matrizes. 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 36

Resolução Algoritmo [3] b) Iden(ficar, caracterizar e generalizar cada sub-problema. Problema: Desenho de dois conjuntos de pontos. Entrada: (matriz) pontos do conjunto 1, (matriz) pontos do conjunto 2. Saída: nenhuma. É gerado um gráfico. Nota: Temos aqui uma situação em que a função não retorna nenhum valor. Neste caso a assinatura da função não contem nenhuma variável de retorno. 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 37

Valores retornados por funções Em Matlab, as assinaturas das funções permitem especificar funções que retornam um número variado de resultados : function res = nomefunção( parâmetros ) Retorno de um valor de qualquer (po (escalar, vetor, matriz, etc.) function [r 1, r 2,..., r n ] = nomefunção( parâmetros ) Retorno dos valores r 1, r 2,..., r n, possivelmente de (pos diferentes. Nota: [r 1, r 2,..., r n ] não é um vetor; é uma lista de valores. function nomefunção( parâmetros ) Retorno de nenhum valor. 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 38

Resolução Algoritmo [4] c) Conceber o algoritmo, assumindo que os sub-problemas estão resolvidos. Es(ma(va da área com representação gráfica (raio, xesq, xdir, numpts): Sub-problema 1: [area, ptsdentro, ptsfora] ç areafa(acirc(raio, xesq, xdir, numpts) Sub-problema 2: desenha2conjpts(ptsdentro, ptsfora) 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 39

Resolução Algoritmo [5] 5. Para cada sub-problema, desenhar o algoritmo para o resolver. Sub-problema 2: desenha2conjpts( conj1, conj2 ): desenha os pontos na matriz conj1 na mesma figura, desenha os pontos na matriz conj2, 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 40

Resolução Algoritmo [6] 5. Para cada sub-problema, desenhar o algoritmo para o resolver. Sub-problema 1: areafa(acirc( raio, xesq, xdir, numpts ): numptsdentro ç 0 ; ptsdentro ç [] ; ptsfora ç []; Para i de 1 a numpts Gerar ponto aleatório (x,y) em [0, 2*raio] [0, 2*raio] Se (x,y) entre as retas e dentro do círculo então senão retornar: numptsdentro ç numptsdentro + 1 Acrescentar (x,y) à matriz ptsdentro Acrescentar (x,y) à matriz ptsfora numptsdentro / numpts * (2*raio)^2, ptsdentro, ptsfora 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 41

Resolução Programa [1] 6. Para cada sub-problema (começando pelos mais simples), implementar o respec(vo algoritmo e testar o sub-programa. Problema: Desenho de dois conjuntos de pontos. Entrada: (matriz) pontos do conjunto 1, (matriz) pontos do conjunto 2. Saída: nenhuma. É gerado um gráfico. 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 42

Função desenha2conjpts O 2º sub-problema (mais simples) usa os comandos e funções gráficas vistas anteriormente. function desenha2conjpts(conj1, conj2)! % desenha2conjpts(conj1, conj2)! % Desenha dois conjuntos de pontos com cores diferentes. % As matrizes conj1 e conj2 tem: % na primeira coluna, as abcissas dos pontos; % na segunda coluna, as ordenadas dos pontos.! end! clf; % apaga graficos das janelas abertas! plot(conj1(:,1),conj1(:,2),.r )! hold on;! plot(conj2(:, 1), conj2(:, 2),.b');! 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 43

Resolução Programa [2] 6. Para cada sub-problema (começando pelos mais simples), implementar o respec(vo algoritmo e testar o sub-programa. Problema: Es(ma(va da área de uma fa(a ver(cal de um círculo. Entrada: (real) raio, (real) xesq, (real) xdir, (inteiro) número de pontos a gerar. Saída: (real) es(ma(va da área da fa(a do círculo, (matriz) pontos gerados dentro da fa(a, (matriz) pontos gerados fora da fa(a. 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 44

Função areafa(acirc [1] Para o 1º sub-problema (mais complexo ) começamos pela sua documentação. function [area, ptsdentro, ptsfora] =! areafatiacirc(raio, xesq, xdir, numpts)! % [area, ptsdentro, ptsfora] =! % areafatiacirc(raio, xesq, xdir, numpts)! % Desenha dois conjuntos de pontos com cores diferentes.! % Estima a area de uma fatia vertical de um circulo (com o raio dado)! % usando o metodo de Monte Carlo.! % O circulo tem centro no ponto (raio, raio).! % A fatia e' definida pelos pontos do circulo cujas abcissas! % estao entre xesq e xdir (com xesq < xdir).! % O inteiro numpts e o numero de pontos gerados.! % As matrizes ptsdentro e ptsfora, com duas colunas,! % tem os pontos gerados que ficam dentro e fora da fatia.! end!...! 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 45

Função areafa(acirc [2] E agora o código (deixando para o próximo slide o ciclo FOR) function [area, ptsdentro, ptsfora] =...! areafatiacirc(raio, xesq, xdir, numpts)! %...! end! numptsdentro = 0;! ptsdentro = [ ];! ptsfora = [ ];! areafora = (2 * raio) * (xdir xesq);! for i = 1 : numpts % conta os pontos e atualiza as matrizes! end!...! area = (numptsdentro / numpts) * areafora;! 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 46

Função areafa(acirc [3] E agora o ciclo FOR function [area, ptsdentro, ptsfora] = areafatiacirc(raio, xesq, xdir, numpts)! end... for i = 1 : numpts end... x = xesq + (xdir - xesq) * rand; y = 2 * raio * rand; % conta os pontos e atualiza as matrizes if (x raio)^2 + (y raio)^2 <= raio^2 else end numptsdentro = numptsdentro + 1; ptsdentro = [ptsdentro ; x, y]; ptsfora = [ptsfora ; x, y]; 2r % conta r 0 xesq R S xdir 2r 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 47

Resolução Programa [3] 7. Implementar o algoritmo que resolve o problema e testar o programa pedido. Problema: Es(ma(va da área de uma fa(a ver(cal de um círculo com representação gráfica. Entrada: (real) raio, (real) xesq, (real) xdir, (inteiro) número de pontos a gerar. Saída: (real) es(ma(va da área da fa(a do círculo. É gerado um gráfico. 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 48

Função es(maedesenhafa(acirc E agora a função principal, que chama as duas funções anteriores. function area = estimaedesenhafatiacirc(raio, xesq, xdir, numpts) % area = estimaedesenhafatiacirc(raio, xesq, xdir, numpts) % Estima a area de uma fatia vertical de um circulo % (com o raio dado), usando o metodo de Monte Carlo, e % apresenta a estimativa graficamente. % O centro do circulo e' (raio, raio). A fatia e' definida pelos % pontos do circulo cujas abcissas estao entre xesq e xdir % (com xesq < xdir). % O inteiro numpts e o numero de pontos gerados. [area, ptsdentro, ptsfora] = areafatiacirc(raio,... xesq, xdir, numpts); %... permite a mudança de linha desenha2conjpts(ptsdentro, ptsfora); end 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 49

Alguns Testes [1] >> estimaedesenhafatiacirc(3, 2, 5, 5000) ans = 19.080 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 50

Alguns Testes [1] >> estimaedesenhafatiacirc(3, 2, 5, 5000) ans = 17.172 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 51

Alguns Testes [1] >> estimaedesenhafatiacirc(3, 2, 5, 100000) ans = 16.943 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 52

Figura com (3, 0, 6, 100000) >> pi9 = estimaedesenhafatiacirc(3, 0, 6, 100000) pi9 = 28.281 >> pi9/ 9 ans = 3.1423 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 53

Problema da es(ma(va de pi Faça um programa que es0me o valor de π (pi) Sugestão: use o método de Monte Carlo para efetuar a es(ma(va da área de um círculo: π = A/r 2 para r=1 temos: π = A 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 54

Resolução Problema [1] 1. Compreender totalmente o problema. Pretende-se es(mar o valor de π (pi) Sugestão: recorre-se à es(ma(va da área de um círculo de raio 1 pelo método de Monte Carlo. 2. Caracterizar o problema. Problema: Es(ma(va de π. Entrada: (inteiro) número de pontos a gerar. Saída: (real) es(ma(va de π. 2. Generalizar o problema (sempre que for possível). Não é possível generalizar este problema. 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 55

Resolução Problema[2] 4. Desenhar o algoritmo para resolver o problema. a) Conceber o algoritmo, decompondo o problema em sub-problemas. Como es(mar o valor da área do círculo? Já resolvido anteriormente, por exemplo: [area, ptsdentro, ptsfora] = areafatiacirc(1, 0, 1, numpts) Es(ma(va de PI = area 5. Para cada sub-problema, desenhar o algoritmo para o resolver. Já resolvido 6. Para cada sub-problema, implementar o respec(vo algoritmo... Já implementado 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 56

Função es(mapi A função é basicamente uma chamada à função que calcula a área de um círculo de raio 1, centrado no ponto (1,1), entre as abcissas 0 e 2. function estpi = estimapi(numpts) % area = estimapi(numpts) % % Calcula uma estimativa de pi recorrendo ao metodo % de Monte Carlo. O inteiro numpts e o numero de pontos % gerados aleatoriamente para estimar a area do circulo [area, ptsdentro, ptsfora] = areafatiacirc(1,0,2,numpts); estpi = area; end 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 57

Função es(mapi Como visto anteriormente, a qualidade da es(ma(va do valor de π depende do número de pontos u(lizado. 3.40 3.35 3.30 3.25 3.20 3.15 3.10 3.05 1 2 3 4 5 6 7 Valores es(mados com vários valores de numpts: 10 1, 5 10 1, 10 2, 5 10 2, 10 3, 5 10 3, 10 4,5 10 4, 10 5, 5 10 5, 10 6, 5 10 6, 10 7. 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 58

Sumário Representação de imagens num ecrã. Píxeis. Sistema RGB. Gráficos em Matlab. Gráficos de pontos e de linhas. Gráficos de barras. Gráficos de imagens. Cálculo de áreas pelo método de Monte Carlo. Números pseudo-aleatórios. Simulação de Modelos Discretos Exemplo: Incêndio numa floresta. 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 59

Problema Incêndio em Floresta [1] Pretende-se simular um incêndio numa floresta, segundo o modelo de simulação a seguir apresentado: A floresta é composta por um conjunto de árvores dispostas numa grelha retangular. Em cada instante, cada árvore está num de três estados: Viva, representado por 1 (e desenhado a verde); A arder, representado por 2 (e desenhado a vermelho); Morta, representado por 3 (e desenhado a preto). 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 60

Problema Incêndio em Floresta [2] Simula-se o incêndio em passos discretos, onde as árvores transitam de estado simultaneamente a cada passo. O novo estado de cada árvore depende do seu estado atual, do estado das quatro árvores vizinhas (nas direções Norte, Sul, Este e Oeste) e de uma probabilidade... As árvores da fronteira (da primeira / úl(ma linha / coluna da grelha retangular) não mudam de estado (só para facilitar a solução). 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 61

Problema Incêndio em Floresta [3] Regras de propagação do incêndio (para o estado seguinte): 1. Se uma árvore está viva e: a) alguma árvore vizinha está a arder, a árvore fica a arder; b) nenhuma árvore vizinha está a arder, então: a árvore fica a arder com probabilidade pbbarder (ex. devido a faúlhas); a árvore con(nua viva com probabilidade 1. 2. Se a árvore está a arder, morre. 3. Se a árvore está morta, permanece morta (já não volta a mudar de estado). Objec0vo: O programa deve desenhar o estado da floresta no estado inicial e no fim de cada um dos passos. 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 62

Resolução Problema [1] 1. Compreender totalmente o problema. 2. Caracterizar o problema. Problema: Incêndio em floresta.. Entrada: (matriz) estadoinicial, (real) pbbarder, (inteiro) numpassos. Saída: nenhuma. São gerados numpassos + 1 gráficos. 3. Generalizar o problema (sempre que for possível). Não vamos generalizar mais este problema. 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 63

Resolução Algoritmo [1] 1. Desenhar o estado inicial da floresta. desenhafloresta(estado) 2. Em cada um dos numpassos passos: a) Calcular o novo estado da floresta. novoestado = estadofloresta(estado, pbbarder) b) Desenhar o novo estado da floresta. desenhafloresta(novoestado) 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 64

Resolução Problema [2] b) Iden(ficar, caracterizar e generalizar cada sub-problema. Problema: Desenho da floresta. Entrada: (matriz) estado da floresta. Saída: nenhuma. É gerado um gráfico. 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 65

Resolução Problema [3] b) Iden(ficar, caracterizar e generalizar cada sub-problema. Problema: Cálculo do próximo estado da floresta. Entrada: (matriz) estado atual, (real) pbbarder. Saída: (matriz) novoestado da floresta. 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 66

Resolução Algoritmo [2] novoestado = estadofloresta( estado, pbbarder ) 1. Criar a matriz novoestado. Como o tamanho de novoestado é o tamanho de estado e as árvores da fronteira não mudam de estado: novoestado ç estado. 2. Para todas as árvores do interior de novoestado: a) Calcular o novo estado de cada árvore: Criamos a função estadoarvore que, dado o estado da árvore (arv), o estado das 4 vizinhas (v1, v2, v3, v4) e a probabilidade de arder, calcula o novo estado: res = estadoarvore(arv, v1, v2, v3, v4, pbbarder) b) Guardar o novo estado da árvore na matriz novoestado. 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 67

Resolução Problema [4] b) Iden(ficar, caracterizar e generalizar cada sub-problema. Problema: Cálculo do próximo estado da árvore. Entrada: (inteiro) arvore, (inteiro) viz1, (inteiro) viz2, (inteiro) viz3, (inteiro) viz4, (real) pbbarder. Saída: (inteiro) novoestado da árvore. 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 68

Resolução Algoritmo [3] novoestado = estadoarvore( arv, v1, v2, v3, v4, pbbarder) 1. Testar em que estado está a árvore (arv pode valer 1, 2 ou 3) e aplicar as regras de transição desse estado. Problema: Como é que se programa a seguinte funcionalidade? As instruçõesa são executadas com probabilidade p e as instruçõesb são executadas com probabilidade 1 p. Solução: a) Gera-se um número pseudo-aleatório entre 0 e 1. b) Se esse número for inferior ou igual a p, executam-se as instruçõesa senão, executam-se as instruçõesb 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 69

Resolução Programa [1] 6. Para cada sub-problema (começando pelos mais simples), implementar o respec(vo algoritmo e testar o sub-programa. Sub-problemas a implementar: func(on desenhafloresta( floresta ) func(on novoestado = estadoarvore(arv, viz1, viz2, viz3, viz4, pbbarder) func(on novoestado = estadofloresta( estado, pbbarder ) 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 70

Função desenhafloresta 6. Para cada sub-problema (começando pelos mais simples), implementar o respe(vo algoritmo e testar o sub-programa. Problema: Desenho da floresta. Entrada: (matriz) estado da floresta. Saída: nenhuma. É gerado um gráfico. function desenhafloresta(floresta) % desenhafloresta(floresta) % Produz um grafico retangular com a representacao da % matriz floresta. % Cada celula da grelha corresponde a um elemento da % matriz. A cor da celula e : % (0 1 0) verde: se o elemento e 1 (a arvore esta viva); % (1 0 0) vermelha se o elemento e 2 (a arvore a arder); % 80 0 0) preta se o elemento e 3 (a arvore esta morta). mapacores = [ 0 1 0; 1 0 0; 0 0 0 ]; colormap(mapacores); image(floresta); end 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 71

Função estadoarvore [1] 6. Para cada sub-problema (começando pelos mais simples), implementar o respec(vo algoritmo e testar o sub-programa. Problema: Cálculo do próximo estado da árvore. Entrada: (inteiro) arvore, (inteiro) viz1, (inteiro) viz2, (inteiro) viz3, (inteiro) viz4, (real) pbbarder. Saída: (inteiro) novoestado da árvore. Documentação da função function novoestado = estadoarvore(arv,viz1,viz2,viz3,viz4,pbbarder) % novoestado = estadoarvore(arv, viz1, viz2, viz3, viz4, pbbarder) % Calcula o novo estado da arvore com base: % no valor arv, que tem o estado atual da arvore % (1 significa viva, 2 a arder e 3 morta ); % nos valores viz1, viz2, viz3 e viz4, que sao os estados das % arvores vizinhas; % pbbarder, que e a probabilidade de uma arvore viva... end 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 72

Função estadoarvore [2] Problema: Cálculo do próximo estado da árvore. Documentação da função (cont.) function novoestado = estadoarvore(arv,viz1,viz2,viz3,viz4,pbbarder) %... % Se a arvore esta' viva e: % alguma arvore vizinha esta' a arder, a arvore fica a arder; % nenhuma arvore vizinha esta' a arder, % a probabilidade da arvore ficar a arder e' pbbarder e % a probabilidade da arvore continuar viva e' 1 pbbarder. % Se a arvore esta' a arder, morre. % Se a arvore esta' morta, mantem-se nesse estado.... end 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 73

Função estadoarvore [3] Problema: Cálculo do próximo estado da árvore. Caso em que a árvore não está viva function novoestado = estadoarvore(arv,viz1,viz2,viz3,viz4,pbbarder) %... if arv == 1 % se a arvore estiver viva... else % A arvore esta' a arder ou está morta. % Em qualquer caso, fica morta. novoestado = 3; end end 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 74

Números pseudo-aleatórios Para o caso em que a árvore está viva relembrar A função rand retorna números pseudo-aleatórios uniformemente distribuídos no intervalo ]0, 1[. Para obter um número entre: ]0, 1[ rand ou rand( ) ]0, b[ (com 0 < b) b * rand ]a, b[ (com a < b) a + (b a) * rand Para obter uma matriz de L C com elementos entre: ]0, 1[ rand(l, C) 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 75

Função estadoarvore [4] Problema: Cálculo do próximo estado da árvore. Caso em que a árvore está viva function novoestado = estadoarvore(arv,viz1,viz2,viz3,viz4,pbbarder)... if arv == 1 % se a arvore estiver viva if viz1 == 2 viz2 == 2 viz3 == 2 viz4 == 2 % Com alguma arvore vizinha a arder, a arvore fica a arder. novoestado = 2; elseif rand <= pbbarder % A arvore fica a arder com probabilidade pbbarder. novoestado = 2; else % A arvore fica viva com probabilidade 1 pbbarder. novoestado = 1; end... 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 76

Função estadofloresta [1] 6. Para cada sub-problema (começando pelos mais simples), implementar o respe(vo algoritmo e testar o sub-programa. Problema: Cálculo do próximo estado da floresta. Entrada: (matriz) estado, (real) pbbarder. Saída: (matriz) novoestado da floresta. Documentação da função (cont.) function novoestado = estadofloresta( estado, pbbarder) % novoestado = estadofloresta(estado, pbbarder) % Calcula o novo estado da floresta com base: % na matriz estado, que tem o estado atual da floresta; % no valor pbbarder, que e a probabilidade de uma arvore % viva sem vizinhas a arder ficar a arder. % As arvores da fronteira (da primeira/ultima linha/coluna da % matriz estado) nao mudam de estado.... end 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 77

Função estadofloresta [2] E o código para obter o novo estado Tendo em atenção que a fronteira não é alterada function novoestado = estadofloresta( estado, pbbarder) %... numlinhas = size(estado, 1); numcolunas = size(estado, 2); novoestado = estado; % A fronteira nao e' alterada. for i = 2 : numlinhas 1 for j = 2 : numcolunas 1 % Calcula o novo estado da arvore em (i, j)... end end end 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 78

Função estadofloresta [3] E o código para obter o novo estado Actualizando o estado de cada árvore do interior function novoestado = estadofloresta( estado, pbbarder) %... for i = 2 : numlinhas 1 for j = 2 : numcolunas 1 % Calcula o novo estado da arvore em (i, j) aarvore = estado(i, j); vizinha1 = estado(i 1, j); vizinha2 = estado(i+1, j); vizinha3 = estado(i, j 1); vizinha4 = estado(i, j+1);... significa : continua na próxima linha novoestado(i,j) = estadoarvore(aarvore, vizinha1, vizinha2, vizinha3, vizinha4, pbbarder); end end end 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 79

Função incendiofloresta [1] 7. Implementar o algoritmo que resolve o problema e testar o programa pedido. Problema: Incêndio em floresta. Entrada: (matriz) estadoinicial, (real) pbbarder, (inteiro) numpassos. Saída: nenhuma. São gerados numpassos + 1 gráficos. function incendiofloresta( estadoinicial, pbbarder, numpassos ) % % incendiofloresta(estadoinicial, pbbarder, numpassos) % Simula o estado de um conjunto de arvores dispostas numa % grelha rectangular. % Em cada instante, cada arvore esta' num de tres estados: % 1 viva (desenhado a verde); % 2 a arder (desenhado a vermelho); % 3 morta (desenhado a preto). % A simulacao desenha o estado da floresta no estadoinicial e % no fim de cada passo. O numero de passos e' numpassos. % As arvores da fronteira (da primeira/ultima linha/coluna da matriz estadoinicial) nao mudam de estado.... end 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 80

Função incendiofloresta [2] Problema: Incêndio em floresta. Entrada: (matriz) estadoinicial, (real) pbbarder, (inteiro) numpassos. Saída: nenhuma. São gerados numpassos + 1 gráficos. Documentação da função (cont.) function incendiofloresta( estadoinicial, pbbarder, numpassos ) % As arvores transitam de estado simultaneamente. % O novo estado depende do estado da arvore, do estado das % quatro arvores vizinhas (direcoes Norte, Sul, Este e Oeste) % e do valor de pbbarder. % Se a arvore esta' viva e: % alguma arvore vizinha esta' a arder, a arvore fica a arder; % nenhuma arvore vizinha esta' a arder, % a probabilidade da arvore ficar a arder e' pbbarder e % Se a arvore esta' a arder, morre. % Se a arvore esta' morta, mantem-se nesse estado.... end 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 81

Função incendiofloresta [3] Entrada: (matriz) estadoinicial, (real) pbbarder, (inteiro) numpassos. Saída: nenhuma. São gerados numpassos + 1 gráficos. E agora o código Nota: A função não retorna qualquer valor. Apenas produz várias figuras. function incendiofloresta( estadoinicial, pbbarder, numpassos ) %... estado = estadoinicial; figure(1); % criação da figura nº 1 desenhafloresta(estado); for i = 1 : numpassos estado = estadofloresta(estado, pbbarder); figure(i+1); % criação da figura nº i+1 desenhafloresta(estado); end end 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 82

Execução de incendiofloresta [1] >> floresta = ones(20, 20); >> floresta(10, 10) = 2; % início do incêndio >> incendiofloresta(floresta, 0.001, 9) F 1 F 2 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 83

Execução de incendiofloresta [2] F 3 F 4 F 6 F 5 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 84

Execução de incendiofloresta [3] F 6 F 7 F 8 F 9 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 85

Para Estudar esta Aula Manual Octave Capítulo 15, plo ng MATLAB plo ng func(ons hjp://www.mathworks.com/help/matlab/crea(ng_plots/using-highlevel-plo ng-func(ons.html Método Monte Carlo (informal): hjp://en.wikipedia.org/wiki/monte_carlo_method 10 Abril 2017 6: Imagens e Gráficos em Matlab; Método Monte-Carlo 86