Você está na página 1de 44

Computação Científica

Scilab
Utilizando Scilab na Engenharia Química
Xmgrace
Dia
G3DATA

Linux for Dummies

Fábio Santos: fsantos@peq.coppe.ufrj.br


Jovani Fávero: jovani@peq.coppe.ufrj.br
Livia Jatobá: ljatoba@peq.coppe.ufrj.br

77a Semana da Escola de Química


Setembro/2010

1 / 39
Computação Científica
Scilab
Utilizando Scilab na Engenharia Química
Xmgrace
Dia
G3DATA

Gráficos no Scilab
1 Computação Científica
Programação
O que é computação científica? 3 Utilizando Scilab na Engenharia
Computação Científica e Linux Química
Computação em alto desempenho Otimização: ajuste de modelos e
Algumas ferramentas (Open-Source) dados experimentais
Computação científica na Toolbox e ATOM
Engenharia Química Dinâmica de um bioreator
2 Scilab Equação cúbica de estado
O ambiente Scilab 4 Xmgrace
Operações Básicas: escalares, 5 Dia
vetores e matrizes 6 G3DATA

2 / 39
Computação Científica
O que é computação científica?
Scilab
Computação Científica e Linux
Utilizando Scilab na Engenharia Química
Computação em alto desempenho
Xmgrace
Algumas ferramentas (Open-Source)
Dia
Computação científica na Engenharia Química
G3DATA

O que é computação científica?


É o campo de estudo que se preocupa com o desenvolvimento de técnicas e
modelos para solução de problemas científicos utilizando computadores;

Exemplos
Estudo da dinâmica de um processo químico;
Controle de processos;
Dinâmica de fluidos;
Bioinformática;
Modelagem molecular;

3 / 39
Computação Científica
O que é computação científica?
Scilab
Computação Científica e Linux
Utilizando Scilab na Engenharia Química
Computação em alto desempenho
Xmgrace
Algumas ferramentas (Open-Source)
Dia
Computação científica na Engenharia Química
G3DATA

Por que?

Desenvolvimento
Série de bibliotecas numérica desenvolvidas para linux;
Compiladores disponíveis nos próprios repositórios;
Computação em paralelo;
Acesso rápido ao hardware;
Uma gama de softwares livres disponíveis;

4 / 39
Computação Científica
O que é computação científica?
Scilab
Computação Científica e Linux
Utilizando Scilab na Engenharia Química
Computação em alto desempenho
Xmgrace
Algumas ferramentas (Open-Source)
Dia
Computação científica na Engenharia Química
G3DATA

Computação em alto desempenho


Caracteriza-se pelo uso de supercomputadores ou cluster de computadores para
problemas de grande porte;

1
1
Foto do cluster que se encontra no NACAD.(http://www.nacad.ufrj.br/)
5 / 39
Computação Científica
O que é computação científica?
Scilab
Computação Científica e Linux
Utilizando Scilab na Engenharia Química
Computação em alto desempenho
Xmgrace
Algumas ferramentas (Open-Source)
Dia
Computação científica na Engenharia Química
G3DATA

Computação em alto desempenho


Caracteriza-se pelo uso de supercomputadores ou cluster de computadores para
problemas de grande porte;
Exemplo: O Supercomputador no NACAD/UFRJ (Parque Tecnológico);

1
1
Foto do cluster que se encontra no NACAD.(http://www.nacad.ufrj.br/)
5 / 39
Computação Científica
O que é computação científica?
Scilab
Computação Científica e Linux
Utilizando Scilab na Engenharia Química
Computação em alto desempenho
Xmgrace
Algumas ferramentas (Open-Source)
Dia
Computação científica na Engenharia Química
G3DATA

Computação em alto desempenho


Caracteriza-se pelo uso de supercomputadores ou cluster de computadores para
problemas de grande porte;
Exemplo: O Supercomputador no NACAD/UFRJ (Parque Tecnológico);
7200 processadores;

1
1
Foto do cluster que se encontra no NACAD.(http://www.nacad.ufrj.br/)
5 / 39
Computação Científica
O que é computação científica?
Scilab
Computação Científica e Linux
Utilizando Scilab na Engenharia Química
Computação em alto desempenho
Xmgrace
Algumas ferramentas (Open-Source)
Dia
Computação científica na Engenharia Química
G3DATA

Computação em alto desempenho


Caracteriza-se pelo uso de supercomputadores ou cluster de computadores para
problemas de grande porte;
Exemplo: O Supercomputador no NACAD/UFRJ (Parque Tecnológico);
7200 processadores;
64 TeraFlops (Intelr CoreT M i7 com 4 cores tem picos de 100 GFlops, ou seja,
106 );

1
1
Foto do cluster que se encontra no NACAD.(http://www.nacad.ufrj.br/)
5 / 39
Computação Científica
O que é computação científica?
Scilab
Computação Científica e Linux
Utilizando Scilab na Engenharia Química
Computação em alto desempenho
Xmgrace
Algumas ferramentas (Open-Source)
Dia
Computação científica na Engenharia Química
G3DATA

Computação em alto desempenho


Caracteriza-se pelo uso de supercomputadores ou cluster de computadores para
problemas de grande porte;
Exemplo: O Supercomputador no NACAD/UFRJ (Parque Tecnológico);
7200 processadores;
64 TeraFlops (Intelr CoreT M i7 com 4 cores tem picos de 100 GFlops, ou seja,
106 );

86o mais rápido do mundo e custou 14 milhões de Reais;

1
1
Foto do cluster que se encontra no NACAD.(http://www.nacad.ufrj.br/)
5 / 39
Computação Científica
O que é computação científica?
Scilab
Computação Científica e Linux
Utilizando Scilab na Engenharia Química
Computação em alto desempenho
Xmgrace
Algumas ferramentas (Open-Source)
Dia
Computação científica na Engenharia Química
G3DATA

Computação em alto desempenho


Caracteriza-se pelo uso de supercomputadores ou cluster de computadores para
problemas de grande porte;
Exemplo: O Supercomputador no NACAD/UFRJ (Parque Tecnológico);
7200 processadores;
64 TeraFlops (Intelr CoreT M i7 com 4 cores tem picos de 100 GFlops, ou seja,
106 );

86o mais rápido do mundo e custou 14 milhões de Reais;


Em sua maioria os cluster (conjunto de computadores que trabalham em conjunto
trocando informações entre si) são munidos de alguma distribuição linux;

1
1
Foto do cluster que se encontra no NACAD.(http://www.nacad.ufrj.br/)
5 / 39
Computação Científica
O que é computação científica?
Scilab
Computação Científica e Linux
Utilizando Scilab na Engenharia Química
Computação em alto desempenho
Xmgrace
Algumas ferramentas (Open-Source)
Dia
Computação científica na Engenharia Química
G3DATA

Algumas ferramentas úteis para uso científico

Desenvolvimento e simulação
OpenFoam ⇒ Software de simulação em CFD (Fluidodinâmica computacional);
Scilab ⇒ Software científica para computação numérica semelhante ao MATLAB;
GNU Octave ⇒ Software científica para computação numérica (aplicado a
cálculo numérico);
Maxima ⇒ Software de calculo computacional, geralmente, aplicado à cálculo
simbólico, semelhante ao MAPLE;
Lammps ⇒ Software de dinâmica molecular;

Pós-processamento
Paraview ⇒ Software de visualização de dados (campos 2D e 3D);
Qtiplot ⇒ Software de geração de gráfico semelhante ao Origin;
Dia ⇒ Software de visualização 3D de dinâmica molecular;
Xmgrace ⇒ Software de geração de gráfico;
GNUPLOT ⇒ Software de geração de gráficos (2D e 3D) a partir de linhas de
comando;

6 / 39
Computação Científica
O que é computação científica?
Scilab
Computação Científica e Linux
Utilizando Scilab na Engenharia Química
Computação em alto desempenho
Xmgrace
Algumas ferramentas (Open-Source)
Dia
Computação científica na Engenharia Química
G3DATA

Computação científica na Engenharia Química

Dimensionar equipamento e processos químicos;


Auxiliar em tomadas de decisão como: Otimização;
Obteção propriedades físico-químicas;
Aquisição de dados;
Controle de processos químicos;
Simuladores dinâmicos de Processos (EMSO);
Segurança;

7 / 39
Computação Científica
Scilab O ambiente Scilab
Utilizando Scilab na Engenharia Química Operações Básicas: escalares, vetores e matrizes
Xmgrace Gráficos no Scilab
Dia Programação
G3DATA

Scilab

Suas principais características


Gratuito e de códido livre;
Fácil aprendizado;
ótimo gerador de gráficos 2D, 3D e animações;
Diversas funções pré-definidas, como as de operações matriciais;
Facilidade de implementação do seu próprio programa;
Fácil Linkagem com C, C++ e FORTRAN;
Toolbox com algoritmos específicos como de Redes Neurais;
Capacidade de ser executado de forma paralela;

Bibliotecas bem estabelecidas


Funções de Álgebra Linear: LAPACK, LINPACK e BLAS ;
Funções para solução de equacões diferenciais: ODEPACK;
Funções de Otimização: MINPACK.

8 / 39
Computação Científica
Scilab O ambiente Scilab
Utilizando Scilab na Engenharia Química Operações Básicas: escalares, vetores e matrizes
Xmgrace Gráficos no Scilab
Dia Programação
G3DATA

O ambiente Scilab

9 / 39
Computação Científica
Scilab O ambiente Scilab
Utilizando Scilab na Engenharia Química Operações Básicas: escalares, vetores e matrizes
Xmgrace Gráficos no Scilab
Dia Programação
G3DATA

O ambiente Scilab

Menu
File ⇒ gerenciamento de arquivos (abre, salva e etc) ;
Edit ⇒ copiar, colar e etc;
Control ⇒ controle de ações do Scilab;
Preference ⇒ preferências na visualização da interface (cores, linguagem, etc);
Applications ⇒ executa alguns aplicativos do Scilab;

? (help) ⇒ FERRAMENTA MAIS PODEROSA .

10 / 39
Computação Científica
Scilab O ambiente Scilab
Utilizando Scilab na Engenharia Química Operações Básicas: escalares, vetores e matrizes
Xmgrace Gráficos no Scilab
Dia Programação
G3DATA

O ambiente Scilab

Descobrir que diretório o Scilab está


apontando;

Direcionar o Scilab para o diretório


de trabalho desejado;

11 / 39
Computação Científica
Scilab O ambiente Scilab
Utilizando Scilab na Engenharia Química Operações Básicas: escalares, vetores e matrizes
Xmgrace Gráficos no Scilab
Dia Programação
G3DATA

Escalares

De forma geral as variáveis no Scilab são declaradas da seguinte forma:

Existem algumas variávels pré-definidas, algumas dessas variáveis são descritas


abaixo:

12 / 39
Computação Científica
Scilab O ambiente Scilab
Utilizando Scilab na Engenharia Química Operações Básicas: escalares, vetores e matrizes
Xmgrace Gráficos no Scilab
Dia Programação
G3DATA

Escalares

Operações com escalares e funções usuais


4 operações básicas ( +, - , * e /);
Funções elementares: sum, prod, sqrt, sin, cos, tan, asin, log, exp .... ;
Polinômios são criados com o comando: poly();
Comando para determinar raiz de polinômio: roots();
Avaliar o polinômio em um ponto: horner().

13 / 39
Computação Científica
Scilab O ambiente Scilab
Utilizando Scilab na Engenharia Química Operações Básicas: escalares, vetores e matrizes
Xmgrace Gráficos no Scilab
Dia Programação
G3DATA

Polinômios

14 / 39
Computação Científica
Scilab O ambiente Scilab
Utilizando Scilab na Engenharia Química Operações Básicas: escalares, vetores e matrizes
Xmgrace Gráficos no Scilab
Dia Programação
G3DATA

Vetores

Vírgula ou espaço separam as linhas e ponto e vírgula separa as colunas;

15 / 39
Computação Científica
Scilab O ambiente Scilab
Utilizando Scilab na Engenharia Química Operações Básicas: escalares, vetores e matrizes
Xmgrace Gráficos no Scilab
Dia Programação
G3DATA

Vetores
No Scilab os operadores são sobrecarreagados, portanto os operados definidos
para escalares também são aplicados para aos vetores e às matrizes;

16 / 39
Computação Científica
Scilab O ambiente Scilab
Utilizando Scilab na Engenharia Química Operações Básicas: escalares, vetores e matrizes
Xmgrace Gráficos no Scilab
Dia Programação
G3DATA

Vetores

Podemos criar vetores com a seguinte definição:

17 / 39
Computação Científica
Scilab O ambiente Scilab
Utilizando Scilab na Engenharia Química Operações Básicas: escalares, vetores e matrizes
Xmgrace Gráficos no Scilab
Dia Programação
G3DATA

Matrizes

Vírgula ou espaço separam as linhas e ponto e vírgula separa as colunas;

18 / 39
Computação Científica
Scilab O ambiente Scilab
Utilizando Scilab na Engenharia Química Operações Básicas: escalares, vetores e matrizes
Xmgrace Gráficos no Scilab
Dia Programação
G3DATA

Matrizes

Matrizes podem ser criadas a partir de outras matrizes;

Acesso aos elementos de uma matriz;

Acesso a uma coluna inteira de uma matriz;

Acesso a uma linha inteira de uma matriz.


19 / 39
Computação Científica
Scilab O ambiente Scilab
Utilizando Scilab na Engenharia Química Operações Básicas: escalares, vetores e matrizes
Xmgrace Gráficos no Scilab
Dia Programação
G3DATA

Matrizes

Tabela de operações com matrizes;

20 / 39
Computação Científica
Scilab O ambiente Scilab
Utilizando Scilab na Engenharia Química Operações Básicas: escalares, vetores e matrizes
Xmgrace Gráficos no Scilab
Dia Programação
G3DATA

Gráficos no Scilab 2D

Os gráficos de duas dimensões podem ser gerados utilizando o comando plot2D();

Argumentos plot2D()
x é um vetor ou matriz da variável independente;
y é um vetor ou matriz da variável dependente;
opts indica opções do gráfico como: style (1,2,3 ...);

Argumentos xtitle()
título é o título do gráfico;
nomex é o nome do eixo x;
nomey é o nome do eixo y;

21 / 39
Computação Científica
Scilab O ambiente Scilab
Utilizando Scilab na Engenharia Química Operações Básicas: escalares, vetores e matrizes
Xmgrace Gráficos no Scilab
Dia Programação
G3DATA

Gráficos no Scilab 2D

Argumentos legends()
nomes é o vetor com a legenda de cada curva traçada;
styles é vetor com o estilo de cada curva e a cor (1, 2 ...);
opt indica a posição onde a legenda será colocada (ur,ul...);

Exemplo:

y = e0.5x (1)

y = e0.5x cos(4x) (2)

Comandos:

22 / 39
Computação Científica
Scilab O ambiente Scilab
Utilizando Scilab na Engenharia Química Operações Básicas: escalares, vetores e matrizes
Xmgrace Gráficos no Scilab
Dia Programação
G3DATA

Gráficos no Scilab 2D
Output

Figura: Resultado do exercício


23 / 39
Computação Científica
Scilab O ambiente Scilab
Utilizando Scilab na Engenharia Química Operações Básicas: escalares, vetores e matrizes
Xmgrace Gráficos no Scilab
Dia Programação
G3DATA

Gráficos no Scilab 3D

Plot3D() permite construir gráficos do tipo z = f (x, y);

Exemplo:

y = sin(x)con(y) (3)

24 / 39
Computação Científica
Scilab O ambiente Scilab
Utilizando Scilab na Engenharia Química Operações Básicas: escalares, vetores e matrizes
Xmgrace Gráficos no Scilab
Dia Programação
G3DATA

Definindo Script

Script .sce
O usuário pode criar scripts para executar uma certa tarefa de forma automática;
Scripts do scilab são sequência de comandos que o usuário digitaria em uma
sessão interativa no prompt do Scilab;
Todas as variáveis desse script passam a fazer parte do prompt do Scilab;
Não existem entradas e saidas, pois são como arquivos “executáveis”.

Exemplo: Obter uma das raizes do polinômio abaixo pelo método de Newton e
comparar com a solução obtida pela função roots().

f (x) = x2 − 1 (4)

Assim o método de Newton pode ser escrito como:


f (xk ) x2
k
−1
xk+1 = xk − f 0 (xk )
⇒ xk+1 = xk − 2xk

25 / 39
Computação Científica
Scilab O ambiente Scilab
Utilizando Scilab na Engenharia Química Operações Básicas: escalares, vetores e matrizes
Xmgrace Gráficos no Scilab
Dia Programação
G3DATA

Definindo Script

Figura: Resultado do exercício

26 / 39
Computação Científica
Scilab O ambiente Scilab
Utilizando Scilab na Engenharia Química Operações Básicas: escalares, vetores e matrizes
Xmgrace Gráficos no Scilab
Dia Programação
G3DATA

Definindo funções

Função .sci
O usuário pode criar funções e chamá-las a qualquer momento no scilab;
Neste caso existem variáveis locais ( acessíveis apenas no arquivo .sci) e globais (
acessíveis em todo scilab);
Existem entradas e saidas, portanto essas funções são definidas da seguinte forma:

//Programa exemplo para entender como funcionam as sci


function [y1, y2] = exemplo(x1, x2)
// Entrada: x1, x2
// Saida: y1, y2
y1 = x1 + x2
y2 = x1 * x2
endfunction

27 / 39
Computação Científica
Scilab O ambiente Scilab
Utilizando Scilab na Engenharia Química Operações Básicas: escalares, vetores e matrizes
Xmgrace Gráficos no Scilab
Dia Programação
G3DATA

Definindo funções

Como inserir uma função ao ambiente Scilab


O comando deff() define funções de forma direta;
O comando getf() insere uma função predefinida ao ambiente Scilab.

28 / 39
Computação Científica
Scilab Otimização: ajuste de modelos e dados experimentais
Utilizando Scilab na Engenharia Química Toolbox e ATOM
Xmgrace Dinâmica de um bioreator
Dia Equação cúbica de estado
G3DATA

Otimização: ajuste de modelos e dados experimentais

Técnicas de otimização são uma das mais importantes em tomada de decisão;


Consiste em determinar a melhor solução (máximo ou mínimo) de um problema;

Aplicações
Pesquisa operacional;
Projeto de processos;
Controle de processos;
Análise de dados

29 / 39
Computação Científica
Scilab Otimização: ajuste de modelos e dados experimentais
Utilizando Scilab na Engenharia Química Toolbox e ATOM
Xmgrace Dinâmica de um bioreator
Dia Equação cúbica de estado
G3DATA

Otimização: ajuste de modelos e dados experimentais

Análise de dados;

ej = Yj − y(xj )n = 0 . . . N (5)

N
X
f = e2j (6)
0

Primeira etapa gerar experimentos;

function [Y,X]=gera()
X = [0:0.1:10]; Y1 = 20+30*X+50*X^2;
E = 1000*(rand(1,length(X))-0.5);Y = Y1 + E;
plot2d(X,Y,-4);
endfunction

30 / 39
Computação Científica
Scilab Otimização: ajuste de modelos e dados experimentais
Utilizando Scilab na Engenharia Química Toolbox e ATOM
Xmgrace Dinâmica de um bioreator
Dia Equação cúbica de estado
G3DATA

Otimização: ajuste de modelos e dados experimentais

Ajuste de dados;

function y=FF(x,p),y=p(1)*(x-p(2))+p(3)*x.*x,endfunction
//fitdata
function e=G(p,z)
y=z(1),x=z(2);
e=y-FF(x,p);
endfunction
//gera numeros aleatÃ3 rios
[Y,X]=gera();
Z=[Y;X];
//chute para parametros
p0=[3;5;10]

[p,err]=datafit(G,Z,p0);

scf(0);clf()
plot2d(X,Y,-1) // the noisy data
xtitle(’Gráfico de ajuste’,’Variável independete’,’Variável dependente’)
plot2d(X,FF(X,p),2) //the solution

31 / 39
Computação Científica
Scilab Otimização: ajuste de modelos e dados experimentais
Utilizando Scilab na Engenharia Química Toolbox e ATOM
Xmgrace Dinâmica de um bioreator
Dia Equação cúbica de estado
G3DATA

Otimização: ajuste de modelos e dados experimentais

Figura: Resultado do Ajuste

32 / 39
Computação Científica
Scilab Otimização: ajuste de modelos e dados experimentais
Utilizando Scilab na Engenharia Química Toolbox e ATOM
Xmgrace Dinâmica de um bioreator
Dia Equação cúbica de estado
G3DATA

Ferramentas interessantes no Scilab

Algumas ferramentas de simulação podem ser encontradas no Scilab e são distribuidas


gratuitamente:

Ferramentas mais comuns


Xcos - modulo semelhante ao simulink (software para controle de processos)
Matlab to Scilab converter - faz a conversão direta do códico Matlab para o
scilab;
Modulos de otimização(como de redes neuronais artificiais) e paralelização;
Pluggins com pacotes de integração como a DASSL e DASSLC.
e outros que não sei claro!!

33 / 39
Computação Científica
Scilab Otimização: ajuste de modelos e dados experimentais
Utilizando Scilab na Engenharia Química Toolbox e ATOM
Xmgrace Dinâmica de um bioreator
Dia Equação cúbica de estado
G3DATA

Dinâmica de um bioreator

34 / 39
Computação Científica
Scilab Otimização: ajuste de modelos e dados experimentais
Utilizando Scilab na Engenharia Química Toolbox e ATOM
Xmgrace Dinâmica de um bioreator
Dia Equação cúbica de estado
G3DATA

Equação cúbica de estado

35 / 39
Computação Científica
Scilab
Utilizando Scilab na Engenharia Química
Xmgrace
Dia
G3DATA

Xmgrace

36 / 39
Computação Científica
Scilab
Utilizando Scilab na Engenharia Química
Xmgrace
Dia
G3DATA

Dia

37 / 39
Computação Científica
Scilab
Utilizando Scilab na Engenharia Química
Xmgrace
Dia
G3DATA

G3DATA

38 / 39
Computação Científica
Scilab
Utilizando Scilab na Engenharia Química
Xmgrace
Dia
G3DATA

39 / 39