MODELAGEM E SIMULAÇÃODE PROCESSOS
Transcript of MODELAGEM E SIMULAÇÃODE PROCESSOS
MODELAGEM E
SIMULAÇÃODE PROCESSOS
Aula 1 – Laboratório de
Modelagem e Simulação
Pedro Leite de Santana (Teoria)
Rogério Luz Pagano (Laboratório)
PARTE I - INTRODUÇÃO À PROGRAMAÇÃO
INTRODUÇÃO À PROGRAMAÇÃO
Lógica de Programação
Lógica de programação é a técnica de encadear
pensamentos (instruções) para atingir determinado
objetivo.
Instruções Instruções são regras ou normas
definidas para a realização ou
emprego de algo. Em informática,
é o que indica a um computador
uma ação elementar a executar.
INTRODUÇÃO À PROGRAMAÇÃO
Algoritmo
[Do lat. med. algorismos, algorithmos, 'algarismo', por infl. do gr. arithmós, 'número'.]
1. Matemática. Processo de cálculo, ou de
resolução de um grupo de problemas semelhantes,
em que se estipulam, com generalidade e sem
restrições, regras formais para a obtenção do
resultado, ou da solução do problema.
2. Informática. Conjunto de regras e operações
bem definidas e ordenadas, destinadas à solução de
um problema, ou de uma classe de problemas, em
um número finito de etapas.
[AURÉLIO]
INTRODUÇÃO À PROGRAMAÇÃO
Exemplos de Algoritmos
instruções para se utilizar um aparelho eletrodoméstico;
uma receita para preparo de algum prato;
guia de preenchimento para declaração do imposto de renda;
a regra para determinação de máximos e mínimos de funções por
derivadas sucessivas;
a maneira como as contas de água, luz e telefone são calculadas
mensalmente; etc.
INTRODUÇÃO À PROGRAMAÇÃO
CaracterísticasTodo algoritmo deve apresentar algumas características básicas:
ter fim
não dar margem à dupla interpretação (não ser ambíguo)
capacidade de receber dado(s) de entrada
poder gerar informações de saída para o mundo externo ao
do ambiente do algoritmo
ser efetivo (todas as etapas especificadas no algoritmo devem
ser alcançáveis em um tempo finito)
INTRODUÇÃO À PROGRAMAÇÃO
Formas de Apresentação
DESCRIÇÃO NARRATIVA
EXEMPLO
Receita de Bolo:
Providencie manteiga, ovos, 2 Kg de massa, etc.
Misture os ingredientes
Despeje a mistura na fôrma de bolo
Leve a fôrma ao forno
Espere 20 minutos
Retire a fôrma do forno
Deixe esfriar
Prove
VANTAGENS:
o português é bastante conhecido por nós;
DESVANTAGENS:
imprecisão;
pouca confiabilidade (a imprecisão acarreta a desconfiança);
extensão (normalmente, escreve-se muito para dizer pouca coisa).
INTRODUÇÃO À PROGRAMAÇÃO
FLUXOGRAMA
EXEMPLO
VANTAGENS:
Uma das ferramentas mais conhecidas
Figuras dizem muito mais que palavras
Padrão mundial
DESVANTAGENS:
Pouca atenção aos dados, não oferecendo recursos para descrevê-los ou
representá-los, além disso, complica-se à medida que o algoritmo cresce.
INTRODUÇÃO À PROGRAMAÇÃO
LINGUAGEM ALGORITMICA
EXEMPLO
VANTAGENS:
Usa o português como base
Pode-se definir quais e como os dados vão estar estruturados
Passagem quase imediata do algoritmo para uma linguagem de programação
qualquer
DESVANTAGENS:
Exige a definição de uma linguagem não real para trabalho
Não padronizado
INTRODUÇÃO À PROGRAMAÇÃO
PSEUDOCÓDIGO
EXEMPLO
TESTE DE MESA
EXEMPLO
X = 5 Y = 9
SOMA = 5 + 9
ESCREVA SOMA = 14
INTRODUÇÃO À PROGRAMAÇÃO
ALGORITMOS
EXEMPLOS
INTRODUÇÃO À PROGRAMAÇÃO
Linguagens de Programação:
Compilador Fortran Gfortran 95 (free software) – FORCE 2.0
MATLAB Scilab 5.0 (free software)
Software livre para cálculo numérico e simulação de sistemas físicos.
Usado nas áreas:
1. Física
2. Sistemas complexos
3. Processamento de imagens
4. Controle e processamento de sinais
5. Automação industrial
6. Controle de processos
7. Computação gráfica
8. Matemática
9. Modelagem biológica
10. ...
Scilab
INTRODUÇÃO À PROGRAMAÇÃO
• Criado em 1989 por um grupo de pesquisadores da INRIA e da ENPC.
• Disponível como software livre desde 1994 pelo site http://www.scilab.org
• Consórcio Scilab desde 2003 mantido por diversas empresas.
• Objetivos do consórcio:
• organizar cooperação entre os desenvolvedores
• obter recursos para manutenção da equipe
• garantir suporte aos usuários
• Sistemas Operacionais:
• Linux
• Windows
• Solaris
• Unix
Scilab
INTRODUÇÃO À PROGRAMAÇÃO
Prompt de comando
Help
Editor
Scilab
INTRODUÇÃO À PROGRAMAÇÃO
Constantes especiais
• %e: constante neperiana
• %i: raiz quadrada de -1, número imaginário
%pi: constante p
• %eps: máximo valor tal que 1+%eps=1
• %inf: infinito
• %nan: não é um número
• %t: verdadeiro
• %f: falso
Scilab
INTRODUÇÃO À PROGRAMAÇÃO
INTRODUÇÃO À PROGRAMAÇÃO
Scilab Fortran
INTRODUÇÃO À PROGRAMAÇÃO
Scilab
INTRODUÇÃO À PROGRAMAÇÃO
Gráficos no Scilab
• Para gerar gráficos bidimensionais:
• plot2d(x,y,style)
• Onde x e y são vetores.
• Exemplo:
• x = [-2*%pi:0.1:2*%pi];
• y = sin(x);
• plot2d(x,y);
Style: tipo de linha do gráfico. Valores inteiros positivos definem linhas
contínuas, valores negativos definem linhas tracejadas.
• plot2d(x,y,-1);
• plot2d(x,y,2);
INTRODUÇÃO À PROGRAMAÇÃO
• y pode ser uma matriz, sendo que o número de linhas
de y deve ser igual ao número de elementos de x
• Exemplo:
x = [0:0.1:2*%pi];
y = [sin(x)‟ cos(x)‟];
plot2d(x,y);
INTRODUÇÃO À PROGRAMAÇÃO
• x e y podem ser matrizes de mesma dimensão
• Exemplo:
t = [-5:0.1:5];
x = [t‟ t‟];
y = [(t^2)‟ (t^3)‟];
plot2d(x,y);
INTRODUÇÃO À PROGRAMAÇÃO
• Comandos básicos:
• clf: limpa a tela, evitando que o próximo gráfico se
sobreponha ao anterior:
• Exemplo:
• y = sin(x);
• plot2d(x,y);
• z = cos(x);
• plot2d(x,z);
mas
• clf;plot2d(x,y);
INTRODUÇÃO À PROGRAMAÇÃO
• Comandos básicos:
• xtitle („titulo‟): apresenta o título do gráfico
• legend(„legenda1‟, „legenda2‟,…)
• Exemplo:
• t = 0:0.1:10;
• S = 5 + 10*t + 0.5*2*t.*t;
• V = 10 + 2*t;
• plot2d(t,S,-2);
• plot2d(t,V,-4);
• xtitle(„Cinematica‟);
• legend(„Posição‟, „Velocidade‟);
INTRODUÇÃO À PROGRAMAÇÃO
• Comandos básicos:
• subplot: divide um janela de um gráfico em sub-
graficos
• Exemplo:subplot(221)
plot2d(x,sin(x))
subplot(222)
plot2d(x,cos(x))
subplot(223)
plot2d(x,tan(x))
subplot(224)
plot2d(x,sin(x).*cos(x))
INTRODUÇÃO À PROGRAMAÇÃO
• Comandos básicos:
• logflag: define escala linear ou logarítmica
• “nn” – linear x linear
• “nl” – linear x logarítmica
• “ll” – logarítmica x logarítmica
Exemplo:
x =1:100;
subplot(1,2,1);
plot2d(x,y, logflag='nn');
xtitle(„Escala linear‟);
subplot(1,2,2);
plot2d(x,y, logflag='ll');
xtitle(„Escala log-log‟);
INTRODUÇÃO À PROGRAMAÇÃO
• Gráficos tridimensionais
• mesh: gera gráficos em 3D
• Exemplo:[X,Y]=meshgrid(-5:0.1:5,-4:0.1:4);
Z=X.^2-Y.^2;
xtitle('z=x2-y ^2');
mesh(X,Y,Z);
INTRODUÇÃO À PROGRAMAÇÃO