You are on page 1of 69

Mini-Curso Scilab Mini-Curso Scilab

Ministrantes: Francisco Carlos G. da S. Segundo


Leonardo Vale de Arajo
e-mail: segundoengeletrica@gmail.com
nardo.2112@gmail.com
O MINI-CURSO
Parte I: Apresentao e Introduo ao ambiente do
Scilab, Polinmios, Operaes com Matrizes e
Vetores
2
Mini-Curso - Introduo
ao Scilab @ UFRN
Vetores
Introduo ao Scilab; Comandos Bsicos etc.
Polinmios; Demonstrao de tcnicas de
manipulao de vetores: Declarao, Mdulo,
exponenciao, diviso e manipulao de elementos de
um vetor; Demonstrao de tcnicas de manipulao
de matrizes; Declarao de Matrizes simples e
complexas: Adio, Multiplicao e Diviso; Matriz
Transposta, inversa etc.
O MINI-CURSO
Parte II: Controle de Fluxos no Scilab, Funes e
Grficos
Controle de laos (while, for, if, else, switch);
3
Mini-Curso - Introduo
ao Scilab @ UFRN
Controle de laos (while, for, if, else, switch);
Funes com vrios parmetros de entrada e
vrios parmetros de sada, Grficos
bidimensionais; Grficos tridimensionais.
Parte I Apresentao e Introduo ao
ambiente do Scilab, Polinmios,
4
Mini-Curso - Introduo
ao Scilab @ UFRN
ambiente do Scilab, Polinmios,
Operaes com Matrizes e Vetores
Apresentao
O Scilab um software cientfico para computao
numrica. Fornece poderoso ambiente
computacional aberto para aplicaes cientficas.
5
Mini-Curso - Introduo
ao Scilab @ UFRN
computacional aberto para aplicaes cientficas.
Desenvolvido desde 1990 pelos pesquisadores do
INRIA (Institut National de Recherche en
Informatique et en Automatique) e do ENPC (cole
Nationale des Ponts et Chausses), agora mantido
e desenvolvido pelo Consorcio Scilab desde sua
criao em Maio de 2003 .
Distribuio gratuita.
Apresentao
Scilab inclui centenas de funes matemticas. Tem uma
linguagem de programao de alto nvel, permitindo o acesso
s estruturas de dados avanada, 2D e as funes grficas 3D.
Um grande nmero de funcionalidades est includo no
Scilab:
6
Mini-Curso - Introduo
ao Scilab @ UFRN
Scilab:
Matemtica e Simulao;
Visualizao 2D e 3D;
Otimizao;
Estatstica;
Projeto de Sistemas de Anlise e Controle;
Processamento de Sinal;
Desenvolvimento de Aplicaes;
Xcos
Programar em Scilab
Vantagens
Linguagem de alto nvel
Cdigo simples
7
Mini-Curso - Introduo
ao Scilab @ UFRN
Cdigo simples
Implementao rpida e fcil
Vrias bibliotecas com comandos e
funcionalidades disponveis
Desvantagens
Lentido devido a ser uma linguagem interpretada
M programao deixa o cdigo muito lento
(tempo de execuo)
Instalao
http://www.scilab.org/download/5.4.1
8
Mini-Curso - Introduo
ao Scilab @ UFRN
Ambiente Scilab
9
Mini-Curso - Introduo
ao Scilab @ UFRN
Ambiente Scilab
10
Mini-Curso - Introduo
ao Scilab @ UFRN
Navegador de
Arquivos
Console
Navegador de
Variveis
Histrico de
Comandos
Ambiente Scilab
11
Mini-Curso - Introduo
ao Scilab @ UFRN
Ambiente Scilab
12
Mini-Curso - Introduo
ao Scilab @ UFRN
Ambiente Scilab
13
Mini-Curso - Introduo
ao Scilab @ UFRN
Ambiente Scilab
14
Mini-Curso - Introduo
ao Scilab @ UFRN
Ambiente Scilab
15
Mini-Curso - Introduo
ao Scilab @ UFRN
O comeo...
Passo 1 - Digite no console: s = Mini curso CN
2013.2
Passo 2 Digite no console: disp(s)
16
Mini-Curso - Introduo
ao Scilab @ UFRN
Passo 2 Digite no console: disp(s)
Como acessar o histrico de comandos?
Lembra-se apenas do incio da funo, o que
fazer?
Declarao de variveis
A declarao da varivel importante, pois o
resultado da operao armazenada na varivel
que pode ser utilizada depois.
17
Mini-Curso - Introduo
ao Scilab @ UFRN
que pode ser utilizada depois.
Digite no Console.
a) a = 5
b) b = 7
c) S = a + b
d) Area = a*b
e) Sub = a-7
f) Div = a/b
Declarao de variveis
Regras para formao de Nomes de variveis
1. Nomes de variveis comeam com uma letra
seguido de letras, algarismos ou sublinhados. Ex.:
18
Mini-Curso - Introduo
ao Scilab @ UFRN
seguido de letras, algarismos ou sublinhados. Ex.:
Alfa, AlUnOs, A1, B123, sala_de_aula.
2. Caracteres especiais no so permitidos no incio
da varivel. Isto , no permitido usar $, #, %, &, ?,
@...
3. Caracteres acentuados no so permitidos;
4. Nomes das variveis so sensveis a maisculas e
minsculas. Ex.: alunos, Alunos, AlUnOs.
Declarao de Variveis
19
Mini-Curso - Introduo
ao Scilab @ UFRN
Variveis Reservadas
Existem variveis que assumem valores pr-denidos no Scilab. Elas
podem ser vistas atravs do comando who ou what. Essas variveis so
protegidas e no podem ser apagadas.
20
Mini-Curso - Introduo
ao Scilab @ UFRN
Operaes Bsicas
Adio (+)
Subtrao (-)
Multiplicao (*)
Digite no Console.
a) 5 + 7
21
Mini-Curso - Introduo
ao Scilab @ UFRN
Multiplicao (*)
Diviso (/) e (\)
Potenciao (^) ou (**)
Transposta () Matriz
a) 5 + 7
b) 15-25
c) 9/2
d) 9\2 *
e) 3^2
f) 3**2
g) 2*8
* Fazer 9^-1*2
Operaes Bsicas
Digite no Console.
a&b E lgico;
a|b OU lgico;
~a NO lgico;
22
Mini-Curso - Introduo
ao Scilab @ UFRN
a = %T
b = (0==1)
a&b
a|b
~a
~a NO lgico;
a==b as duas expresses so iguais.
a~=b ou a<>b as duas expresses so
diferentes.
a<b a menor que b.
a>b a maior que b.
a<=b a menor ou igual a b.
a>=b a maior ou igual a b.
a = 5
b = 8
a==b
a~=b
a<b
a>b
Ordem de precedncia
Importante levar em considerao a ordem de
precedncia quando digitar a expresso.
23
Mini-Curso - Introduo
ao Scilab @ UFRN
Mesma prioridade,
resolve-se a expresso
mais a esquerda.
Exemplo expresso algbrica
Digite no console:
a) A = 1 + 2/3 + 4;
b) B = (1 + 2)/(3 + 4);
24
Mini-Curso - Introduo
ao Scilab @ UFRN
b) B = (1 + 2)/(3 + 4);
c) C = 1 + 2/(3 + (4+1)/2);
d) D = 3*2/5
e) E = 5^2/10
Importante
Formato de Visualizao dos Nmeros
O comando format modica a quantidade de
dgitos com que os nmeros so mostrados no
Scilab. Por exemplo, o comando
Mini-Curso - Introduo
ao Scilab @ UFRN
25
Scilab. Por exemplo, o comando
format(5)
sqrt(3)
format(16)
sqrt(3)
format(e)
2*%pi/10
Importante
Comandos do Scilab:
clc limpa a tela do console;
clear limpa as variveis armazenadas;
26
Mini-Curso - Introduo
ao Scilab @ UFRN
clear limpa as variveis armazenadas;
help ajuda do scilab;
pwd Mostra o diretrio de trabalho;
chdir Muda de Diretrio;
Dir Mostra o que tem no diretrio;
save Salva variveis para posterior uso;
Ex.: save(dados.dat,variavel1,variavel2)
load Carrega o arquivo salvo;
Funes Matemticas comuns
Vamos Praticar!!
cos(2*%pi)
%e^2
27
Mini-Curso - Introduo
ao Scilab @ UFRN
%e^2
abs(-5)
modulo(8,3)
modulo(6,3)
sign(-4)
sign(5)
O valor de representado por %pi. (3.1415...)
A base do logaritmo natural %e. (2,71828...)
Funes de arredondamento
28
Mini-Curso - Introduo
ao Scilab @ UFRN
Confirme no console do Scilab as funes acima utilizando a
varivel x = 1,75; 1,5; 1,25; -1,25; -1,5; -1,75. Ex.
Nmeros Complexos
abs Mdulo;
imag Parte imaginria;
real Parte Real;
Digite no Console:
Z = 3 + 2*%i
29
Mini-Curso - Introduo
ao Scilab @ UFRN
real Parte Real;
conj Conjugado.
Z = 3 + 2*%i
M = abs(Z)
Angle = atan(imag(Z),real(x))
A = 3 + 2*%i
C = conj(A)
Strings
o usados para toda e qualquer informao
composta de caracteres alfanumricos e/ou
caracteres especiais (exemplo, #, $, &, ?, !, @, <,
30
Mini-Curso - Introduo
ao Scilab @ UFRN
caracteres especiais (exemplo, #, $, &, ?, !, @, <,
etc). Os strings so envolvidos por aspas duplas
ou simples. Exemplo:
A = Computao
B = Numrica
C = 2013.2
Strings
Uma das atividades mais comuns em
programao a concatenao de strings.
Concatenao a juno de dois ou mais strings.
31
Mini-Curso - Introduo
ao Scilab @ UFRN
Concatenao a juno de dois ou mais strings.
Isso pode ser feito com o operador +.
A+B+C
A+ +B+ +C Mini curso
Como fazer em uma varivel que j contenha
aspas?
Strings - Funes
Algumas funes de manipulao de strings.
32
Mini-Curso - Introduo
ao Scilab @ UFRN
M = A reunio ser s 10 horas.
Hr = 10;
N = A reunio ser s +string(Hr)+
horas
Num = 58+60
evstr(Num)+40
Utilizando o Editor
33
Mini-Curso - Introduo
ao Scilab @ UFRN
Editor
Editor
Com o editor, o usurio pode realizar edies no
programa de maneira mais fcil e pode salv-lo
para posterior utilizao.
34
Mini-Curso - Introduo
ao Scilab @ UFRN
para posterior utilizao.
Exemplo: Abra o editor e digite o seguinte:
A = 9
B = 10
C = 8
X = (9+10+8)/3
Salve o arquivo.
Uso de input e disp
Como pode ser feito para pedir ao usurio para
informar os valores de A, B e C anterior e
mostrar um texto no console: A mdia :?
35
Mini-Curso - Introduo
ao Scilab @ UFRN
mostrar um texto no console: A mdia :?
Uso de input e disp
Em vez de disp, pode-se utilizar
printf. No caso, seria:
36
Mini-Curso - Introduo
ao Scilab @ UFRN
printf(A Mdia : %g, X);
Executar
Se estiver no mesmo diretrio, apertando crtl+L,
crtl+E ou F5 (Windows) o arquivo ser
executado. Caso o arquivo no esteja no memo
37
Mini-Curso - Introduo
ao Scilab @ UFRN
executado. Caso o arquivo no esteja no memo
diretrio, deve-se executar passando o diretrio
o qual est o arquivo:
exec(diretorio_do_arquivo)
Ex.:
exec('C:\Users\Cliente\Documents\Media.sce')
Vamos Praticar!! (Faa no Editor)
h = 0.25, d = 2, p =3, a = 5, b = -1
38
Mini-Curso - Introduo
ao Scilab @ UFRN
Vamos Praticar!!
A = 11, B = 5, C = -4 e D = 2.
39
Mini-Curso - Introduo
ao Scilab @ UFRN
Vamos Praticar!!
Faa um programa no editor que a partir da
temperatura fornecida pelo usurio, o programa
converta a temperatura de graus Celcius para
Fahrenheit. A frmula : F = 9*C/5 + 32. Na sada,
40
Mini-Curso - Introduo
ao Scilab @ UFRN
Fahrenheit. A frmula : F = 9*C/5 + 32. Na sada,
apresente no console o texto: A temperatura __
F
Elabore um programa em Scilab para calcular a
resistncia equivalente entre dois resistores R1 e R2
em paralelo. A frmula : Req = (R1*R2)/(R1+R2).
Apresente o resultado usando o comando disp.
Polinmios
Os polinmios so criados atravs da utilizao
da funo poly. Pode-se definir o polinmio
pelas suas razes ou pelos seus coeficientes.
41
Mini-Curso - Introduo
ao Scilab @ UFRN
pelas suas razes ou pelos seus coeficientes.
Definindo pelas razes: p = poly([1 3],x)
Definindo pelos coeficientes: p = poly([1 2 3], x,
coeff)
Polinmios
Como provar que o polinmio definido pelas
razes verdadeiro?
Outra forma de definir polinmio a seguinte:
42
Mini-Curso - Introduo
ao Scilab @ UFRN
Outra forma de definir polinmio a seguinte:
x = poly(0,x)
p = x^2+2*x+5
Operaes com Polinmios
p = poly([1 2], s)
q = poly([1 2], s, coeff)
Multiplicao: p*q
43
Mini-Curso - Introduo
ao Scilab @ UFRN
Multiplicao: p*q
Diviso: p/q
Diviso: [r, q] = pdiv(p,q)
Adio: p+q
Subtrao: p-q
Resultado do Polinmio
Para sabermos o valor do polinmio no qual a
incgnita assume determinado valor. Ex. Qual
valor do polinmio x^2-x+10 com x=5?
44
Mini-Curso - Introduo
ao Scilab @ UFRN
valor do polinmio x^2-x+10 com x=5?
Vamos Praticar!!
Calcule as razes dos seguintes polinmios
45
Mini-Curso - Introduo
ao Scilab @ UFRN
Calcule os valores das operaes abaixo
Vetores
Os vetores so matrizes de uma dimenso.
Os vetores so declarados da seguinte forma:
A = [1 2 3]
46
Mini-Curso - Introduo
ao Scilab @ UFRN
A = [1 2 3]
B = [1;2;3]
O ; separando os valores significa
que o prximo elemento ficar
abaixo do anterior.
Um vetor linha declarado
separando os elementos por
vrgula ou somente espao.
Vetores
Para transformar um vetor linha em um vetor
coluna, vice-versa, basta somente utilizar o .
A
47
Mini-Curso - Introduo
ao Scilab @ UFRN
A
B
Para sabermos as dimenses de um vetor ou
mesmo uma matriz, basta utilizar a funo size.
Ex.: size(A)
Operaes
Pode-se efetuar as operaes de soma,
multiplicao, diviso, subtrao, potenciao.
Ex.: A = [1;2;3]
48
Mini-Curso - Introduo
ao Scilab @ UFRN
Ex.: A = [1;2;3]
B = [4;5;6]
3*A
A/
A + B
B^2
A*B Produto escalar
A*B Produto vetorial
Operaes
Se quisesse multiplicar, dividir e realizar a
potenciao elemento a elemento?
49
Mini-Curso - Introduo
ao Scilab @ UFRN
Operaes
A.*B
A./B
A.^B
50
Mini-Curso - Introduo
ao Scilab @ UFRN
A.^B
Construo de Vetores
Pode-se construir vetores usando ndices ou
algumas funes internas do scilab.
x = 5:-0.5:3
51
Mini-Curso - Introduo
ao Scilab @ UFRN
x = 5:-0.5:3
m = ones(1,4)
n = zeros(1,5)
p = linspace(1,10,200)
s = rand(1,4)
a = [[1 3] [4 5 6]]
Z = [[1:3] zeros(1,3)]
Acessando elemento do Vetor
Da varivel Z declarada anteriormente, como
podemos alterar a posio em algum elemento?
R. Z(1) = 5
52
Mini-Curso - Introduo
ao Scilab @ UFRN
R. Z(1) = 5
Z(1:4) = [1:4]
Da varivel Z declarada anteriormente, quais as
posies que se encontram os valores de zero?
Se o vetor fosse maior como poderamos fazer?
R. Utilizando a funo find do scilab.
find(Z==0)
Vamos Praticar!!
Construa um vetor com elementos crescentes
que comea em 10 e termina em 20, com passo
de 5.
53
Mini-Curso - Introduo
ao Scilab @ UFRN
de 5.
Construa um vetor com elementos crescentes
que comea em 10 e termina em 70 com 7
elementos.
Gere uma sequncia de nmeros pares
comeando em 4 e no ultrapassando 15.
Vamos Praticar!!
Crie um vetor A de 15 elementos aleatrios e a partir
deste, crie outros vetores de acordo com os seguintes
critrios:
B1 = Conter somente os elementos de A maiores que
54
Mini-Curso - Introduo
ao Scilab @ UFRN
B1 = Conter somente os elementos de A maiores que
0,5. Calcule quantos elementos so.
B2 = Conter somente os elementos de A menores que
0.2. Calcule quantos elementos so.
B3 = Conter os elementos de A em Ordem Crescente.
B4 = Conter os elementos de A em Ordem
Decrescente.
Obs.: uso o comando apropos para encontrar o
comando que ordena o vetor em ordem crescente ou
decrescente.
Vamos Praticar!!
Extraia os quatro ltimos elementos do vetor a e
armazene na varivel c:
a = [1 30 100 3 10 30 90 12 3 4 5 30 30 0.5]
55
Mini-Curso - Introduo
ao Scilab @ UFRN
a = [1 30 100 3 10 30 90 12 3 4 5 30 30 0.5]
Use o comando length e $.
Vamos Praticar!!
Crie uma expresso que calcule o valor de y para as equaes abaixo. Defina
x variando de 2 a 19 espaados de 5 em 5 unidades.
56
Mini-Curso - Introduo
ao Scilab @ UFRN
Use o comando disp para mostrar os resultados no formato y (para os
valores de x iguais a __) = resultado.
Matrizes
Operaes com Matrizes:
Adio
Subtrao
57
Mini-Curso - Introduo
ao Scilab @ UFRN
Subtrao
Multiplicao
Diviso pela direita
Diviso pela esquerda
Exponenciao
Transposta
Inversa
Matrizes
A matriz definida com elementos entre
colchetes ([...]);
Elementos de uma linha so separados por , ou
58
Mini-Curso - Introduo
ao Scilab @ UFRN
Elementos de uma linha so separados por , ou
espao e o final da linha representado por ;.
A = [0 2 3;4 5 6;7 8 9]
B = [4 6 7; 10 25 12; 4 9 1]
Matrizes
Adio: A + B
Subtrao: A B
Multiplicao: A*B
59
Mini-Curso - Introduo
ao Scilab @ UFRN
Multiplicao: A*B
Diviso pela direita: B/A equivalente a X*A = B
Diviso pela esquerda: A\B equivalente a A*X = B
Exponenciao: A^3
Exponenciao: A.^3
Multiplicao: A.*B
Diviso: A./B
Matrizes
A = [1 2; 3 4];
B = [5 6; 7 8];
C = [9 10; 11 12];
60
Mini-Curso - Introduo
ao Scilab @ UFRN
C = [9 10; 11 12];
D = [A B C]
E = matrix(D,3,4)
Acessando os Elementos da Matriz
E(1,1)
E(1:2,2)
Extrair uma linha: E(1,:)
61
Mini-Curso - Introduo
ao Scilab @ UFRN
Extrair uma linha: E(1,:)
Extrair uma coluna: E(:,1)
Extrair 2 linhas e 2 colunas. Como fazer?
Comandos para Matrizes
E = [1 2 3; 4 5 6; 7 8 9]
Determinante
det(E)
62
Mini-Curso - Introduo
ao Scilab @ UFRN
Transposta
E
Inversa
inv(E)
Diagonal
diag(E)
Trao
Trace(E)
Matrizes com Strings
As matrizes quanto os vetores pode-se utilizar
strings. Ex.: A = [1 2 Alunos; Materia 7
CN; 6 8 10]
63
Mini-Curso - Introduo
ao Scilab @ UFRN
CN; 6 8 10]
Listas
Uma lista uma coleo de objetos no
necessariamente do mesmo tipo. Uma lista
simples definida pela funo list.
64
Mini-Curso - Introduo
ao Scilab @ UFRN
simples definida pela funo list.
Ex.: L = list(1, w, ones(2,2))
Estruturas
Estruturas (structures) um tipo de dado que permite o
armazenamento de matrizes de naturezas diferentes (escalares, vetores,
matrizes, strings) identificveis por nomes de campos.
65
Mini-Curso - Introduo
ao Scilab @ UFRN
s = struct('Aluno',{'Joao'},'Matricula',{001},'Nota',{1.0});
s(2).Aluno = 'Maria';
s(2).Matricula = 002;
s(2).Nota = 10;
s(3).Aluno = 'Jose';
s(3).Matricula = 003;
s(3).Nota = 7;
Vamos Praticar!!
Encontrar o valor de x1, x2 e x3.
66
Mini-Curso - Introduo
ao Scilab @ UFRN
Vamos Praticar!!
Um construtor tem contratos para construir 3 estilos de casa: moderno, mediterrneo e
colonial. A quantidade de material empregada em cada tipo de casa dada pela tabela:
67
Mini-Curso - Introduo
ao Scilab @ UFRN
Faa um programa que armazene os valores da tabela acima em uma matriz chamada
material e que seja capaz de:
- Perguntar quantas casas e de qual tipo se deseja construir (usar comando input e
armazenar no vetor qcasas)
- Mostrar a quantidade de material de cada tipo a ser utilizado no projeto total
- O preo total do projeto de construo das casas, supondo que os preos por
unidade de ferro, madeira, vidro, tinta e tijolo sejam, respectivamente, 15, 8, 5, 1 e 10
(Armazenar esses preos no vetor preo)
- Mostre tambm o preo unitrio de cada casa.
Obrigado!
68
Mini-Curso - Introduo
ao Scilab @ UFRN
Obrigado!
Bibliografia
[1] PIRES, Paulo Srgio da Motta. Introduo ao
Scilab Verso 3.0. disponvel em
http://www.dca.ufrn.br/~pmotta/sciport-3.0.pdf.
69
Mini-Curso - Introduo
ao Scilab @ UFRN
http://www.dca.ufrn.br/~pmotta/sciport-3.0.pdf.
[2] LACERDA, E. G. M. Programando com Scilab.
Departamento de Engenharia de Computao e
Automao UFRN. Disponvel em
http://www.dca.ufrn.br/~estefane/academica/prog
sci.pdf
[3] JNIOR, Vicente A. de Souza. Mini-Curso de
Matlab. UFRN.

You might also like