Você está na página 1de 27

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 <ENTER>.

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 1

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 2

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 3

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 4

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 5

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 6

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
Unidimensional

Insero e Resultado
-->A =
2

Linha

--> A = [1 2 3]
A=
1.

Coluna

2.

3.

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

Quadrada

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

Retangular

1.

2.

3.

4.

5.

6.

7.

8.

9.

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

Prof. Botter USJT - 2015

1.

2.

3.

4.

5.

6.

Pgina 7

Matrizes Especiais
Existem algumas matrizes especiais umas de uso geral, enquanto outras de
carter especfico.
Matriz tipo
Quadrada de zeros

Insero e Resultado
-->A=zeros(2,2)
A=

Retangular de zeros

0.

0.

0.

0.

-->A=zeros(1,3)
A=
0.

Quadrada de uns

0.

0.

-->A=ones(2,2)
A=

Retangular de uns

1.

1.

1.

1.

-->A=ones(1,3)
A=
1.

Quadrada e Randmicas entre zero e um

1.

-->A=rand(2,2)
A=

Retangular e randmicas entre zero e um

0.2113249

0.0002211

0.7560439

0.3303271

-->A=rand(1,3)
A=
0.6653811

Matriz identidade quadrada

0.6283918

0.8497452

-->A=eye(2)
A=

Prof. Botter USJT - 2015

1.

0.

0.

1.

Pgina 8

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 9

-->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 10

Operaes com Matrizes


Operaes Matriz-Escalar
Operao
Multiplicao por escalar

Insero e Resultado
-->A = [1 2 3; 4 5 6]
A =
1.

2.

3.

4.

5.

6.

-->B=2*A
B =

Soma/Subtrao por escalar

2.

4.

6.

8.

10.

12.

-->C=A-2
C=

Potenciao por escalar

- 1.

0.

1.

2.

3.

4.

-->C=A.^2
C=
1.

4.

16.

25.

9.
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 11

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

2.

3.

4.

5.

6.

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

1.

0.
2.
Operao

Soma/Subtrao

Insero e Resultado
-->E=A-B
E=

Multiplicao elemento por elemento

0.

4.

8.

0.

-->E=A.*B
E=
1. - 4.
- 16.

25.

Multiplicao entre matrizes (nmero de -->E=C*D


colunas da primeira deve ser igual ao E =
nmero de linhas da segunda)

Matriz elevada a matriz

- 5.

0.

4.

- 9. - 2.

8.

- 13. - 4.

12.

-->E=A.^B
E=
1.

0.25

0.0039063
Matriz transporta

3125.

-->F=A'
F=

Prof. Botter USJT - 2015

1.

4.

2.

5.
Pgina 12

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 13

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 14

Operao
Verificar se duas matrizes so iguais

Insero e Resultado
-->isequal(A,A)
ans =
T
-->isequal(A,B)
ans =
F

1.6 Polinmios
Representando polinmios
Sejam dois polinmios: p1 = x4 12x3 + 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 15

Operaes com polinmios


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

Operao
Razes

Insero e Resultado
-->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 -->p4=p2+p3


de mesmo tamanho)

p4 =
4.

Multiplicao

6.

-->p5=conv(p1,p2)
p5 =
1. - 11. - 12.

Prof. Botter USJT - 2015

25.

141.

116.

Pgina 16

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 17

-->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 18

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 19

1.10 Estruturas de Repetio


As estruturas de repetio so teis quando necessitamos repetir certas aes
mediante certas condies.

Exemplo:

iteracao=1;
while iteracao<5
iteracao=iteracao+1;
if iteracao=5 then
printf('A iteracao chegou no valor de %g\n',iteracao)
end
end

A iteracao chegou no valor de 5

Prof. Botter USJT - 2015

Pgina 20

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 21

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 22

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

amarela

ponto

linha contnua

magenta

crculo

linha pontilhada

ciano

x-marca

-.

trao-ponto

vermelha

mais

--

linha tracejada

verde

asterisco

azul

quadrado

branca

tringulo para baixo

preta

tringulo para cima

<

tringulo para a esquerda

>

tringulo para a direita

pentagrama

hexagonal

Exemplo:
x = linspace(0,4*3.1415,40) ;
y=sin(x);
plot(x,y,'r*--')

Prof. Botter USJT - 2015

Pgina 23

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 24

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 25

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 26

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');

Prof. Botter USJT - 2015

Pgina 27

Você também pode gostar