Вы находитесь на странице: 1из 19

Rpida introduo ao Scilab

Andr Rodrigues Muniz UERGS Caxias do Sul/Bento Gonalves ndice 1. Apresentao ................................................................................................................ 1 2. Interface grfica do Scilab............................................................................................ 2 3. Uso de variveis ........................................................................................................... 3 3. Uso de funes ............................................................................................................. 4 4. Tipos de dados usados no Scilab .................................................................................. 4 4.1. Polinmios ............................................................................................................. 4 4.2. Vetores................................................................................................................... 5 4.3. Matrizes ................................................................................................................. 6 4. Criao de grficos ....................................................................................................... 9 4. Programao ............................................................................................................... 11 4.1. Definio de funes ........................................................................................... 11 4.2. Loops ................................................................................................................... 13 4.3. Condicionais ........................................................................................................ 15 4.4. Comentrios gerais .............................................................................................. 17

1. Apresentao
Scilab um software voltado para a resoluo de problemas numricos: lgebra linear; Soluo de sistemas de equaes algbricas; Soluo de sistemas de equaes diferenciais ordinrias; Soluo de sistemas de equaes algbrico-diferenciais; Integrao numrica; Ajuste de curvas; Otimizao; Criao de grficos;

Algumas caractersticas: Contempla diversas funes matemticas elementares (Ex: logartimica, trigonomtricas, funes especiais); Linguagem simples e de fcil aprendizado; Diversas funes para manipulao de matrizes; Permite a construo de grficos para visualizao; Uso de diversos toolboxes. Atualmente mais voltadas para a rea de controle de processos. 1

Rpida introduo ao Scilab Andr R. Muniz UERGS

Modos de interao usurio-Scilab: a) Entrada de comandos via prompt. Temos ento uma folha de clculo acoplada a uma poderosa calculadora; b) Uso de um arquivo texto para execuo de uma srie de comandos ambiente de programao; Veremos como trabalhar nas duas formas, visto que os comandos e funes so as mesmas para os dois modos.

2. Interface grfica do Scilab


Na figura 1 mostrada a interface do Scilab, com alguns comandos digitados.

A seta --> representa o prompt do Scilab, que o local onde entra-se com os comandos. O comando digitado executado aps teclado <enter>. De modo geral, para cada comando, o resultado mostrado logo abaixo, na forma ans = . Caso no se queira que o Scilab retorne na interface o resultado, coloca-se ponto e vrgula (;) ao final da entrada do comando. Pode-se entrar com vrios comandos em uma mesma linha tambm. Na parte superior observa-se um menu tpico de softwares Windows com 7 opes: File: gerenciamento de arquivos (abre, salva, etc).

Rpida introduo ao Scilab Andr R. Muniz UERGS

Edit: copiar, colar, etc. Preferences: preferncias na visualizao da interface (cores, linguagem, etc). Control: controle das aes do scilab (continuar, parar, terminar). Editor: abre o editor de funes do Scilab. Applications: executa alguns aplicativos do Scilab. ?: ajuda. Devemos sempre escolher um diretrio para trabalhar, de onde sero carregadas funes, salvos os arquivos, etc. O diretrio de trabalho dado pela varivel pwd:
-->pwd ans = C:\temp

Para mudarmos o diretrio de trabalho, usamos o comando chdir, como ilustrado no exemplo abaixo.
-->chdir('C:\Projetos\Scilab') ans = 0. -->pwd ans = C:\Projetos\Scilab

3. Uso de variveis
Uma varivel no Scilab pode ser definida da seguinte forma:
--> x = val;

onde x o nome da varivel e val o seu valor. Veja alguns exemplos na figura 1. O valor pode ser dado numericamente ou como resultado de alguma operao. Estas variveis podem ser escalares ou matrizes. Veja um exemplo de definio de uma matriz na figura 1. Veremos definies e manipulaes de matrizes mais adiante. Existem algumas variveis que so pr-definidas no Scilab, que podem ser usadas livremente mas no podem ser alteradas. Elas so geralmente precedidas de %. Algumas delas so:
-->%i %i = i -->%pi %pi = 3.1415927 -->%e %e = 2.7182818 // raiz quadrada de -1

Rpida introduo ao Scilab Andr R. Muniz UERGS

-->%inf %inf = Inf -->%nan %nan = Nan

// infinito

// not a number

O comando usado para visualizao das variveis existentes, sejam elas protegidas ou inicializadas pelo Scilab, ou definidas pelo usurio, o who. O comando whos d uma lista e uma descrio de cada uma das variveis.

3. Uso de funes
Funes podem ser definidas pelo usurio ou pr-definidas no Scilab, sendo estas ltimas chamadas de primitivas. Funes definidas pelo usurio sero tratadas mais adiante. Alguns exemplos de funes primitivas so mostrados abaixo. Funes elementares: sum, prod, sqrt, sin, cos, tan, asin, atanh, log, exp, .... Funes de lgebra linear: det, inv, rank, lu, .... Funes de programao: if, for, end, while, select/case, ... E muitas outras, que podem ser encontradas no help. Obs: algumas observaes para iniciantes em softwares matemticos. - a funo seno dada por sin( ); - a funo tangente dada por tan( ); - a funo logaritmo natural dada por log( ), e o logaritmo decimal dado por log10().

4. Tipos de dados usados no Scilab


Em relao aos tipos de dados usados no Scilab, podemos fazer uma diviso geral: Escalares: neste caso temos as constantes, variveis booleanas, polinmios, strings. Matrizes: formadas a partir de um arranjo de escalares. Constantes j foram tratadas anteriormente. Vejamos alguns outros casos na seqncia. 4.1. Polinmios Polinmios so criados pelo comando poly. Um polinmio pode ser definido a partir de suas razes:

Rpida introduo ao Scilab Andr R. Muniz UERGS

-->p1 = poly([-1,2],'x') p1 = 2 - 2 - x + x

Ou pode ser definido atravs de seus coeficientes:


--> p2 = poly([2,-3,1],'x','coeff') p2 = 2 2 - 3x + x

Os polinmios podem ser somados, subtrados, etc, como feito para constantes.
-->p1+p2 ans = 2 - 4x + 2x -->p1*p2 ans = 2 3 4 - 4 + 4x + 3x - 4x + x -->p1/p2 ans = 1 + x ----- 1 + x

O comando roots retorna as razes de um polinmio.


-->roots(p1) ans = ! - 1. ! ! 2. ! -->roots(p1*p2) ans = ! 1. ! ! - 1. ! ! 2. ! ! 2. !

4.2. Vetores Cria-se um vetor colocando-se os elementos entre colchetes. Para criar vetores linha, separam-se os elementos por espao ou vrgula. Para vetores coluna, separam-se os elementos por ponto e vrgula. Vetores de mesma dimenso podem ser somados ou subtrados.
-->a=0,b=5 a = b 0. = 5. -->v1 = [a 1 2 3] v1 =

Rpida introduo ao Scilab Andr R. Muniz UERGS

0.

1.

2.

3. !

-->v2 = [b;4;3;2] v2 = ! ! ! ! 5. 4. 3. 2. ! ! ! ! // transposto

-->v3 = v1' v3 = ! ! ! ! 0. 1. 2. 3. ! ! ! !

-->v2+v3 ans = ! ! ! ! 5. 5. 5. 5. ! ! ! !

-->v1*v2 ans = 16.

Podemos criar vetores usando uma definio do tipo: vet = val_ini:incr:val_fin; vet o vetor a ser definido; val_ini o valor do 1 elemento do vetor; val_fin o valor do ltimo elemento do vetor; incr o incremento para definio dos elementos subseqentes.
-->v4 = 0:1:6 v4 = ! 0. 1.

2.

3.

4.

5.

6. !

-->v5 = 100:-10:30 v5 = ! 100. 90. 80. -->v6 = 0:10:37 v6 = ! 0. 10.

70.

60.

50.

40.

30. !

20.

30. !

4.3. Matrizes Para a definio de matrizes, usa-se espao para separar elementos de uma linha e ponto e vrgula para separar linhas. Veja os exemplos:
-->m1 = [1 2 3;4 5 6;7 8 9] m1 = ! ! ! 1. 4. 7. 2. 5. 8. 3. ! 6. ! 9. !

-->m2 = [-2 5 0;4 1 3]

Rpida introduo ao Scilab Andr R. Muniz UERGS

m2

= 5. 1. 0. ! 3. !

! - 2. ! 4. -->m1*m2' ans = ! ! ! 8. 17. 26.

15. ! 39. ! 63. !

Matrizes nulas, com elementos iguais a 1 e matrizes identidade so criadas usando os comandos:
-->m3 = zeros(3,2) m3 = ! ! ! 0. 0. 0. 0. ! 0. ! 0. !

-->m4 = ones(2,2) m4 = ! ! 1. 1. 1. ! 1. !

-->m5 = eye(3,3) m5 = ! ! ! 1. 0. 0. 0. 1. 0. 0. ! 0. ! 1. !

Matrizes podem ser criadas a partir de outras matrizes:


-->m6=[m4 m2 m4] m6 = ! ! 1. 1. 1. 1. - 2. 4. 5. 1. 0. 3. 1. 1. 1. ! 1. !

-->m7 = [m1;m2] m7 = ! 1. ! 4. ! 7. ! - 2. ! 4. 2. 5. 8. 5. 1. 3. 6. 9. 0. 3. ! ! ! ! !

Podemos aplicar diversas operaes sobre as matrizes, vejamos alguns exemplos: Obs: quando inclumos ponto (.), significa operao elemento a elemento.
-->m1+3*m5 ans = ! ! ! 4. 4. 7. 2. 8. 8. 3. ! 6. ! 12. !

Rpida introduo ao Scilab Andr R. Muniz UERGS

-->m1*m5 ans = ! ! ! 1. 4. 7. 2. 5. 8. 3. ! 6. ! 9. !

-->m1.*m5 ans = ! ! ! 1. 0. 0. 0. 5. 0. 0. ! 0. ! 9. !

-->m2*m2 !--error 10 inconsistent multiplication -->m1^2 ans = ! ! ! 30. 66. 102. 36. 81. 126. 42. ! 96. ! 150. !

-->m1.^2 ans = ! ! ! 1. 16. 49. 4. 25. 64. 9. ! 36. ! 81. !

Elementos de matrizes podem ser acessados de diferentes formas:


-->m1 m1 = ! ! ! 1. 4. 7. 2. 5. 8. 3. ! 6. ! 9. !

-->m1(1,1) ans = 1. -->m1(1,2) ans = 2. -->m1(2,1) ans = 4. -->m1(3,3) ans = 9.

Para acessar uma linha ou coluna inteira, utiliza-se dois pontos (:) :
-->m1(:,2) ans = ! 2. ! ! 5. ! ! 8. ! -->m1(3,:) ans = ! 7. 8.

9. !

Rpida introduo ao Scilab Andr R. Muniz UERGS

Para acessar mais de uma linha ou coluna inteira, utiliza-se o formato de seqncia, ou seja, coluna ou linha inicial e coluna ou linha final, separado por dois pontos (:) :
-->m1(3,1:2) ans = ! 7. 8. ! -->m1(:,2:3) ans = ! 2. 3. ! ! 5. 6. ! ! 8. 9. !

Os elementos de uma matriz podem tambm ser modificados usando estas representaes citadas acima.
-->m1(2,2) = 1000 m1 = ! ! ! 1. 4. 7. 2. 1000. 8. 3. ! 6. ! 9. !

-->m1(3,:) = [10 20 30] m1 = ! ! ! 1. 4. 10. 2. 1000. 20. 3. ! 6. ! 30. !

4. Criao de grficos
Grficos em duas dimenses podem ser obtidos usando o comando plot. Sua sintaxe : --> plot(x,y,xlab,ylab,title) Onde x um vetor da varivel independente, y o vetor da varivel dependente, xlab o nome do eixo-x, ylab o nome do eixo-y e title o ttulo do grfico. Veja o exemplo:
-->x=0:0.1:10; -->y=cos(2*x); -->plot(x,y,'eixo-x','eixo-y','Titulo do grafico')

Rpida introduo ao Scilab Andr R. Muniz UERGS

Para a criao de grficos com melhores recursos, utiliza-se a funo plot2d, cuja sintaxe : --> plot2d(x,y,opts = op); x um vetor ou matriz da varivel independente; y um vetor ou matriz da varivel dependente; opts indica opes de edio do grfico. Alguns exemplos de opes so os seguintes: style: estilo da formatao da curva, dado por um nmero inteiro. Ex: 1 = preto, 2 = azul, 3 = verde, 4 = cyan, 5= vermelho, 6 = rosa, 7 = amarelo, 8 = branco, 9 = azul marinho,... logflag: seleciona a escala em cada eixo (linear ou logartmica), tem-se as opes nn (linear em x e y), nl (linear em x e logaritmica em y), ln (logaritmica em x e linear em y), ll (logaritmica em x e y). Existem outras opes, que podem ser consultadas no help. Em grficos que tenham mais de uma curva, pode-se acrescentar uma legenda, usando o comando legends: legends(nomes, style, opt=ops); nomes o vetor com a legenda de cada curva traada. style vetor com o estilo de cada curva opt indica a posio onde a legenda ser colocada, tendo as seguintes opes: ur (superior direita), ul (superior esquerda), ll (inferior direita), e lr (inferior esquerda). Se for deixado em branco o usurio deve clicar com o mouse na posio onde deseja. Nome para os eixos e ttulo do grfico so dados pelo comando xtitle: xtitle(titulo, nome_x, nome_y); onde: titulo o ttulo do grfico; nome_x o nome do eixo x; nome_y o nome do eixo y. Para apagar os dados de um grfico existente, use o comando clf(); Veja alguns exemplos:
-->x=[0:0.1:10]'; y=exp(-0.5*x);z=exp(-0.5*x).*cos(4*x); -->plot2d(x,[y,z],style=[1,2]) -->legends(['exponencial','senoidal'],[1,2],opt='ur') -->xtitle('Grfico exemplo','eixo - x','eixo-y')

Rpida introduo ao Scilab Andr R. Muniz UERGS

10

-->clf() -->plot2d(x,[y,z],style=[1,2],logflag='nl') -->xtitle('Grfico exemplo (nl)','eixo linear','eixo-y em escala logaritmica')

em

escala

Existem ainda outros comandos para criao de outros tipos de grficos (campos vetoriais, superfcies de nvel, etc.). Pode-se criar tambm grficos em 3 dimenses. Grficos podem ser exportados em diferentes formatos. Para isso v ao menu File/Export da janela do grfico e selecione a opo desejada. No menu edit pode-se editar o grfico via interface grfica. Para criar uma nova janela para grfico, utiliza-se o comando scf().

4. Programao
O usurio pode criar suas prprias funes. Uma funo em Scilab no nada mais do que uma seqncia de comandos e funes escritas em um arquivo texto. A linguagem do Scilab apresenta muitas ferramentas comuns linguagens de programao convencionais, como loops, condicionais, etc. Diferentemente das linguagens de programao, no necessrio inicializar as variveis. As funes podem ser escritas em um arquivo texto usando o editor do Scilab, acessado a partir do menu superior na interface principal Editor. 4.1. Definio de funes A forma geral de uma funo dada abaixo: function out = fun (in) comando1; comando 2; ... comando n onde: in so os argumentos de entrada, que pode ser mais de um. out so os argumentos retornados pela funo fun o nome da funo, usada para cham-la.

Rpida introduo ao Scilab Andr R. Muniz UERGS

11

Veja o seguinte exemplo, no qual criamos a funo quadrado, o qual toma um nmero e retorna o seu quadrado.
function res = quadrado(x) res = x*x;

As funes devem ser escritas em um arquivo com terminao *.sci. Depois de salvo, deve-se em primeiro lugar, carregar as funes do arquivo. Para isso, utiliza-se o comando getf(). Aps carregar uma funo, ela pode ser usada livremente no software.
-->getf('quadrado.sci') -->quadrado(3) ans = 9. -->sol = quadrado(10) sol = 100.

Veja outro exemplo:


function grafico(a,b)

clf(); plot2d(a,b); xtitle('Exemplo de funcao','__X__','__Y__');

Para usar a funo:


-->getf('grafico.sci') -->x=[0:0.1:10]; y=exp(-0.5*x); -->grafico(x,y)

Mais um exemplo, onde uma funo pode chamar a outra. A funo calcular o comprimento da hipotenusa de um tringulo retngulo a partir dos comprimentos dos catetos. Para tanto, usaremos a funo quadrado, feita anteriormente, para o clculo do quadrado dos catetos.
function hip = pitagoras(a,b) cat1 = quadrado(a); cat2 = quadrado(b); hip = sqrt(cat1+cat2);

Chamando a funo:
-->getf('quadrado.sci') -->getf('pitagoras.sci') -->sol = pitagoras(3,4) sol = 5.

Rpida introduo ao Scilab Andr R. Muniz UERGS

12

Um exemplo onde a funo pode retornar mais de um argumento dado abaixo. Ela toma as coordenadas de dois pontos no plano xy, (xo,yo) e (xf,yf), e retorna as coordenadas do ponto mdio.
function [xm,ym] = pontomedio(xo,yo,xf,yf)

xm = (xo+xf)/2; ym = (yo+yf)/2; -->getf('pontomedio.sci') -->[a,b] = pontomedio(0,0,0,2) b = 1. a = 0. -->[xm,ym] = pontomedio(0,0,0,2) ym = 1. xm = 0. -->[xm,ym] = pontomedio(0,0,2,2) ym = 1. xm = 1. -->[xm,ym] = pontomedio(0,0,2,1) ym = 0.5 xm = 1.

4.2. Loops Muitas vezes precisamos repetir o mesmo clculo ou seqncia de clculos para diferentes valores. Para tanto, podemos usar o comando for ou o comando while. a) comando for A forma geral :
for var = seq comando_1; ... Comando n;

end

onde var a varivel de iterao e seq a seqncia de variao da varivel var. Exemplo: Fazer um programa que calcule o fatorial de um nmero inteiro.
function res = fatorial(x) res = 1; for k = 1:1:x res = res*k; end

Rpida introduo ao Scilab Andr R. Muniz UERGS

13

Usando a funo:
-->getf('fatorial.sci') -->fatorial(2) ans = 2. -->fatorial(3) ans = 6. -->fatorial(5) ans = 120. -->fatorial(20) ans = 2.433D+18

b) comando while A forma geral :


while cond comando_1; ... Comando n; end

Enquanto a condio dada por cond for satisfeita, os comandos entre while e end so executados. Deve-se ter cuidado para no entrar em loops infinitos. Exemplo: fazer o mesmo programa mostrado acima (clculo do fatorial), usando o while.
function res = 1; k = 1; while k <= x res = res*k; k = k+1; end res = fatorial2(x)

Testando a funo:
-->getf('fatorial2.sci') -->fatorial2(2) ans = 2. -->fatorial2(3) ans = 6. -->fatorial2(5) ans = 120. -->fatorial2(20) ans = 2.433D+18

Rpida introduo ao Scilab Andr R. Muniz UERGS

14

4.3. Condicionais Em relao a condicionais, temos duas opes: o if-then-else e o select-case. a) if-then-else
if cond then // trecho a comando_1_a; comando_2_a; else // trecho b comando_1_b; comando_1_b; end

se a condio dada por cond for satisfeita, ser executado o trecho a; caso contrrio, ser executado o trecho b. Uma seqncia pode ser aninhada dentro de outra. Em relao a condio, usamos os seguintes operadores: == igual ~= diferente > maior < menor >= maior ou igual <= menor ou igual Exemplo: Fazer um programa que retorne o mdulo de um nmero real.
function res = mod(a)

if(a > 0) res = a; else res = -a; end

Testando a funo:
-->getf('mod.sci') -->mod(0) ans = 0. -->mod(5) ans = 5. -->mod(-5) ans = 5.

Rpida introduo ao Scilab Andr R. Muniz UERGS

15

b) select-case O comando select compara o valor de uma varivel com diferentes valores pr-definidos, dados por case, e realiza uma srie de operaes de acordo com este. Se a varivel no se enquadra em nenhum caso, pode no ser feito operao nenhuma ou fazer uma operao padro, definida por else ao final da seqncia de cases. A sintaxe a seguinte:
select var case num_1 comando_1a; comando_1b; .... case num_2 comando_2a; comando_2b; .... case .... // quantos mais quiser else comando_na; comando_nb; .... end

Vejamos um exemplo. A funo oper recebe um valor num e um cdigo de opo op. Se op for igual a 1, a funo deve retornar o quadrado de num; Se op for igual a 2, a funo deve retornar o mdulo de num; Se op for igual a 3, a funo deve retornar a raiz quadrada de num; se op for diferente destes casos, a funo deve retornar o prprio valor de num;
function res = oper(num,op) select op case 1 res = quadrado(num); case 2 res = mod(num); case 3 res = sqrt(num); else res = num; end

Testando a funo:
-->getf('quadrado.sci') -->getf('modulo.sci') -->oper(2,1) ans = 4. -->oper(2,2) ans = 2. -->oper(2,3) ans = 1.4142136 -->oper(2,4) ans =

Rpida introduo ao Scilab Andr R. Muniz UERGS

16

2. -->oper(-1,1) ans = 1. -->oper(-1,2) ans = 1. -->oper(-1,3) ans = i

4.4. Comentrios gerais As funes de Scilab podem usar funes pr-definidas ou definidas pelo usurio, permitindo as mais diversas aplicaes possveis. possvel ainda integrar programas em linguagem C ou Fortran com programas em Scilab. Vejamos um exemplo final agora para revisar o contedo visto neste captulo. Problema: Baseado no modelo para um biorreator, usado para a fermentao de glicose em etanol, descrito em H. S. Fogler, Elements of Chemical Reaction Engineering, 3rd edition, 1999, pg 393, crie um programa que tome as concentraes iniciais de clulas, substrato (glicose) e produto (etanol) e o tempo de fermentao, faa uma simulao e retorne a concentrao destas espcies em funo do tempo de reao, na forma de vetores e na forma de um grfico. Modelo matemtico (Fogler, 1999): As equaes do modelo so as seguintes: Balano de massa clulas:

Cc C s K d Cc K +C s s Balano de massa substrato:


Cc C s mC c K +C s s Balano de massa produto: dC p Cp = Y pc max 1 C dt pc Cc C s K +C s s
n

Cp dC c = max 1 C dt pc

Cp dC s 1 = max 1 C dt Ycs pc

Sendo as variveis do problema: Cc: concentrao de clulas; Cs: concentrao de substrato; Cp: concentrao de produto.

Rpida introduo ao Scilab Andr R. Muniz UERGS

17

O valor dos parmetros cinticos so dados abaixo: Cpc = 93 g/L; Ycs = 0.08 g/g Yps = 0.45 g/g -1 max = 0.33 h n = 0.52 m = 0.03 g/(g.h) -1 Kd = 0.01 h Criao do cdigo:

Ypc = 5.6 g/g Ks = 1.7 g/L

Temos um sistema de EDOs a ser resolvido. Para tanto usaremos a funo ode do Scilab (ver maiores detalhes no help). Basicamente ela recebe uma funo contendo as equaes a serem resolvidas, as condies iniciais e o tempo de integrao e retorna a soluo do sistema. Assim, criaremos duas funes: uma contendo as equaes do modelo, ou seja, toma os valores das variveis em um tempo de integrao t e retorna o valor das derivadas biorreat.sci; outra que faz a inicializao do problema, resoluo das equaes e gerao de grficos simbio.sci. Funo contendo as equaes do modelo:
function ylin = biorreat(t,y,params) // conversao dos parametros Ycs = params(1); Yps = params(2); Ypc = params(3); Ks = params(4); Kd = params(5); m = params(6); n = params(7); Cpc = params(8); mu_max = params(9); // Balano de massa - celulas ylin(1) = mu_max*(1-y(3)/Cpc)^n*y(1)*y(2)/(Ks+y(2))-Kd*y(1); // Balano de massa - substrato ylin(2) = -1/Ycs*mu_max*(1-y(3)/Cpc)^n*y(1)*y(2)/(Ks+y(2))-m*y(1); // Balano de massa - produto ylin(3) = Ypc*mu_max*(1-y(3)/Cpc)^n*y(1)*y(2)/(Ks+y(2));

Funo para a inicializao, resoluo do sistema de EDOs e disposio de resultados:


function [t,Cc,Cs,Cp] = simbio(to,tf,Cco,Cso,Cpo) getf('biorreat.sci'); dt = 0.1; // // // // assume-se as seguintes variveis dependentes: y(1) a concentrao de celulas; y(2) a concentrao de substrato; y(3) a concentrao de produto.

// parametros cineticos Ycs = 0.08; Yps = 0.45; Ypc = 5.6;

Rpida introduo ao Scilab Andr R. Muniz UERGS

18

Ks = 1.7; Kd = 0.01; m = 0.03; n = 0.52; Cpc = 93; mu_max = 0.33; // passagem params(1) = params(2) = params(3) = params(4) = params(5) = params(6) = params(7) = params(8) = params(9) = dos parametros Ycs; Yps; Ypc; Ks; Kd; m; n; Cpc; mu_max;

// condicao inicial yo = [Cco Cso Cpo]; // simulao t = to:dt:tf; y = ode(yo,to,t,list(biorreat,params)); Cc = y(:,1:3:length(y)); Cs = y(:,2:3:length(y)); Cp = y(:,3:3:length(y)); // graficos scf(); plot2d(t',[Cp',Cc',Cs'],style=[2,3,5]); xtitle('Concentracao das especies','t(h)','C(g/L)'); legends(['produto','celulas','substrato'],style=[2,3,5],opt='ur');

Fazer alguns testes aps a implementao dos cdigos. Ex: tempo inicial: 0 Tempo final: 12h Cc incial: 1 g/L Cs inicial:250 g/L Cp inicial: 0 g/L

Rpida introduo ao Scilab Andr R. Muniz UERGS

19

Вам также может понравиться