Professional Documents
Culture Documents
Apostila Scilab
Introduo:
Scilab um ambiente voltado para o desenvolvimento de software para resoluo de
problemas numricos. Foi criado em 1990 por um grupo de pesquisadores do INRIA Institut
de Recherche en Informatique et en Automatique e do ENPC - cole Nationale des Ponts et
Chausses. Desde 1994, quando passou a ser disponvel na Internet, um programa gratuito e
distribudo com o cdigo fonte. Alm da distribuio com o cdigo fonte, existem, tambm,
distribuies pr-compiladas do Scilab para vrios sistemas operacionais.
Pode-se observar o prompt inicial, representado pelo smbolo -->, que faz a marcao da linha
de comando e o cursor, ao lado do prompt. Nesse espao, podem ser realizados clculos e
compilados programas sem serem salvas alteraes. atravs dele tambm que pode ser
acessado o help do programa, atravs do comando help digitado no prompt. Ser aberto uma
janela depois de o comando ser executado (apertando se a tecla ENTER), contento uma lista
de todas as funes presentes.
Alm de armazenar variveis, possvel criar uma memria de clculo, salvando os comandos
digitados em um arquivo, atravs do comando diary: diary(nome_do_arquivo);
diary(0) // Fecha o comando.
As variveis so sensveis a letras maisculas e minsculas, devem ter palavra nica de at 24
caracteres, no podendo ser iniciadas com nmeros e criadas no momento da atribuio de
valor.
Exemplo:
--> A = -3.5;
--> B = 4e-6;
Declaraes de vetores:
--> u = [1 2 3];
//vetor linh a
--> u = [1;2;3];
//vetor colun a
--> u = 1:15;
//vetor linha u = [1 2 3 ... 15]
--> u = ones(1:5); // u = [1 1 1 1 1]
--> u = zeros(1:4); // u = [0 0 0 0]
--> u = 5:-0.2:4;
//vetor linha u = [5 4.8 4.6 ... 4]
matriz pode conter somente dados numricos ou somente strings, mas no os dois
simultaneamente.
Figura 5: Demonstrao de matrizes. Fonte: Introduo ao SCILAB Prof. Wilian Soares Lacerda UFLA
Figura 5: Exemplos de matrizes. Fonte: Introduo ao SCILAB Prof. Wilian Soares Lacerda UFLA
Figura 6: Declarao de Matrizes. Fonte: Introduo ao SCILAB Prof. Wilian Soares Lacerda UFLA
M = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12]
M(1, :)
Toda linha 1 da matriz M;
M(2, :)
Toda linha 2;
M( : , 1) Toda coluna 1;
M( : , 2) Toda coluna 2;
M( : , 2:4) Todas colunas 2, 3 e 4.
Matrizes especiais:
Matrizes com elementos unitrios:
--> A = ones(M,N)
Matrizes com elementos nulos:
--> B = zeros(M,N)
Matriz identidade:
--> A = eye(N,N)
Operaes com Matrizes:
Acesso linha i: A(i,:)
Acesso coluna j: A(:,j)
Insere linha no final: A = [A;linha]
Insere coluna no final: A = [A coluna]
Acesso ultima linha: A($,:)
Acesso ltima coluna: A(:,$)
Acesso a um conjunto de linhas: A(:,[i:j])
Acesso a um conjunto de colunas: A([i:j],:)
Matriz com nmeros aleatrios: A = rand(N,M)
Soma: C = A + B
Multiplicao: C = A*B
Multiplicao por um escalar: B = i*A
Matriz complexa: C = A + B*%i (A e B reais)
Matriz transposta: C = A
Determinante: d = det(A)
Diagonal: d = diag(A).
Matrizes: operadores especiais
Operador \: diviso esquerda.
Seja Ax=b um sistema de equaes lineares escrito na forma matricial, sendo A a matriz de
coeficientes, x o vetor das incgnitas e b o vetor dos termos independentes:
Figura 7: Operadores especiais. Fonte: Introduo ao SCILAB Prof. Wilian Soares Lacerda UFLA
A resoluo deste sistema x=A-1b, ou seja, basta obter a matriz inversa de A e multiplic-la
pelo vetor b. No Scilab isto pode ser feito desta forma:
--> A=[1 3;3 4];b=[5;2];
1x + 3y = 5
3x + 4y = 2
--> x=inv(A)*b
Esta soluo tambm pode ser obtida com o operador diviso esquerda cujo smbolo \:
--> x=A\b
Operador . (ponto)
Este operador usado com outros operadores para realizar operaes elemento a elemento.
Exemplo:
A = [1 2 3; 3 4 6; 7 8 9];
B = [2 4 6;8 10 12; 14 16 18];
-->A.*B
ans =
2. 8. 18.
24. 40. 72.
98. 128. 162.
-->A./B
ans =
0.5 0.5 0.5
0.375 0.4 0.5
0.5 0.5 0.5
Matrizes esparsas:
Uma matriz dita esparsa quando possui uma grande quantidade de elementos iguais
zero.
A matriz esparsa implementada atravs de um conjunto de listas ligadas que apontam para
elementos no zero. De forma que os elementos que possuem valor zero no so
armazenados.
Em Scilab:
--> A = [0 0 1; 2 0 0; 0 3 0];
--> sparse(A)
ans =
( 3, 3) sparse matrix
( 1, 3) 1.
( 2, 1) 2.
( 3, 2) 3.
Exemplo:
--> A = [0 0 1; 2 0 0; 0 3 0] ;
--> A= sparse(A);
--> B = [0 1 0; 2 0 2; 3 0 0];
--> B = sparse(B);
--> C = A*B;
Para obter a matriz C na forma completa:
--> C = full(C);
3 passo:
Ir abrir a seguinte pgina ( representada na figura abaixo), de acordo com seu sistema
operacional e a verso do mesmo clique nos cones indicados.
4 passo:
Clique no boto Executar
5 passo:
Selecione o idioma
6 passo:
Clique no boto Avanar
7 passo:
Marque a opo: Eu aceito os termos de contrato.
8 passo:
Escolha o local a ser salvo o programa e clique em Avanar.
9 passo:
Clique em Avanar
10 passo:
Clique no boto Avanar.
11 passo:
Clique no boto Avanar.
12 passo:
Clique no boto Instalar.
13 passo:
O programa ser instalado conforme a figura abaixo.
14 passo:
Clique em Concluir para concluir a instalao:
Pronto!
Referncias Bibliogrficas:
Apostila Danusio Gadelha Filho, Universidade Federal do Cear.
Introduo ao SCILAB Prof. Wilian Soares Lacerda UFLA, Maio 2011.
Introduo ao Scilab Verso 3.0 Prof. Paulo Srgio da Motta Pires.