27
Prof. Botter – USJT - 2015 Página 1 Capítulo 01 Introdução ao Scilab 1 Introdução A matemática é a linguagem comum de grande parte das ciências e da Engenharia. Matrizes, equações diferenciais, conjuntos de dados, gráficos e diagrama são os blocos básicos tanto da matemática aplicada quanto do Scilab. É justamente a base matemática que torna o Scilab acessível. O Scilab é tanto um ambiente quanto uma linguagem de programação. Um de seus aspectos é o fato de que a linguagem Scilab permite-lhe construir suas próprias ferramentas reutilizáveis. Você pode facilmente criar suas próprias funções e programas (conhecidos como arquivos sce ) em linguagem Scilab. A seguir faremos uma breve introdução ao Scilab. As principais janelas acessíveis a partir do ambiente de trabalho do Scilab são: A Janela do Console A Janela de Histórico de Comandos A Janela do Navegador de Variáveis A Janela do Console A principal janela do ambiente de trabalho do Scilab é a Janela do Console. Ela nos permite digitar comandos interativamente com o Scilab através do prompt ( ---> ), os quais serão executados ao pressionarmos a tecla <ENTER>. A Janela de Histórico de Comandos A Janela de Histórico de Comandos exibe uma lista dos comandos que você executou na Janela do Console até serem deletados.

Introdução ao Scilab

Embed Size (px)

DESCRIPTION

Introdução à funções e gráficos no Scilab

Citation preview

  • Prof. Botter USJT - 2015 Pgina 1

    Captulo 01 Introduo ao Scilab

    1 Introduo

    A matemtica a linguagem comum de grande parte das cincias e da

    Engenharia. Matrizes, equaes diferenciais, conjuntos de dados, grficos e diagrama so

    os blocos bsicos tanto da matemtica aplicada quanto do Scilab. justamente a base

    matemtica que torna o Scilab acessvel.

    O Scilab tanto um ambiente quanto uma linguagem de programao. Um

    de seus aspectos o fato de que a linguagem Scilab permite-lhe construir suas prprias

    ferramentas reutilizveis. Voc pode facilmente criar suas prprias funes e programas

    (conhecidos como arquivos sce ) em linguagem Scilab.

    A seguir faremos uma breve introduo ao Scilab.

    As principais janelas acessveis a partir do ambiente de trabalho do Scilab

    so:

    A Janela do Console

    A Janela de Histrico de Comandos

    A Janela do Navegador de Variveis

    A Janela do Console

    A principal janela do ambiente de trabalho do Scilab a Janela do Console.

    Ela nos permite digitar comandos interativamente com o Scilab atravs do prompt ( ---> ),

    os quais sero executados ao pressionarmos a tecla .

    A Janela de Histrico de Comandos

    A Janela de Histrico de Comandos exibe uma lista dos comandos que voc

    executou na Janela do Console at serem deletados.

  • Prof. Botter USJT - 2015 Pgina 2

    A Janela do Navegador de Variveis

    A Janela do Navegador de Variveis exibe uma lista das variveis criadas,

    bem como suas caractersticas (Nome, Dimenses, Tipo e Visibilidade).

  • Prof. Botter USJT - 2015 Pgina 3

    1.1 Conceitos Bsicos

    Ajuda

    O comando help

    O comando help a maneira mais simples de se conseguir ajuda, bastando

    para isto, digitar o comando help seguido do tpico que voc necessita de informaes.

    Exemplo:

    O Ponto e Vrgula

    A ausncia ou a presena do ponto e vrgula ao final de um comando do

    Scilab permite ou no visualizar o resultado de um clculo.

    Exemplos:

    -->a=0

    ans =

    0.

    -->b=3;

  • Prof. Botter USJT - 2015 Pgina 4

    1.2 Operaes matemticas

    Da mesma forma que sua calculadora, o Scilab capaz de executar

    matemtica elementar, conforme indica a tabela a seguir.

    Operao Smbolo Exemplo

    Adio + 5 + 3

    Subtrao _ 23 12

    Multiplicao * 3.14 * 0.85

    Diviso matricial / 12/4 = 12*(4-1

    )

    Diviso esquerda \ (12-1

    )*4

    Potenciao ^ 2^2

    A ordem na qual essas operaes so executadas em uma dada expresso

    dada pelas regras de precedncia que est mencionada a seguir:

    As expresses so calculadas da esquerda para a direita com a operao de

    potenciao tendo a maior ordem de precedncia, seguida da multiplicao e

    diviso (ambas tendo a mesma ordem de precedncia), por sua vez seguidas da

    adio e da subtrao (ambas tendo a mesma ordem de precedncia).

    Para alterarmos esta ordem devemos usar o artifcio de parnteses. Neste

    caso, o clculo inicia-se nos parnteses mais internos e procede de dentro para fora. Para

    ilustrar esses conceitos, acompanhe os exemplos abaixo:

    Exemplos:

    -->3^2-5-6/3*2

    ans =

    0.

    -->3^2-5-6/(3*2)

    ans =

    3.

  • Prof. Botter USJT - 2015 Pgina 5

    1.3 Variveis

    Nomeando variveis

    Para variveis o Scilab tambm tem regras.

    Regra Exemplos

    So sensveis a maisculas e minsculas fruta, Fruta e FRUTA so diferentes

    Podem conter at 24 caracteres os caracteres alm dovigsimo quarto so

    ignorados

    Excluindo variveis

    Para excluir uma varivel devemos utilizar o comando clear seguido do

    nome da varivel que se deseja excluir, ou simplesmente clear para excluir todas as

    variveis que esto sendo usadas pelo SCILAB no momento.

    Exemplos:

    clear exclui todas as variveis

    clear frutas exclui a varivel frutas

    clear frutas lixo exclui as variveis frutas e lixo

    Limpando a Janela do Console do Scilab

    Para limpar a janela do console do Scilab e posicionar o cursor na primeira

    linha da mesma, podemos utilizar o comando clc.

  • Prof. Botter USJT - 2015 Pgina 6

    1.4 Funes Matemticas

    A tabela a seguir apresenta algumas funes matemticas.

    Funo Significado

    abs(x) mdulo de x

    acos(x) arco co-seno de x

    asin(x) arco seno de x

    atan(x) arco tangente de x

    ceil(x) arredondamento de x na direo de zero

    cos(x) co-seno de x

    exp(x) exponencial de x

    fix(x) arredondamento de x para menos infinito

    log(x) logartmo neperiano de x

    log10(x) logartmo na base 10 de x

    round(x) arredondamento para um nmero inteiro mais

    prximo

    sin(x) seno de x

    sqrt(x) raiz quadrada de x

    tan(x) tangente de x

    1.5 Manipulando Matrizes

    Existem vrios tipos de matrizes:

    quadradas nmeros de linhas igual ao nmero de colunas;

    retangulares nmero de linhas diferentes do nmero de colunas;

    unidimensional onde o nmero de linhas igual ao nmero de colunas e ambos

    iguais a um.

  • Prof. Botter USJT - 2015 Pgina 7

    Construindo matrizes

    As matrizes podem ser adicionadas de vrias formas, contudo a mais

    simples, descrita a seguir:

    devemos delimitar a matriz por colchetes ([ ]);

    cada elemento da matriz deve ser separado por um espao;

    para indicar o final de uma linha, devemos inserir um ponto-e-vrgula (;)

    Exemplos:

    Matriz tipo Insero e Resultado

    Unidimensional -->A =

    2

    Linha --> A = [1 2 3]

    A =

    1. 2. 3.

    Coluna -->A = [1; 2; 3]

    A =

    1.

    2.

    3.

    Quadrada -->A = [1 2 3; 4 5 6; 7 8 9]

    A =

    1. 2. 3.

    4. 5. 6.

    7. 8. 9.

    Retangular -->A = [1 2 3; 4 5 6]

    A =

    1. 2. 3.

    4. 5. 6.

  • Prof. Botter USJT - 2015 Pgina 8

    Matrizes Especiais

    Existem algumas matrizes especiais umas de uso geral, enquanto outras de

    carter especfico.

    Matriz tipo Insero e Resultado

    Quadrada de zeros -->A=zeros(2,2)

    A =

    0. 0.

    0. 0.

    Retangular de zeros -->A=zeros(1,3)

    A =

    0. 0. 0.

    Quadrada de uns -->A=ones(2,2)

    A =

    1. 1.

    1. 1.

    Retangular de uns -->A=ones(1,3)

    A =

    1. 1. 1

    Quadrada e Randmicas entre zero e um -->A=rand(2,2)

    A =

    0.2113249 0.0002211

    0.7560439 0.3303271

    Retangular e randmicas entre zero e um -->A=rand(1,3)

    A =

    0.6653811 0.6283918 0.8497452

    Matriz identidade quadrada -->A=eye(2)

    A =

    1. 0.

    0. 1.

  • Prof. Botter USJT - 2015 Pgina 9

    Endereamento de Matrizes

    Acessando um nico elemento

    Podemos acessar um elemento especfico de uma determinada matriz

    informando a linha e a coluna do elemento que se deseja acessar.

    Exemplo:

    -->A = [1 2 3; 4 5 6]

    A =

    1. 2. 3.

    4. 5. 6.

    -->A(2,3)

    ans =

    6.

    Acessando um bloco de elementos adjacentes

    Podemos acessar um bloco de elementos adjacentes pertencentes a uma

    matriz informando a linha inicial e a linha final e em seguida a coluna inicial e a coluna

    final do bloco que se deseja acessar.

    Exemplo:

    -->A = [1 2 3; 4 5 6]

    A =

    1. 2. 3.

    4. 5. 6.

    -->A(1,2:3)

    ans =

    2. 3.

  • Prof. Botter USJT - 2015 Pgina 10

    -->A(1:2,2:3)

    ans =

    2. 3.

    5. 6.

    -->A(1:2,2)

    ans =

    2.

    5.

    -->A(:,2:3)

    ans =

    2. 3.

    5. 6.

    -->A(1,:)

    ans =

    1. 2. 3.

    Obs.: Os dois pontos no penltimo exemplo acima quer dizer que sero selecionadas todas

    as linhas. E no ltimo que sero consideradas todas as colunas.

  • Prof. Botter USJT - 2015 Pgina 11

    Operaes com Matrizes

    Operaes Matriz-Escalar

    Operao Insero e Resultado

    Multiplicao por escalar -->A = [1 2 3; 4 5 6]

    A =

    1. 2. 3.

    4. 5. 6.

    -->B=2*A

    B =

    2. 4. 6.

    8. 10. 12.

    Soma/Subtrao por escalar -->C=A-2

    C =

    - 1. 0. 1.

    2. 3. 4.

    Potenciao por escalar -->C=A.^2

    C =

    1. 4. 9.

    16. 25. 36.

    Operaes Matriz-Matriz

    -->A=[1 2; 4 5]

    A =

    1. 2.

    4. 5.

    -->B = [1 -2; -4 5]

    B =

    1. - 2.

    - 4. 5.

  • Prof. Botter USJT - 2015 Pgina 12

    -->C=[1 2; 3 4;5 6]

    C =

    1. 2.

    3. 4.

    5. 6.

    -->D=[1 -2 0; -3 1 2]

    D =

    1. - 2. 0.

    - 3. 1. 2.

    Operao Insero e Resultado

    Soma/Subtrao -->E=A-B

    E =

    0. 4.

    8. 0.

    Multiplicao elemento por elemento -->E=A.*B

    E =

    1. - 4.

    - 16. 25.

    Multiplicao entre matrizes (nmero de

    colunas da primeira deve ser igual ao

    nmero de linhas da segunda)

    -->E=C*D

    E =

    - 5. 0. 4.

    - 9. - 2. 8.

    - 13. - 4. 12.

    Matriz elevada a matriz -->E=A.^B

    E =

    1. 0.25

    0.0039063 3125.

    Matriz transporta -->F=A'

    F =

    1. 4.

    2. 5.

  • Prof. Botter USJT - 2015 Pgina 13

    Matriz inversa -->F=inv(A)

    F =

    - 1.6666667 0.6666667

    1.3333333 - 0.3333333

    Determinante de uma matriz -->F=det(A)

    F =

    -3.

    Dimenso de matrizes

    Podemos obter a informao sobre a dimenso de uma matriz atravs do

    comando size.

    Exemplo:

    -->A=[1 2 3; 4 5 6]

    A =

    1. 2. 3.

    4. 5. 6.

    -->[a,b]=size(A)

    b =

    3.

    a =

    2.

  • Prof. Botter USJT - 2015 Pgina 14

    No caso de termos um vetor poderemos tambm utilizar o comando length.

    Exemplo:

    -->B=[1 2 3]

    B =

    1. 2. 3.

    -->[a,b]=size(B)

    b =

    3.

    a =

    1.

    -->c=length(B)

    c =

    3.

    Comparao de matrizes

    Em determinadas ocasies, podemos necessitar comparar duas matrizes.

    Exemplo:

    -->A=[1 2 3; 4 5 6]

    A =

    1. 2. 3.

    4. 5. 6.

    -->B=[1 2 -3; 4 5 6]

    B =

    1. 2. - 3.

    4. 5. 6.

  • Prof. Botter USJT - 2015 Pgina 15

    Operao Insero e Resultado

    Verificar se duas matrizes so iguais -->isequal(A,A)

    ans =

    T

    -->isequal(A,B)

    ans =

    F

    1.6 Polinmios

    Representando polinmios

    Sejam dois polinmios: p1 = x4 12x

    3 + 25x + 116 e p2 = x + 1. Para

    entrarmos com estes polinmios no SCILAB deveremos represent-los na forma vetorial.

    Exemplo:

    -->p1=[1 -12 0 25 116]

    p1 =

    1. - 12. 0. 25. 116.

    -->p2=[1 1]

    p2 =

    1. 1.

    -->p3=[3 5]

    p3 =

    3. 5.

  • Prof. Botter USJT - 2015 Pgina 16

    Operaes com polinmios

    A seguir encontram-se tabeladas as operaes bsicas com polinmios.

    Operao Insero e Resultado

    Razes -->a=roots(p1)

    a =

    11.747283

    2.7028207

    - 1.2250518 + 1.467208i

    - 1.2250518 - 1.467208i

    Parte real e parte imaginria -->imag(a)

    ans =

    0.

    0.

    1.467208

    - 1.467208

    -->real(a)

    ans =

    11.747283

    2.7028207

    - 1.2250518

    - 1.2250518

    Soma/subtrao (os polinmios tem que se

    de mesmo tamanho)

    -->p4=p2+p3

    p4 =

    4. 6.

    Multiplicao -->p5=conv(p1,p2)

    p5 =

    1. - 11. - 12. 25. 141. 116.

  • Prof. Botter USJT - 2015 Pgina 17

    1.7 Comandos de entrada de dados

    Em algumas situaes podemos necessitar solicitar dados do usurio via

    teclado.

    Exemplo:

    -->a=input('Entre com o valor da varivel a = ')

    Entre com o valor da varivel a = 0

    a =

    0.

    1.7 Comandos de sada de dados

    Em algumas situaes podemos precisar visualizar textos/dados/resultados

    na janela do console do Scilab.

    Exemplos:

    -->disp('O resultado da operao matemtica = ')

    O resultado da operao matemtica =

    -->printf('O resultado da operao matemtica = ')

    O resultado da operao matemtica =

    Obs.: O comando disp s coloca texto na janela do console do Scilab. Caso necessitarmos

    colocar junto com texto uma varivel, necessitamos transformar a varivel em texto.

    Exemplos:

    -->a=14;

    -->disp('O resultado da operao matemtica = ' + string (a) )

    O resultado da operao matemtica = 14

  • Prof. Botter USJT - 2015 Pgina 18

    -->a=3;

    -->b=-7;

    -->disp('O resultado da operao matemtica = ' + string (a+b) )

    O resultado da operao matemtica = -4

    -->a=14;

    -->printf('O resultado da operao matemtica = %g\n',a)

    O resultado da operao matemtica = 14

  • Prof. Botter USJT - 2015 Pgina 19

    1.9 Estruturas de Seleo

    As estruturas de seleo so teis quando necessitamos realizar certas aes

    mediante certas condies.

    Exemplo:

    nota1=input('Entre com a nota do primeiro semestre ')

    disp('')

    nota2=input('Entre com a nota do segundo semestre ')

    disp('')

    media=0.4*nota1+0.6*nota2;

    printf('Sua mdia %g\n',media)

    if media>=6 then

    disp('Parbens, voc foi aprovado em CNCOMP')

    else

    disp('Infelizmente voc vai precisar fazer a Prova Substitutiva')

    end

    Entre com a nota do primeiro semestre 4

    Entre com a nota do segundo semestre 3.5

    Sua mdia 3.7

    Infelizmente voc vai precisar fazer a Prova Substitutiva

  • Prof. Botter USJT - 2015 Pgina 20

    1.10 Estruturas de Repetio

    As estruturas de repetio so teis quando necessitamos repetir certas aes

    mediante certas condies.

    Exemplo:

    iteracao=1;

    while iteracao

  • Prof. Botter USJT - 2015 Pgina 21

    1.11Trabalhando com grficos bidimensionais

    Grficos

    Usando o comando plot

    O comando mais freqentemente usado para plotar um grfico bidimensional

    o comando plot.

    Exemplo:

    x = linspace(0,2*3.1415,40) ; // cria um vetor linearmente espaado com 40 pontos entre 0 e

    2*pi

    y=sin(x); // calcula o seno de x

    plot(y); // plota o vetor y

  • Prof. Botter USJT - 2015 Pgina 22

    Adicionando grades, ttulo e rtulos no grfico

    Podemos tambm inserir grades num grfico, bem como ttulo para o grfico

    e rtulos (nomes) para os eixos.

    Exemplo:

    x = linspace(0,2*3.1415,40) ;

    y=sin(x);

    plot(x,y); // plota o grfico de y em funo de x

    xgrid // insere uma grade no grfico

    title('seno(x)') // insere um ttulo para o grfico

    ylabel('amplitude') // insere um rtulo par o eixo y

    xlabel('tempo') // insere um rtulo par o eixo x

  • Prof. Botter USJT - 2015 Pgina 23

    Estilo de linhas, marcadores e cores de um grfico

    Podemos num grfico, alterar algumas de suas caractersticas, tais como: as

    linhas, suas cores e seus marcadores. A tabela a seguir menciona as caractersticas

    alterveis na configurao de um grfico

    Smbolo Cor Smbolo Marcador Smbolo Tipo de linha

    y amarela . ponto - linha contnua

    m magenta o crculo : linha pontilhada

    c ciano x x-marca -. trao-ponto

    r vermelha + mais - - linha tracejada

    g verde * asterisco

    b azul s quadrado

    w branca v tringulo para baixo

    k preta ^ tringulo para cima

    < tringulo para a esquerda

    > tringulo para a direita

    p pentagrama

    h hexagonal

    Exemplo:

    x = linspace(0,4*3.1415,40) ;

    y=sin(x);

    plot(x,y,'r*--')

  • Prof. Botter USJT - 2015 Pgina 24

    As caractersticas (propriedades) de um grfico (figura) podem ser alteradas

    aps a confeco dos mesmos, bastando para isso clicarmos na barra de menu na opo

    Propriedades da figura, e nas opes seguintes a essa segundo ilustramos a seguir:

    Alteraes das caractersticas relativas aos eixos e titulo.

  • Prof. Botter USJT - 2015 Pgina 25

    Alteraes das caractersticas relativas as linhas dos grficos.

    Adicionando Legendas

    Quando traamos dois ou mais grficos em uma mesma janela e nos mesmos

    eixos, possvel definir legendas de maneira a identificarmos cada curva.

    Exemplo:

    x = linspace(0,4*3.1415,40) ;

    plot(x,sin(x),x,cos(x));

    legend('sin(x)','cos(x)')

  • Prof. Botter USJT - 2015 Pgina 26

    Plotando dois ou mais grficos na mesma janela e nos mesmos eixos

    A- Informando as cores dos grficos

    Exemplo:

    x = linspace(0,4*3.1415,40) ;

    y=sin(x);

    plot(x,y,'b');

    z=cos(x);

    plot(x,z,'r');

    B- Usando um plot s (a mudana de cor automaticamente feita pelo Scilab)

    Exemplo:

    x = linspace(0,4*3.1415,40) ;

    plot(x,sin(x),x,cos(x));

  • Prof. Botter USJT - 2015 Pgina 27

    Plotando dois ou mais grficos na mesma janela e em eixos diferentes

    Exemplos:

    x = linspace(0,4*3.1415,40) ;

    y=sin(x);

    subplot(2,1,1); plot(x,y,'b');

    z=cos(x);

    subplot(2,1,2); plot(x,z,'r');

    x = linspace(0,4*3.1415,40) ;

    subplot(2,2,1);plot(x,sin,'b');

    subplot(2,2,2);plot(x,cos(x),'r');

    subplot(2,2,3);plot(x,x.*sin(x),'k');

    subplot(2,2,4);plot(x,x.*cos(x),'g');

    x = linspace(0,4*3.1415,40) ;

    subplot(2,2,1);plot(x,sin,'b');

    subplot(2,2,2);plot(x,cos(x),'r');

    subplot(2,1,2);plot(x,sin(x)+cos(x),'k');