SlideShare uma empresa Scribd logo
1 de 11
Baixar para ler offline
UNIVERSIDADE DO VALE DO ITAJAÍ – UNIVALI – CES VII
CURSO: ENGENHARIA DE COMPUTAÇÃO
DISCIPLINA: INTRODUÇÃO À ENGENHARIA DE COMPUTAÇÃO




                        SciLab
                         INSTRUÇÕES BÁSICAS




                   Prof. Raimundo C. Ghizoni Teive




                         Versão do Tutorial: 1.0.0
                             Outubro – 2003


                                                     1
Tabela de Conteúdos
Conceitos Básicos.................................................................................................................................3
Símbolos e Constantes..........................................................................................................................4
Vetores & Matrizes...............................................................................................................................5
String Array.......................................................................................................................................... 9
Gráficos.............................................................................................................................................. 10
Polinômios..........................................................................................................................................11




         SciLab é um pacote de software livre que provê um poderoso ambiente de computação
numérica para aplicações científicas e de engenharia. Sendo software livre, o usuário tem liberdade
de copiar, distribuir e instalar em qualquer computador de sua propriedade ou de terceiros, além de
ter total acesso ao código fonte, podendo modificá-lo e redistribui-lo alterado.
         O SciLab está disponível para download, podendo ser executado em diversas plataformas de
hardware e sistema operacional, no endereço http://scilabsoft.inria.fr/. Até a data de edição deste
documento, o SciLab estava na versão 2.7.2.

        Este tutorial foi produzido com OpenOffice (http://www.openoffice.org/) sendo executado
no Sistema Operacional GNU/Linux (http://www.gnu.org, http://www.linux.org/), ambos software
livre, buscando atingir a independência de sistemas proprietários para a realização das tarefas
acadêmicas, científicas e de engenharia.

       Será bem-vinda qualquer sugestão ou crítica que venha melhorar a qualidade deste tutorial.
Portanto, se você tem alguma, mande e-mail para teive@sj.univali.br ou probst@sj.univali.br.

           Atenciosamente,

           Prof. Raimundo C. Ghizoni Teive

                                                                                                            Edição: AFP - probst@sj.univali.br




                                                                                                                                                       2
SciLab – Conceitos Básicos
–   Operações na linha de comando
    A melhor maneira de começar a entender o SciLab é digitando instruções nas linhas de comando
    e observar os resultados.
                                      --> (sinal de prompt): indica que o sistema
-->                                   está pronto para receber comandos.
--> 5+5
    ans =
                                       Instrução de operações com valores numéricos
          10.
--> - 90 / (4*87)
    ans =                              ans (sinal de answer): resposta
          - .2586207
-->

      OBS.: Para o SciLab letras minúsculas e maiúsculas são diferentes.



–   Variáveis: atribuição de valores

--> a=2                                  Cria a variável a atribuindo o valor 2

    a =
                                             Exibe o resultado da operação
          2.
--> b=5;                               Cria a variável b atribuindo o valor 5 e
--> c=a*b                              inibe a exibição do resultado da operação
                                       utilizando o sinal ;
    c =
          10.                            Executa operação utilizando variáveis
-->




–   Variáveis: comandos who e whos()
    - who: exibe os nomes de todas as variáveis do workspace.
    - whos(): exibe os nomes, os tamanhos e os tipos de dados de todas as variáveis do workspace.




                                                                                                3
–   Comandos Utilitários
    - pwd ou getcwd(): exibe o diretório corrente
        (ainda pode-se usar o menu <File>, opção <Get current Directory ...>)
        --> pwd
          ans =
          /home/usuario

    - chdir <diretório> : muda o diretório corrente
        (ainda pode-se usar o menu <File>, opção <Change Directory ...>)
        --> chdir /tmp

    - ..ls ou ..dir : exibe os nomes dos arquivos do diretório corrente

    - unix “<comando>” ou ..<comando> : executa um comando do sistema operacional
        --> unix “rm arquivo.m”
        ou
        --> ..rm arquivo.m




SciLab – Símbolos e Constantes

    •   ans: resposta mais recente.

    •   %eps: precisão numérica corrente. Ex. 2.220E-16

    •   %pi: 3.1415927

    •   %i: parte imaginária de números complexos.

    •   %inf: infinito. Ex: 1/0.

    •   %nan: “not a number”




                                                                                    4
SciLab – Vetores & Matrizes
–   Sintaxe básica: escalares e vetores

--> a=10                                  Escalar é uma matrix 1 x 1
    a =
          10.
--> b=[1 2 3]                            Vetor linha é uma matrix 1 x n
    b =
!         1.    2.    3.    !
                                    Vetor colula é uma matrix n x 1
--> c= [ 5; 6; 7]
                                    - espaço ou , separam elementos na mesma linha
    c =                             - ; separa elementos da mesma coluna
!         5.    !
!         6.    !
!         7.    !
-->

                OBS.: Matrizes podem ser numéricas ou alfa-numéricas.


–   Sintaxe básica: matrizes
                                                              Matriz
--> x=[1 5 9; 3 7 2; 6 4 8]                   Indexação de matrizes: segue a sintaxe
    x =                                       matemática tradicional.
!         1.     5.    9.       !
                                                 x(1,3) indica elemento na primeira
!         3.     7.    2.       !                linha e terceira coluna.
!         6.     4.    8.       !
--> x(1,3)
    ans =                                     x(8) indica o oitavo elemento da matriz.
                                              A contagem é feita por coluna.
          9.
--> x(8)
    ans =
          2.
--> x(2:4)                                      x(2:4) indica intervalo do segundo ao
    ans =                                       quarto elemento da matriz.
!         3.    !
!         6.    !
!         5.    !


                                                                                         5
–   Matrizes Numéricas
    Qualquer tipo de número ou operação numérica pode ser elemento de uma matriz numérica.

--> a=[-2.8,sqrt(7),(5+4)/8,1; sin(0.4),exp(0.75),fix(4.5),100]
    a =
!     -2.8               2.6457513         1.125      1.       !
!         .3894183       2.117             4.         100.     !


                   Acrescenta o valor na matriz e preeche os outros índices com 0.

--> a(1,7)=555
    a =
!     -2.8               2.6457513         1.125      1.          0.    0.     555. !
!         .3894183       2.117             4.         100.        0.    0.     0.     !




–   Vetores “monotônicos”
    (:) cria vetores com elementos linearmente espaçados.

--> x=1:10
 x =                                                                       Vetor 1 a 10
!     1.    2.   3.    4.    5.     6.   7.     8.   9.     10.    !

                                                                           Cria vetor com:
--> x=0:0.5:2
                                                                           - primeiro elemento 0
 x =
                                                                           - último elemento 2
!     0.    .5   1.    1.5     2.    !                                     - incremento 0.5

--> y=1:-0.2:0
 y =                                                                       Incremento pode ser
                                                                           negativo
!     1.    .8   .6    .4    .2     0. !




                                                                                                   6
–   Operações Matriciais

              Matriz:                                 --> a=[1 2 3; 4 5 6; 7 8 9]
              +       (soma)                           a =
              -       (subtração)                     !    1.   2.      3.    !
              *       (multiplicação)
                                                      !    4.   5.      6.    !
              /       (divisão)
                     (divisão a esquerda)            !    7.   8.      9.    !
              ^       (potência)                      --> b1=a*a
              '       (transposta)                     b1 =
                                                      ! 30.    36.    42.              !
             Elemento a elemento:                     ! 66.    81.    96.              !
             .*    (multiplicação escalar)            ! 102. 126. 150.                 !
             ./    (divisão escalar)                  --> b2=a.*a
             .^    (potência escalar)                  b2 =
                                                      ! 1.    4.   9.     !
                                                      ! 16. 25. 36. !
                                                      ! 49. 64. 81. !


–   Exemplo: Operações Matriciais
    Operação de divisão a esquerda: Sistema Linear.

         -x1 + x2 + 2x3 = 2                      --> a=[-1 1 2; 3 -1 1; -1 3 4];
         3x1 – x2 + x3 = 6                       --> b=[2;6;4];
                                                 --> x=ab
         -x1 + 3x2 + 4x3 = 4
                                                  x =
                          x1 = 1                 ! 1.     !
                                                 ! -1.    !
                          x2 = -1                ! 2.     !
                          x3 = 2


–   Matriz Randômica: função rand()
    rand(): gera números randômicos uniformementes distribuídos entre [0, 1].

-->rand(3,3)
 ans =
! .2113249           .3303271          .8497452 !                 rand(n,n): gera matriz
! .7560439           .6653811          .6857310 !                 randômica n x n
! .0002211           .6283918          .8782165 !

-->rand(2,3)
 ans =                                                               rand(n,m,p,...):
! .5608486           .7263507          .5442573 !                    gera matriz n x m x p ...
! .6623569           .1985144          .2320748 !

     OBS.: rand(“seed”, num) altera a base para geração de números.

                                                                                                 7
–   Concatenação de Matrizes
    Utilizamos os símbolos [] , ; para concatenar matrizes.

-->a=[1 2 3 4 5];
-->b=[6 7 8 9 0];                                                    Concatenação por linha
-->c=[a, b]

    c   =
!       1.       2.      3.       4.       5.      6.        7.     8.      9.       0. !

-->d=[a;b]
                                                                     Concatenação por coluna
    d   =
!       1.       2.      3.       4.       5. !
!       6.       7.      8.       9.       0. !


–   Funções Matriciais Básicas I
    •   det(m): calcula determinante da matriz quadrada m.

    •   inv(m): gera matriz inversa da matriz quadrada m.

    •   zeros(n, m, p...): gera matriz de zeros n x m x p...
        --> zeros(3,4);

    •   ones(n, m, p...): gera matriz de uns n x m x p...
        --> ones(3,4);

    •   eye(n,m), eye(m,m): gera matriz identidade n x m ou m x m.
        --> eye(3,4);
        --> eye(3,3);

    •   diag(m): se m é uma matriz, retorna os elementos da diagonal principal
        --> diag(m);

    •   diag(v): gera matriz diagonal utilizando os elementos do vetor v.
        --> v=[1 2 3 4 5];
        --> diag(v)
          ans =
        !    1.     0.       0.       0.       0. !
        !    0.     2.       0.       0.       0. !
        !    0.     0.       3.       0.       0. !
        !    0.     0.       0.       4.       0. !
        !    0.     0.       0.       0.       5. !




                                                                                               8
–   Funções Matriciais Básicas II
    •   matrix(x,n,m): re-formata a matriz x com dimensões n x m.
        -->x=[1 2 3 4 5 6 7 8 9 0];
        -->matrix(x,2,5)
          ans =
        !    1.   3.       5.      7.       9. !
        !    2.   4.       6.      8.       0. !

    •   tril(m): extrai matriz triangular inferior.
        -->m=rand(3,3)
          m =
        !     .5738457           .4734382               .3586156 !
        !     .6160412           .0312314               .7726796 !
        !     .6048677           .0701504               .7317216 !

        -->tril(m)
          ans =
        !     .5738457           0.                    0.        !
        !     .6160412            .0312314             0.        !
        !     .6048677            .0701504              .7317216

    •   triu(m): extrai matriz triangular superior.
        -->triu(m)
          ans =
        !     .5738457           .4734382           .3586156 !
        !    0.                  .0312314           .7726796 !
        !    0.                0.                   .7317216 !



SciLab – String Array
–   Utilizamos o símbolo ' para criar string arrays.

-->str1='Oi !'
    str1     =
                                                          String arrays
    Oi !


-->str2='Tudo bem ?'
    str2     =
    Tudo bem ?


-->str3=str1 + ' ' + str2
    str3     =                                           Concatenação
    Oi ! Tudo bem ?




                                                                          9
SciLab – Gráficos
–   Gráficos 2D
    plot2d(xdata, ydata):
    - xdata: vetor contendo dados em X;
    - ydata: vetor contendo dados em Y;



    -->x=[-2*%pi:0.1:2*%pi]';
    -->y=sin(x);
    -->plot2d(x,y)




–   Exemplos

    Teste a função plot2d utilizando outras funções e composições de funções.

    •   cos(x): cosseno.

    •   exp(x): exponencial (ex).

    •   log(x): logaritmo natural (ln).

    •   sqrt(x): raiz quadrada.

    •   sin(x) .* exp(x)

    •   abs(sqrt(x))

    •   3*sin(x)-0.5*cos(5*x)

        -->x=[-2*%pi:0.1:2*%pi]';
        -->y=3*sin(x)-0.5*cos(5*x);
        -->k=sin(x) .* exp(x);
        -->plot2d(x,[y, k])                           Sintaxe para exibição de várias curvas


                                      OBSERVAÇÕES:
              1. xdata deve ser um vetor coluna, por isso aplica-se a transposta (');
        2. A função plot2d possui várias sintaxes diferentes. Consulte o Help do SciLab.




                                                                                               10
SciLab – Polinômios
–   Função roots: obtém raízes de polinômios.

-->s=poly(0,"s");
                                                Seta s como a variável do polinômio
-->p=2*s + 3
 p =                                            p(x) = 2x + 3
    3 + 2s
                                                 p(-1.5) = 0
-->roots(p)
 ans =
  - 1.5

-->p=6*s^5 - 15*s^4 + 3*x^3 + 2*s^2 + 3*x + 5
 p =
               2    3     4     5
    5 + 3s + 2s + 3s - 15s + 6s

-->roots(p)
  ans =
! - .0845548 +           .7107609i !
! - .0845548 -           .7107609i !            p(x) = 6x5 – 15x4 + 3x3 + 2x2 + 3x + 5
! - .6380605                       !            Este polinômio possui três raízes reais
!    1.2233204                     !            e duas raízes imaginárias.
!    2.0838496                     !




                                                                                          11

Mais conteúdo relacionado

Mais procurados

Minicurso de estatística experimental com o R - III SIC IFNMG
Minicurso de estatística experimental com o R  - III SIC IFNMGMinicurso de estatística experimental com o R  - III SIC IFNMG
Minicurso de estatística experimental com o R - III SIC IFNMGPetronio Candido
 
Estrutura de Dados - Alocação dinâmica de memória
Estrutura de Dados - Alocação dinâmica de memóriaEstrutura de Dados - Alocação dinâmica de memória
Estrutura de Dados - Alocação dinâmica de memóriaAdriano Teixeira de Souza
 
12 algoritmos e funcoes recursivas
12   algoritmos e funcoes recursivas12   algoritmos e funcoes recursivas
12 algoritmos e funcoes recursivasRicardo Bolanho
 
Turorial Básico de Matlab.
Turorial Básico de Matlab. Turorial Básico de Matlab.
Turorial Básico de Matlab. Lourran Freire
 
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)Manuel Menezes de Sequeira
 
Variaveis locais e globais
Variaveis locais e globaisVariaveis locais e globais
Variaveis locais e globais111111119
 
Algoritmos 01 - Semana 03 - Exercícios de Leitura e Atribuição
Algoritmos 01 - Semana 03  - Exercícios de Leitura e AtribuiçãoAlgoritmos 01 - Semana 03  - Exercícios de Leitura e Atribuição
Algoritmos 01 - Semana 03 - Exercícios de Leitura e AtribuiçãoEder Samaniego
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programaçãorodfernandes
 
Ponteiros e Alocação Dinâmica
Ponteiros e Alocação DinâmicaPonteiros e Alocação Dinâmica
Ponteiros e Alocação DinâmicaEduardo Oliveira
 
5 expressoes logicas - operadores - base binaria - operadores de bits
5   expressoes logicas - operadores - base binaria - operadores de bits5   expressoes logicas - operadores - base binaria - operadores de bits
5 expressoes logicas - operadores - base binaria - operadores de bitsRicardo Bolanho
 
Projeto winplot
Projeto   winplotProjeto   winplot
Projeto winplotEdna M
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-Mauro Pereira
 
Curso de Delphi - Lógica de Programação 3
Curso de Delphi - Lógica de Programação 3Curso de Delphi - Lógica de Programação 3
Curso de Delphi - Lógica de Programação 3José Araújo
 

Mais procurados (20)

Minicurso de estatística experimental com o R - III SIC IFNMG
Minicurso de estatística experimental com o R  - III SIC IFNMGMinicurso de estatística experimental com o R  - III SIC IFNMG
Minicurso de estatística experimental com o R - III SIC IFNMG
 
Estrutura de Dados - Alocação dinâmica de memória
Estrutura de Dados - Alocação dinâmica de memóriaEstrutura de Dados - Alocação dinâmica de memória
Estrutura de Dados - Alocação dinâmica de memória
 
Aula 5 algoritimos(continuacao)
Aula 5   algoritimos(continuacao)Aula 5   algoritimos(continuacao)
Aula 5 algoritimos(continuacao)
 
12 algoritmos e funcoes recursivas
12   algoritmos e funcoes recursivas12   algoritmos e funcoes recursivas
12 algoritmos e funcoes recursivas
 
Turorial Básico de Matlab.
Turorial Básico de Matlab. Turorial Básico de Matlab.
Turorial Básico de Matlab.
 
Linguagem C - Vetores
Linguagem C - VetoresLinguagem C - Vetores
Linguagem C - Vetores
 
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
 
Linguagem R
Linguagem RLinguagem R
Linguagem R
 
Variaveis locais e globais
Variaveis locais e globaisVariaveis locais e globais
Variaveis locais e globais
 
Algoritmos 01 - Semana 03 - Exercícios de Leitura e Atribuição
Algoritmos 01 - Semana 03  - Exercícios de Leitura e AtribuiçãoAlgoritmos 01 - Semana 03  - Exercícios de Leitura e Atribuição
Algoritmos 01 - Semana 03 - Exercícios de Leitura e Atribuição
 
Material de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de ProgramaçãoMaterial de Apoio de Algoritmo e Lógica de Programação
Material de Apoio de Algoritmo e Lógica de Programação
 
Ponteiros e Alocação Dinâmica
Ponteiros e Alocação DinâmicaPonteiros e Alocação Dinâmica
Ponteiros e Alocação Dinâmica
 
Aula 5 aed - matrizes
Aula 5   aed - matrizesAula 5   aed - matrizes
Aula 5 aed - matrizes
 
5 expressoes logicas - operadores - base binaria - operadores de bits
5   expressoes logicas - operadores - base binaria - operadores de bits5   expressoes logicas - operadores - base binaria - operadores de bits
5 expressoes logicas - operadores - base binaria - operadores de bits
 
INATEL - Matlab introdução
INATEL - Matlab introduçãoINATEL - Matlab introdução
INATEL - Matlab introdução
 
Tutorial R
Tutorial RTutorial R
Tutorial R
 
Projeto winplot
Projeto   winplotProjeto   winplot
Projeto winplot
 
Lista de exercicios algoritmos resolvida-
Lista de exercicios   algoritmos  resolvida-Lista de exercicios   algoritmos  resolvida-
Lista de exercicios algoritmos resolvida-
 
Intro funcoes(2)
Intro funcoes(2)Intro funcoes(2)
Intro funcoes(2)
 
Curso de Delphi - Lógica de Programação 3
Curso de Delphi - Lógica de Programação 3Curso de Delphi - Lógica de Programação 3
Curso de Delphi - Lógica de Programação 3
 

Destaque (20)

Manual Scilab
Manual ScilabManual Scilab
Manual Scilab
 
Scilab programacao
Scilab programacaoScilab programacao
Scilab programacao
 
scilab
scilabscilab
scilab
 
Fundamentos de programación en scilab
Fundamentos de programación en scilabFundamentos de programación en scilab
Fundamentos de programación en scilab
 
Ejercicios Scilab Completo
Ejercicios Scilab CompletoEjercicios Scilab Completo
Ejercicios Scilab Completo
 
Scilab
ScilabScilab
Scilab
 
Resolucion ejercicios scilab
Resolucion ejercicios scilabResolucion ejercicios scilab
Resolucion ejercicios scilab
 
Livro sci
Livro sciLivro sci
Livro sci
 
Scilab
Scilab Scilab
Scilab
 
Plot3 d en scilab
Plot3 d en scilabPlot3 d en scilab
Plot3 d en scilab
 
Scilab
ScilabScilab
Scilab
 
Scilab for very beginners
Scilab for very beginnersScilab for very beginners
Scilab for very beginners
 
COMPARATIVE STUDY OF MATLAB AND ITS OPEN SOURCE ALTERNATIVE SCILAB
COMPARATIVE STUDY OF MATLAB AND ITS OPEN SOURCE ALTERNATIVE SCILABCOMPARATIVE STUDY OF MATLAB AND ITS OPEN SOURCE ALTERNATIVE SCILAB
COMPARATIVE STUDY OF MATLAB AND ITS OPEN SOURCE ALTERNATIVE SCILAB
 
Scilab vs matlab
Scilab vs matlabScilab vs matlab
Scilab vs matlab
 
Presentación software para ingeniería
Presentación software para ingenieríaPresentación software para ingeniería
Presentación software para ingeniería
 
Compensador pid
Compensador pidCompensador pid
Compensador pid
 
Xcos scilab
Xcos scilabXcos scilab
Xcos scilab
 
Seminar on MATLAB
Seminar on MATLABSeminar on MATLAB
Seminar on MATLAB
 
Reglamento UNAD
Reglamento UNADReglamento UNAD
Reglamento UNAD
 
Experiments & Experiences with Scilab in Undergraduate Education
Experiments & Experiences with Scilab in Undergraduate Education Experiments & Experiences with Scilab in Undergraduate Education
Experiments & Experiences with Scilab in Undergraduate Education
 

Semelhante a SciLab -Tutorial

Curso de Matlab basico
Curso de Matlab basicoCurso de Matlab basico
Curso de Matlab basicoGabriel Costa
 
Scilab estatistica
Scilab estatisticaScilab estatistica
Scilab estatisticacassiusgo
 
Capitulo 1scilab
Capitulo 1scilabCapitulo 1scilab
Capitulo 1scilabwjunior
 
Matlab – curso básico (1)
Matlab – curso básico (1)Matlab – curso básico (1)
Matlab – curso básico (1)Felipe Meganha
 
Aula6 programação
Aula6 programaçãoAula6 programação
Aula6 programaçãoIFPB
 
Raciocínio Lógico Aplicado a Resolução de Problemas Matemáticos
Raciocínio Lógico Aplicado a Resolução de Problemas MatemáticosRaciocínio Lógico Aplicado a Resolução de Problemas Matemáticos
Raciocínio Lógico Aplicado a Resolução de Problemas MatemáticosAndré Constantino da Silva
 
Introdução ao Octave
Introdução ao OctaveIntrodução ao Octave
Introdução ao OctavePeslPinguim
 
Curso de Matlab avancado 1
Curso de Matlab avancado 1Curso de Matlab avancado 1
Curso de Matlab avancado 1Gabriel Costa
 
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonIEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonDiogo Gomes
 
O que mudou no Ruby 1.9
O que mudou no Ruby 1.9O que mudou no Ruby 1.9
O que mudou no Ruby 1.9Nando Vieira
 
Solução de equações não lineares weslley
Solução de equações não lineares weslleySolução de equações não lineares weslley
Solução de equações não lineares weslleyWeslley Assis
 
Tutorial Octave Matlab
Tutorial Octave MatlabTutorial Octave Matlab
Tutorial Octave Matlabblogmaxima
 
Introdução ao Matlab
Introdução ao MatlabIntrodução ao Matlab
Introdução ao Matlabedusfernandes
 
mod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaomod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaodiogoa21
 
Computação científica com numpy e scipy
Computação científica com numpy e scipyComputação científica com numpy e scipy
Computação científica com numpy e scipySilas Santiago
 

Semelhante a SciLab -Tutorial (20)

Curso de Matlab basico
Curso de Matlab basicoCurso de Matlab basico
Curso de Matlab basico
 
Scilab estatistica
Scilab estatisticaScilab estatistica
Scilab estatistica
 
Sbc scipy
Sbc scipySbc scipy
Sbc scipy
 
Sbc scipy
Sbc scipySbc scipy
Sbc scipy
 
Capitulo 1scilab
Capitulo 1scilabCapitulo 1scilab
Capitulo 1scilab
 
Aula 01
Aula 01Aula 01
Aula 01
 
Matlab – curso básico (1)
Matlab – curso básico (1)Matlab – curso básico (1)
Matlab – curso básico (1)
 
Aula6 programação
Aula6 programaçãoAula6 programação
Aula6 programação
 
Tutorial matlab
Tutorial matlabTutorial matlab
Tutorial matlab
 
Raciocínio Lógico Aplicado a Resolução de Problemas Matemáticos
Raciocínio Lógico Aplicado a Resolução de Problemas MatemáticosRaciocínio Lógico Aplicado a Resolução de Problemas Matemáticos
Raciocínio Lógico Aplicado a Resolução de Problemas Matemáticos
 
Introdução ao Octave
Introdução ao OctaveIntrodução ao Octave
Introdução ao Octave
 
Curso de Matlab avancado 1
Curso de Matlab avancado 1Curso de Matlab avancado 1
Curso de Matlab avancado 1
 
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop PythonIEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
IEEEweek 2017 @ DETI Univ. Aveiro - Workshop Python
 
O que mudou no Ruby 1.9
O que mudou no Ruby 1.9O que mudou no Ruby 1.9
O que mudou no Ruby 1.9
 
Matrizes em c#
Matrizes em c#Matrizes em c#
Matrizes em c#
 
Solução de equações não lineares weslley
Solução de equações não lineares weslleySolução de equações não lineares weslley
Solução de equações não lineares weslley
 
Tutorial Octave Matlab
Tutorial Octave MatlabTutorial Octave Matlab
Tutorial Octave Matlab
 
Introdução ao Matlab
Introdução ao MatlabIntrodução ao Matlab
Introdução ao Matlab
 
mod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacaomod4-estruturas-dadosestaticas-ordenacao
mod4-estruturas-dadosestaticas-ordenacao
 
Computação científica com numpy e scipy
Computação científica com numpy e scipyComputação científica com numpy e scipy
Computação científica com numpy e scipy
 

SciLab -Tutorial

  • 1. UNIVERSIDADE DO VALE DO ITAJAÍ – UNIVALI – CES VII CURSO: ENGENHARIA DE COMPUTAÇÃO DISCIPLINA: INTRODUÇÃO À ENGENHARIA DE COMPUTAÇÃO SciLab INSTRUÇÕES BÁSICAS Prof. Raimundo C. Ghizoni Teive Versão do Tutorial: 1.0.0 Outubro – 2003 1
  • 2. Tabela de Conteúdos Conceitos Básicos.................................................................................................................................3 Símbolos e Constantes..........................................................................................................................4 Vetores & Matrizes...............................................................................................................................5 String Array.......................................................................................................................................... 9 Gráficos.............................................................................................................................................. 10 Polinômios..........................................................................................................................................11 SciLab é um pacote de software livre que provê um poderoso ambiente de computação numérica para aplicações científicas e de engenharia. Sendo software livre, o usuário tem liberdade de copiar, distribuir e instalar em qualquer computador de sua propriedade ou de terceiros, além de ter total acesso ao código fonte, podendo modificá-lo e redistribui-lo alterado. O SciLab está disponível para download, podendo ser executado em diversas plataformas de hardware e sistema operacional, no endereço http://scilabsoft.inria.fr/. Até a data de edição deste documento, o SciLab estava na versão 2.7.2. Este tutorial foi produzido com OpenOffice (http://www.openoffice.org/) sendo executado no Sistema Operacional GNU/Linux (http://www.gnu.org, http://www.linux.org/), ambos software livre, buscando atingir a independência de sistemas proprietários para a realização das tarefas acadêmicas, científicas e de engenharia. Será bem-vinda qualquer sugestão ou crítica que venha melhorar a qualidade deste tutorial. Portanto, se você tem alguma, mande e-mail para teive@sj.univali.br ou probst@sj.univali.br. Atenciosamente, Prof. Raimundo C. Ghizoni Teive Edição: AFP - probst@sj.univali.br 2
  • 3. SciLab – Conceitos Básicos – Operações na linha de comando A melhor maneira de começar a entender o SciLab é digitando instruções nas linhas de comando e observar os resultados. --> (sinal de prompt): indica que o sistema --> está pronto para receber comandos. --> 5+5 ans = Instrução de operações com valores numéricos 10. --> - 90 / (4*87) ans = ans (sinal de answer): resposta - .2586207 --> OBS.: Para o SciLab letras minúsculas e maiúsculas são diferentes. – Variáveis: atribuição de valores --> a=2 Cria a variável a atribuindo o valor 2 a = Exibe o resultado da operação 2. --> b=5; Cria a variável b atribuindo o valor 5 e --> c=a*b inibe a exibição do resultado da operação utilizando o sinal ; c = 10. Executa operação utilizando variáveis --> – Variáveis: comandos who e whos() - who: exibe os nomes de todas as variáveis do workspace. - whos(): exibe os nomes, os tamanhos e os tipos de dados de todas as variáveis do workspace. 3
  • 4. Comandos Utilitários - pwd ou getcwd(): exibe o diretório corrente (ainda pode-se usar o menu <File>, opção <Get current Directory ...>) --> pwd ans = /home/usuario - chdir <diretório> : muda o diretório corrente (ainda pode-se usar o menu <File>, opção <Change Directory ...>) --> chdir /tmp - ..ls ou ..dir : exibe os nomes dos arquivos do diretório corrente - unix “<comando>” ou ..<comando> : executa um comando do sistema operacional --> unix “rm arquivo.m” ou --> ..rm arquivo.m SciLab – Símbolos e Constantes • ans: resposta mais recente. • %eps: precisão numérica corrente. Ex. 2.220E-16 • %pi: 3.1415927 • %i: parte imaginária de números complexos. • %inf: infinito. Ex: 1/0. • %nan: “not a number” 4
  • 5. SciLab – Vetores & Matrizes – Sintaxe básica: escalares e vetores --> a=10 Escalar é uma matrix 1 x 1 a = 10. --> b=[1 2 3] Vetor linha é uma matrix 1 x n b = ! 1. 2. 3. ! Vetor colula é uma matrix n x 1 --> c= [ 5; 6; 7] - espaço ou , separam elementos na mesma linha c = - ; separa elementos da mesma coluna ! 5. ! ! 6. ! ! 7. ! --> OBS.: Matrizes podem ser numéricas ou alfa-numéricas. – Sintaxe básica: matrizes Matriz --> x=[1 5 9; 3 7 2; 6 4 8] Indexação de matrizes: segue a sintaxe x = matemática tradicional. ! 1. 5. 9. ! x(1,3) indica elemento na primeira ! 3. 7. 2. ! linha e terceira coluna. ! 6. 4. 8. ! --> x(1,3) ans = x(8) indica o oitavo elemento da matriz. A contagem é feita por coluna. 9. --> x(8) ans = 2. --> x(2:4) x(2:4) indica intervalo do segundo ao ans = quarto elemento da matriz. ! 3. ! ! 6. ! ! 5. ! 5
  • 6. Matrizes Numéricas Qualquer tipo de número ou operação numérica pode ser elemento de uma matriz numérica. --> a=[-2.8,sqrt(7),(5+4)/8,1; sin(0.4),exp(0.75),fix(4.5),100] a = ! -2.8 2.6457513 1.125 1. ! ! .3894183 2.117 4. 100. ! Acrescenta o valor na matriz e preeche os outros índices com 0. --> a(1,7)=555 a = ! -2.8 2.6457513 1.125 1. 0. 0. 555. ! ! .3894183 2.117 4. 100. 0. 0. 0. ! – Vetores “monotônicos” (:) cria vetores com elementos linearmente espaçados. --> x=1:10 x = Vetor 1 a 10 ! 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ! Cria vetor com: --> x=0:0.5:2 - primeiro elemento 0 x = - último elemento 2 ! 0. .5 1. 1.5 2. ! - incremento 0.5 --> y=1:-0.2:0 y = Incremento pode ser negativo ! 1. .8 .6 .4 .2 0. ! 6
  • 7. Operações Matriciais Matriz: --> a=[1 2 3; 4 5 6; 7 8 9] + (soma) a = - (subtração) ! 1. 2. 3. ! * (multiplicação) ! 4. 5. 6. ! / (divisão) (divisão a esquerda) ! 7. 8. 9. ! ^ (potência) --> b1=a*a ' (transposta) b1 = ! 30. 36. 42. ! Elemento a elemento: ! 66. 81. 96. ! .* (multiplicação escalar) ! 102. 126. 150. ! ./ (divisão escalar) --> b2=a.*a .^ (potência escalar) b2 = ! 1. 4. 9. ! ! 16. 25. 36. ! ! 49. 64. 81. ! – Exemplo: Operações Matriciais Operação de divisão a esquerda: Sistema Linear. -x1 + x2 + 2x3 = 2 --> a=[-1 1 2; 3 -1 1; -1 3 4]; 3x1 – x2 + x3 = 6 --> b=[2;6;4]; --> x=ab -x1 + 3x2 + 4x3 = 4 x = x1 = 1 ! 1. ! ! -1. ! x2 = -1 ! 2. ! x3 = 2 – Matriz Randômica: função rand() rand(): gera números randômicos uniformementes distribuídos entre [0, 1]. -->rand(3,3) ans = ! .2113249 .3303271 .8497452 ! rand(n,n): gera matriz ! .7560439 .6653811 .6857310 ! randômica n x n ! .0002211 .6283918 .8782165 ! -->rand(2,3) ans = rand(n,m,p,...): ! .5608486 .7263507 .5442573 ! gera matriz n x m x p ... ! .6623569 .1985144 .2320748 ! OBS.: rand(“seed”, num) altera a base para geração de números. 7
  • 8. Concatenação de Matrizes Utilizamos os símbolos [] , ; para concatenar matrizes. -->a=[1 2 3 4 5]; -->b=[6 7 8 9 0]; Concatenação por linha -->c=[a, b] c = ! 1. 2. 3. 4. 5. 6. 7. 8. 9. 0. ! -->d=[a;b] Concatenação por coluna d = ! 1. 2. 3. 4. 5. ! ! 6. 7. 8. 9. 0. ! – Funções Matriciais Básicas I • det(m): calcula determinante da matriz quadrada m. • inv(m): gera matriz inversa da matriz quadrada m. • zeros(n, m, p...): gera matriz de zeros n x m x p... --> zeros(3,4); • ones(n, m, p...): gera matriz de uns n x m x p... --> ones(3,4); • eye(n,m), eye(m,m): gera matriz identidade n x m ou m x m. --> eye(3,4); --> eye(3,3); • diag(m): se m é uma matriz, retorna os elementos da diagonal principal --> diag(m); • diag(v): gera matriz diagonal utilizando os elementos do vetor v. --> v=[1 2 3 4 5]; --> diag(v) ans = ! 1. 0. 0. 0. 0. ! ! 0. 2. 0. 0. 0. ! ! 0. 0. 3. 0. 0. ! ! 0. 0. 0. 4. 0. ! ! 0. 0. 0. 0. 5. ! 8
  • 9. Funções Matriciais Básicas II • matrix(x,n,m): re-formata a matriz x com dimensões n x m. -->x=[1 2 3 4 5 6 7 8 9 0]; -->matrix(x,2,5) ans = ! 1. 3. 5. 7. 9. ! ! 2. 4. 6. 8. 0. ! • tril(m): extrai matriz triangular inferior. -->m=rand(3,3) m = ! .5738457 .4734382 .3586156 ! ! .6160412 .0312314 .7726796 ! ! .6048677 .0701504 .7317216 ! -->tril(m) ans = ! .5738457 0. 0. ! ! .6160412 .0312314 0. ! ! .6048677 .0701504 .7317216 • triu(m): extrai matriz triangular superior. -->triu(m) ans = ! .5738457 .4734382 .3586156 ! ! 0. .0312314 .7726796 ! ! 0. 0. .7317216 ! SciLab – String Array – Utilizamos o símbolo ' para criar string arrays. -->str1='Oi !' str1 = String arrays Oi ! -->str2='Tudo bem ?' str2 = Tudo bem ? -->str3=str1 + ' ' + str2 str3 = Concatenação Oi ! Tudo bem ? 9
  • 10. SciLab – Gráficos – Gráficos 2D plot2d(xdata, ydata): - xdata: vetor contendo dados em X; - ydata: vetor contendo dados em Y; -->x=[-2*%pi:0.1:2*%pi]'; -->y=sin(x); -->plot2d(x,y) – Exemplos Teste a função plot2d utilizando outras funções e composições de funções. • cos(x): cosseno. • exp(x): exponencial (ex). • log(x): logaritmo natural (ln). • sqrt(x): raiz quadrada. • sin(x) .* exp(x) • abs(sqrt(x)) • 3*sin(x)-0.5*cos(5*x) -->x=[-2*%pi:0.1:2*%pi]'; -->y=3*sin(x)-0.5*cos(5*x); -->k=sin(x) .* exp(x); -->plot2d(x,[y, k]) Sintaxe para exibição de várias curvas OBSERVAÇÕES: 1. xdata deve ser um vetor coluna, por isso aplica-se a transposta ('); 2. A função plot2d possui várias sintaxes diferentes. Consulte o Help do SciLab. 10
  • 11. SciLab – Polinômios – Função roots: obtém raízes de polinômios. -->s=poly(0,"s"); Seta s como a variável do polinômio -->p=2*s + 3 p = p(x) = 2x + 3 3 + 2s p(-1.5) = 0 -->roots(p) ans = - 1.5 -->p=6*s^5 - 15*s^4 + 3*x^3 + 2*s^2 + 3*x + 5 p = 2 3 4 5 5 + 3s + 2s + 3s - 15s + 6s -->roots(p) ans = ! - .0845548 + .7107609i ! ! - .0845548 - .7107609i ! p(x) = 6x5 – 15x4 + 3x3 + 2x2 + 3x + 5 ! - .6380605 ! Este polinômio possui três raízes reais ! 1.2233204 ! e duas raízes imaginárias. ! 2.0838496 ! 11