Buscar

Introdução ao Scilab

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Introdução ao Scilab
Profª Gilka Rocha Barbosa
Introducao ao Scilab
Apresentar comandos básicos necessários à
introdução à programação e 
desenvolvimento de programas simples.
Ambiente
Elementos básicos
Números, Vetores e Matrizes
Variáveis 
Operadores
Funções elementares
Carga e gravação
Introdução ao Scilab 2
Introdução ao Scilab 3
Linguagens de Programação (LP)
As linguagens de programação permitem ao 
usuário especificar um programa de uma forma 
semelhante ao algoritmo.
Um compilador/interpretador da linguagem 
deverá fazer a tradução das instruções de alto 
nível para as de nível máquina (por exemplo, 
manter os endereços de memória onde estão 
guardadas as variáveis).
C = A + B
LDA 11A810A0
LDB 22345A91
ADD A,B
STA 1234FE88
Introdução ao Scilab 4
Linguagens de Programação (LP)
Existem vários tipos de LP baseadas em diferentes 
paradigmas (estilos) de programação. 
Linguagens imperativas: 
Fortran, Pascal, C, MATLAB, SCILAB
Controle explícito da execução
Linguagens Orientadas a Objetos: 
Smalltalk, C++, Java
Controle implícito na manipulação dos dados
Linguagens Funcionais: 
LISP, Scheme
Baseadas na especificação de funções 
Linguagens Lógicas: 
Prolog
Implementando a Lógica de Predicados
Introdução ao Scilab
Scilab
� Software livre para cálculo numérico e simu-
lação de sistemas físicos. Usado nas áreas:
� Física
� Sistemas complexos
� Processamento de imagens
� Controle e processamento de sinais
� Automação industrial
� Controle de processos
� Computação gráfica
� Matemática
� Modelagem biológica
� ...
Introdução ao Scilab
Scilab
� Criado em 1989 por um grupo de pesquisadores da INRIA
e da ENPC.
� Disponível como software livre desde 1994 pelo site 
http://www.scilab.org
� Consórcio Scilab desde 2003 mantido por diversas empre-
sas.
Objetivos do consórcio:
� organizar cooperação entre os desenvolvedores
� obter recursos para manutenção da equipe
� garantir suporte aos usuários
� Sistemas Operacionais:
Linux
Windows
Solaris
Unix
Introdução ao Scilab 7
Scilab
Ambiente utilizado no desenvolvimento de 
software para resolução de problemas numéricos
Gratuito, software free
A última versão está sempre disponível, 
geralmente via Internet
O software pode ser legalmente utilizado, 
copiado, distribuído, modificado
Distribuído com código fonte
Sintaxe semelhante ao Matlab
Permite interface com rotinas escritas em outras 
linguagens como C
Suporta o desenvolvimento de conjuntos de 
funções voltadas para aplicações especificas 
(toolboxes).
Introdução ao Scilab
Prompt de comando
Help
Editor
Ambiente Scilab
Ambiente Scilab
Introdução ao Scilab 9
Mude
o diretório
Introdução ao Scilab 10
Ambiente de programação 
Um conjunto de comandos é digitado em um arquivo 
texto e este arquivo é executado no ambiente Scilab
Teste!!!!!!!!
// Programa para calcular a media de duas notas
clear
nota1 = input ('Digite a primeira nota: ');
nota2 = input ('Digite a segunda nota: ');
media = (nota1 + nota2)/ 2;
if media >= 7 
resultado = ' aprovado.';
else 
resultado = ' reprovado. ';
end 
disp (resultado)
disp (media)
printf ( "\n A média entre %1.2f e %1.2f é %1.2f e o 
aluno está %s \n\n", nota1, nota2, media, resultado) 
Introdução ao Scilab 11
Salve com o nome
Media.sce
Introdução ao Scilab 12
Teste!!!!!!!!!!
execute
Media
Introdução ao Scilab 13
Janela de gráficos Teste!!!!!!!!
Introdução ao Scilab 14
-->a= 1 : 0.1 : 10;
-->plot (a, sin(a))
Veja a barra
Scilab Graphic
Introdução ao Scilab 15
Utilização básica
Variáveis especiais – pré-definidas.
São protegidas e não podem ser apagadas. 
� Who: lista as variáveis
� whos (): lista e dimensiona as variáveis 
� Clear: remove todas as variáveis do espaço de trabalho
� Help: informa sobre os comandos e funções
Ex.: help, help inv, help help
� pwd: Mostra o diretório atual.
� SCI: Mostra o diretório onde o Scilab foi instalado.
� ls: Lista os arquivos do diretório.
� chdir(“dir”): Muda de diretório.
� mkdir(“dir”): Cria um diretório.
� rmdir(“dir”, ‘s’): Remove um diretório.
� quit ou exit – sai do Scilab
Introdução ao Scilab 16
Utilização básica
� Outras variáveis podem ser criadas
-- > a=1
-- > A = 2
-- > a
� Algumas constantes especiais são precedidas 
pelo caractere %:
%e: constante neperiana
%i: raiz quadrada de -1, número imaginário
%pi: constante pi
%eps: máximo valor tal que 1+%eps=1
%inf: infinito
%nan: não é um número
%t: verdadeiro
%f: falso
Introdução ao Scilab 17
Utilização básica
... continua uma expressão em outra 
linha 
-->s = 1-1/2+1/3-1/4+1/5-1/6+1/7...
-->-1/8+1/9-1/10;
s =
0.6456349 
Introdução ao Scilab 18
Utilização básica
; ao final de uma expressão o cálculo é
feito mas o resultado não é apresentado 
-- > A=1 // Atribui o valor 1 a A
-- > b=2; // Atribui o valor 2 a b
-- > A + b; // soma de A e b
Introdução ao Scilab 19
Utilização básica
Adição +
Subtração -
Multiplicação * 
Divisão à direita / 
Divisão à esquerda \
Potenciação ^
É capaz de executar matemática elementar como uma 
calculadora:
-- > 4 * 1 + 6 * 0.5 + 5 * 2
Podem-se armazenar em variáveis:
-- > macas = 2
Introdução ao Scilab 20
Variáveis
Nomes legais de variáveis consistem numa 
combinação qualquer de letras, dígitos e 
sublinha, começando com uma letra.
Ali22B, Cost, X3_f22 and s2Sc6
É case-sensitive (diferencia letras maiúscula de 
minúscula)
Mat1 é diferente de mat1
Variáveis ilegais 
Ali-22, 5x, 3Cost, &r5, %67 and @xyt56
Caracteres
x= ‘a’ ou x= “a”
Strings 
mg1='Ali'; ou mg2=‘SCILAB DEMOS'
Introdução ao Scilab 21
Elementos básicos
Números, Vetores e Matrizes
Uma matriz pode ser
Um escalar (número): matriz com dimensão 1 x 1
Um vetor linha: matriz 1 x n
Um vetor coluna: matriz n x1
Uma matriz bidimensional: matriz n x m
Uma matriz multidimensional: matriz com dimensão 
n1 x n2 x n3 x ... nm
Último 
valor 
calculado
Casa 
decimal
No ambiente do Scilab digite:
--> 10
ans =
10
--> 
--> p=%pi
p =
3.1415927
--> 
Introdução ao Scilab 22
Números, Vetores e Matrizes
O Scilab reconhece vários tipos de 
números:
Real: 4.607, - 199.34, 
Complexo: 2 + 3i , i=j=sqrt(-1)),
Literal: “nome”
Lógico: V/F
Introdução ao Scilab 23
Exemplo 
Calcular a equação do segundo grau: ax2 + bx + c. 
As raízes da equação são dadas por: 
a
acbb
xx
2
4
,
2
21
−±−
=
Resolvendo a seguinte equação:
x2 + 4 x + 13 = 0 
-- > a = 1, b = 4 , c = 13
-- > x1 = (-b + sqrt (b^2 – 4 * a * c)) / (2 * a)
-- > x2 = (-b - sqrt (b^2 – 4 * a * c)) / (2 * a)
O Scilab apresenta como solução:
x1 = -2.00 + 3.000i
x2 = -2.000 – 3.000i
Introdução ao Scilab
Z = a + %i*b
� Exercício:
Dados os seguintes números complexos, 
Z1 = 3 + 5i; Z2 = 7 + 3i
execute as seguintes operações:
a) Z1 + Z2;
b) Z1 * Z2;
c) Z1 + sqrt(-20);
d) Calcule os módulos de Z1 e Z2 e compare com 
abs(z);
Lembre-se 22|| baz +=
Números complexos
Vetores e matrizes
• As grandezas vetoriais podem ser criadas 
colocando-se seus componentes entre 
colchetes [ ]
• Os componentes de um vetor podem ser 
separados por vírgula, espaço ou por 
ponto-e-vírgula.
Introdução ao Scilab
•
Vetores
Declaração de vetores:
X = [ x1 x2 x3 ...] vetor linha
X = [x1;x2;x3;...] vetor coluna
Transposição de vetores: X’
Exercícios:
Verifique a diferença entre: x = [1 2 3] e x = [1;2;3] 
Dados os vetores:
x = [1,2,3,4,5] e y = [2,4,6,8,10]
Calcule:
a) z = x + y;
b) z = x*y;
c) Formas transpostas de x e y;
d) Dados z1 = x*y’; e z2 = x’*y;
Verifique se z1 = z2.
Introdução ao Scilab 27
Exemplo de função com vetor
--> x=0:0.1:10;
--> plot (x,sin(x))
--> z=cos(x);
--> plot (x,z)
0 1 2 3 4 5 6 7 8 9 10
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
0 1 2 3 4 5 6 7 8 9 10
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
Introdução ao Scilab 28
Exemplo
-->g
!--error 4
undefined variable : g
-->g = 1:5
g =
1. 2. 3. 4. 5.
-->g*g
!--error 10
inconsistent multiplication
Introdução ao Scilab
Algumas funções elementares
imag(x): Mostra a parte imaginária de um complexo
real(x): Mostra a parte real de um complexolog(x), log10(x), log2(x): Logaritmos natural, base 10 e base 2
modulo(x,y): Mostra o resto da divisão de x por y
abs(x): Retorna o valor absoluto (se x é real) e o módulo se x é
complexo)
round(x): Arredonda o valor de x para o inteiro mais próximo
floor(x): Arredonda para o menor inteiro
ceil(x): Arredonda para o maior inteiro
sqrt(x): Calcula a raiz quadrada de x
cos(x), sin(x), tan(x), cotg(x): Retorna cosseno, seno, tangente 
ou cotangente de x (x deve estar em radianos)
acos(x), asin(x), atan(x): Retorna o ângulo (em radianos)
Introdução ao Scilab
Algumas funções elementares
abs(x): Retorna o valor absoluto (se x é real) e o módulo 
se x é complexo)
acos(x), asin(x), atan(x): Retorna o ângulo (em radianos)
ceil(x): Arredonda para o maior inteiro
cos(x), sin(x), tan(x), cotg(x): Retorna cosseno, seno, 
tangente ou cotangente de x (x deve estar em radianos)
exp(x): Exponencial (e) de um valor x.
factorial(x): I Fatorial (e) de um valor x.
floor(x): Arredonda para o menor inteiro
imag(x): Mostra a parte imaginária de um complexo
log(x), log10(x), log2(x): Logaritmos natural, base 10 e 
base 2
modulo(x,y): Mostra o resto da divisão de x por y
real(x): Mostra a parte real de um complexo
round(x): Arredonda o valor de x para o inteiro mais 
próximo
sqrt(x): Calcula a raiz quadrada de x
Introdução ao Scilab
Programando com o Scilab
� Características do Scilab
Interpretador de comandos e por isso o 
código gerado não precisa ser compilado.
Facilidade e simplicidade da linguagem 
estruturada.
Não há necessidade de declaração prévia 
das variáveis.
Introdução ao Scilab
scripts
� Scripts são arquivos de texto que contém
comandos que seriam usados em um prompt do 
Scilab.
� Por convenção estes arquivos possuem
extensão .sce ou .sci
� Os arquivos são criados no editor de texto do 
Scilab, o Scipad (ou em qualquer outro editor 
de texto).
� Os arquivos são executados no Scilab com o 
comando exec, 
Introdução ao Scilab
Exercício
� Faça um programa em Scilab que encontre 
a média de duas notas de vários alunos.
� O script deve ser digitado em um editor de 
textos e salvo com a extensão .sce, por
exemplo media.sce.
� Para executar no Scilab, digite: exec 
(‘media.sce’).
� Note que você deve estar no diretório em
que o arquivo media.sce se encontra.
Introdução ao Scilab 34
Exemplo
// Programa para calcular a media de duas notas
clear
cont = 0;
fim = "s"
while fim == "s" | fim == "S"
nota1 = input('Digite a primeira nota: ');
nota2 = input('Digite a segunda nota: ');
media = (nota1 + nota2)/ 2;
if media >= 7 
resultado = ' aprovado.';
else
resultado = ' reprovado. ';
end
printf ( "\n Média: 1.2f . Aluno: %s \n\n“, media, resultado) 
cont = cont + 1;
fim = input('Para continuar, digite s: ', "s");
end
disp (cont)
Introdução ao Scilab 35
Exemplo Media
Introdução ao Scilab 36
Exemplo Exec...
Media
Introdução ao Scilab 37
Operadores Relacionais
Operador Resultado
== igual a
~= , <> diferente de 
> maior do que
< menor do que
>= maior ou igual a
<= menor ou igual a 
= é usado para atribuição e não para comparação 
Introdução ao Scilab 38
Operadores Lógicos
Operador Descrição
& e
| ou 
~ não
A
F
F
V
V 
B
F
V
F
V 
A & B
F
F
F
V 
A | B
F
V
V
V 
~A
V
V
F
F 
~B
V
F
V
F 
Tabela Verdade dos operadores &, | e ~
Introdução ao Scilab 39
Comandos de controle de fluxo - if
Formatos: 
if condição
comandos1;
else
comandos
end
if condição1
comandos1;
elseif condição2
comandos2;
else
comandos3
end
if condição
comandos;
end
Introdução ao Scilab 40
Exemplo do comando if
Exemplo:
x = -1;
if x < 0 then
y = 2*x;
else
y = x;
end
disp(y);
x = 10;
if x < 0 then
y = -x;
elseif x == 1
y = x;
elseif x == 2
y = 2*x;
else
y = 5*x;
end
disp(y);
Introdução ao Scilab 41
Comandos de controle de fluxo – select
Formato: 
select var
case expr-1,
comandos1
case expr-2,
comandos2
...
else
comandos
end
O valor da variável var é comparado às expressões, se os valores
são iguais, a seqüência correspondente é executada.
Introdução ao Scilab 42
Exemplo do comando select
// Exemplo de case
A=input('Digite um número')
select A
case 1,
disp('A vale 1')
case 2,
disp('A vale 2')
else
disp('A nao é nem 1 nem 2')
end
Comandos de controle de fluxo - for
Formato: 
for inicio : incremento : fim
comandos;
end
Exemplo:
a = 0;
for i=1:3
a = a+1;
end
Introdução ao Scilab 43
L = list(2,[1 2; 3 4],'elemento');
for k=L
disp(k);
end
Introdução ao Scilab 44
Exemplo do comando for
// Gera e mostra uma matriz
n=3;m=3;
for i=1:m
for j=1:n
a(i,j)=i+j; 
end
end
s=sprintf( '\n Matriz A:a(i,j)=i+j\n‘ );
disp(s);
disp(a);
Introdução ao Scilab 45
Comandos de controle de fluxo - while
Formato: 
while condição
comandos;
end // Exemplo while 1
n=1;
x=input ();
while n<=x
n=n+1;
end
disp(“ final”);
disp (n)
Introdução ao Scilab 46
Exemplo do comando while
// Exemplo while 3
x =1, v = []
while x <= 16
v = [v x]; x = x*2;
end
// Exemplo while 2
n=1;
while n<=23
n=n+1;
end
printf(‘\n final: %d’,n);
Introdução ao Scilab 47
Funções de entrada - input
input( )
possibilita a interação entre o usuário e o 
programa 
Exemplo: 
Receber um dado numérico
nu = input( ‘Digite um numero qualquer: ’ )
Receber um dado texto
tx = input( ‘Digite a resposta: ’,’s’ )
variável stringcomando de 
atribuição
solicita ao usuário que 
forneça algum dado de 
entrada
Introdução ao Scilab 48
Funções de Saída - disp
disp(variável) ou disp(“texto”)
exibe na tela o valor da variável sem mostrar seu nome 
ou exibe o texto ou string colocado entre aspas. 
Exemplo:
disp(‘Media Geral ’) // exibe a frase Media Geral
i = 4
disp(i) // exibe o valor armazenado na variável i (4)
nome = "maria"; 
disp ("Seu nome é " + nome) // concatena os strings
v=10
disp ("A velocidade final é " + string(v)) 
// converte numero em string e concatena
Introdução ao Scilab 49
Funções de Saída - printf
printf (formato, dado)
exibe valores e texto e permite a formatação dos valores
formatação = cadeia de caracteres descrevendo como os dados devem ser exibidos.
Exemplo:
printf ( "\n O valor de pi = %f \n\n",%pi ) 
printf ( "O valor de pi = %6.2f \n ",%pi )
Caractere de 
formatação
Resultado
%s indica como cada variável da lista
de dados será exibido dentro da string de formatação 
%d ou %i Exibe o valor como inteiro
%f ou %x.yf Exibe o valor em formato de ponto flutuante
%s Exibe o valor de um literal
\n Muda de linha
\t Insere espaço
Introdução ao Scilab 50
Exemplo
// Programa para calcular a media de vários alunos
clear
totalAlunos = input('Digite o numero de alunos: ');
for cont = 1:totalAlunos
nota1 = input('Digite a primeira nota: ');
nota2 = input('Digite a segunda nota: ');
media = (nota1 + nota2)/ 2;
if media >= 7 
resultado = ' aprovado.';
else
resultado = ' reprovado. ';
end
printf ("\n O aluno %d \t teve média %.2f \t e sua 
situação é %s", cont, media, resultado)
// exibe a palavra Aluno, o número, a média e o resultado
end
Introdução ao Scilab 51
Exemplo
// Programa para calcular a media de duas notas
clear
cont = 0;
fim = "s"
nota1= -1;
nota2 = -1;
while fim == "s" | fim == "S"
while nota1 < 0 | nota1 > 10
nota1 = input('Digite a primeira nota: ');
if nota1 < 0 | nota1 > 10
disp ('Nota inválida')
end
end
while nota2 < 0 | nota1 > 10
nota2 = input('Digite a segunda nota: ');
if nota2 < 0 | nota1 > 10
disp ('Nota inválida')
end
end
Introdução ao Scilab 52
Exemplo
// Programa para calcular a media de duas notas - continua
media = (nota1 + nota2)/ 2;
if media >= 7 
resultado = ' aprovado.';
else 
resultado = ' reprovado. ';
end 
printf "\n Média %.2f \t %s”, media, resultado)
cont = cont + 1;
fim = input('Para continuar, digite s: ', "s");
End
printf "\n Total de aluno(s) processados %.d \n”, cont)
Introdução ao Scilab
Funções
� Variáveis definidas dentro do escopoda
função (variáveis locais) não permanecem no 
ambiente após a execução da função.
� Uma função pode ser definida de três formas:
no ambiente Scilab;
usando o comando deff ou
digitando o texto no Scipad e clicando no menu
Execute, opção load into Scilab
Introdução ao Scilab
Funções
� Definição
function [y1,...,yn]= nome_da_funcao(x1,...,xm)
instrucao_1
instrucao_2
...
instrucao_p
endfunction
onde:
x1,...,xm são os argumentos de entrada
y1,...,yn são argumentos de saída
instrucão_1,...,instrucao_p são as instruções ex
ecutadas pela função.
Introdução ao Scilab
Funções - Exemplo
Definir uma função que converte um número complexo da 
forma cartesiana para a polar.
1 (Salve em: cart_to_polar.sci)
function [mod,ang] = cart_to_polar(re,im)
mod = sqrt(re^2 + im^2);
ang = atan(im/re) * 180/%pi;
endfunction
2. (Salve em program_chama_funcao.sce)
exec(' cart_to_polar.sci');
z = 2 + 2*%i;
[mod,ang] = cart_to_polar(real(z),imag(z));
disp(mod);
disp(ang); 
Introdução ao Scilab
Funções - Exercícios
1. Crie uma função que calcule as raízes de 
uma equação do segundo grau usando a 
fórmula de Báskara. Desenvolva um 
programa para a função e um para a 
execução da função.
2. Crie uma função que calcule o fatorial de 
um número usando o comando de iteração
for. Faça o mesmo usando o comando
while.
Operações e estruturas básicas
• As grandezas vetoriais podem ser criadas 
colocando-se seus componentes entre 
colchetes [ ]
• Os componentes de um vetor podem ser 
separados por vírgula, espaço ou por 
ponto-e-vírgula.
Introdução ao Scilab
•
Vetores
Declaração de vetores:
X = [ x1 x2 x3 ...] vetor linha
X = [x1;x2;x3;...] vetor coluna
Transposição de vetores: X’
Exercícios:
Verifique a diferença entre: x = [1 2 3] e x = [1;2;3] 
Dados os vetores:
x = [1,2,3,4,5] e y = [2,4,6,8,10]
Calcule:
a) z = x + y;
b) z = x*y;
c) Formas transpostas de x e y;
d) Dados z1 = x*y’; e z2 = x’*y;
Verifique se z1 = z2.
Introdução ao Scilab 59
Exemplo
-->g
!--error 4
undefined variable : g
-->g = 1:5
g =
1. 2. 3. 4. 5.
-->g*g
!--error 10
inconsistent multiplication
Introdução ao Scilab
•
Vetores
V = Valor_inicial : incremento : Valor_final
Exemplos:
A1 = 1:10
B1 = 1:2:10
C1 = 1:0.2:10
D1 = 10:-1:1
E1 = 1:%pi:20
F1 = 0:log(%e):20
G1 = 20:-2*%pi:-10
Introdução ao Scilab
•
Vetores
V2 = linspace (Valor_inicial, Valor_final,
quantidade de elementos):
Exemplos:
A2 = linspace (1 ,10,15)
B2 = linspace ( 1,2,10)
C2 = linspace ( 1,0.2,10)
D2 = linspace ( 10,-1,1)
E2 = linspace ( 1,%pi,20)
F2 = linspace ( 0,log(%e),20)
G2 = linspace ( 20,-2*%pi,10)
Introdução ao Scilab
Operações com vetores
� Dimensão: length(x)
� Número de linhas e colunas: [nr,nc] = size(x)
� Elementos iguais a 1: x = ones(N,1)
� Vetores nulos: x = zeros(N,1)
� Vetores com valores aleatórios: x =rand(N,1)
� Apaga elemento: X(i) = []
� Insere elemento i no final: X = [X i]
� Acessa último elemento: X($)
� Acessa elementos entre n e m: X(n:m)
� Agrupa dois vetores: c = [x y]
Introdução ao Scilab
Operações com vetores
� Valor mínimo: min(x) 
� Valor mínimo e posição relativa: [V,P] = min(x)
� Valor máximo: max(x) 
� Valor máximo e posição relativa: [V,P] = max(x)
� Mediana: median(x)
� Soma dos elementos: sum(x)
� Multiplicação dos elementos: prod(x) 
� Ordenação dos elementos: sort(x)
Introdução ao Scilab
Operações com vetores
Exercício:
1. Crie:
a) Um vetor unitário com 10 elementos
b) Um vetor nulo com 5 elementos
c) Um vetor com 10 elementos aleatórios
d) Verifique suas dimensões
2. Dado o vetor X = [1 2 3 4 5];
a) Insira o valor 10 no final
b) Apague o quinto elemento do vetor
c) Atribua valor zero aos elementos entre 2 e 4
3. Dados os vetores 
crie um vetor Z que seja dado pela união de X e Y.
X = [ e sin( ) log(10)]
Y = [10,3 1,1 -2,2]
pi pi
Introdução ao Scilab 65
Exercício
1. Desenhe a função f(x) = 2e-0,2x para o intervalo 0≤x≤10.
2. Suponha que u = 1 e v = 3. Avalie as seguintes expressões.
a) 4u b) _2v-2___ c) v3___ d) 4_ Πv 
3v (u + v)2 v3 – u3 3
3. Digite essas declarações. Que resultado obtém?
--> // criar um array de entrada entre -2*pi e 2*pi
--> t = -2*%pi : %pi/10 : 2*%pi;
--> // calcular |sin(t)|
--> x = abs(sin(t));
--> // plot resultado
--> plot (t,x);
Introdução ao Scilab
Matriz
� Uma matriz geral consiste em m*n números
dispostos em m linhas e n colunas:
Introdução ao Scilab
Matriz
No Scilab:
-->M = [1 2 3; 4 5 6; 7 8 9]
M =
1. 2. 3.
4. 5. 6.
7. 8. 9.
Introdução ao Scilab
Operações com matrizes
� Matrizes com elementos unitários: A = ones(M,N)
� Matrizes com elementos nulos: B = zeros(M,N)
� Matriz identidade: A = eye(N,N)
Exercício
1. Dadas as matrizes
A = [1 2 3;4 5 6]; e B = [7;8;9]
Determine:
a) A*B
b) B*A
c) A*identidade(A)
d) A*ones(A)
e) A*ones(A)’ + identidade(A)
Introdução ao Scilab
Operações 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(:,$)
Exercício:
1. Dada a matriz A = [2 4 6;8 10 12; 1 2 3]
a) Atribua valor zero à linha 3;
b) Multiplique a linha 2 por 10;
c) Remova a última linha
d) Insira o vetor B = [1 2 3] na última linha de A
Introdução ao Scilab
Operações com matrizes
� Acesso a um conjunto de linhas: A(:,[i:j])
� Acesso a um conjunto de colunas: A([i:j],:)
� Matriz com número aleatórios: A = rand(N,M)
Exercício:
1. Crie uma matriz 5X5 de números aleatórios.
a) Atribua valor 0 à coluna 2.
b) Multiplique os elementos de 2 a 4 da coluna 3 por 10.
c) Divida os elementos de 1 a 3 da coluna 5 por 5.
d) Remova a coluna 3.
e) Remova a linha 2.
Introdução ao Scilab
Operações com matrizes
� Matrizes com elementos unitários: A = ones(M,N)
� Soma: C = A + B
� Multiplicação: C = A*B
� Multiplicação por um escalar: B = aA
� Matriz complexa: C = A + B*%i (A e B reais)
� Matriz transposta: C = A’
� Determinante: d = det(A)
� Diagonal: d = diag(A).
Exercícios: Dadas as matrizes
1 3 4 6 8 9
2 3 4 9 1 3
3 3 3 6 5 3
8 8 7 9 9 2
9 8 2 3 4 1
1 1 3 8 7 9
A=
2 2 2 3 4 5
9 0 0 1 2 3
0 1 2 3 7 8
1 9 2 3 5 6
8 9 0 1 2 3
4 2 3 4 5 5
B=
Calcule:
a) C = A + B
b) C = A*B
c) C = 10*A + 5*B
d) C = A + B*%i
e) C = A’ + rand(B)
f) Determinante de A
g) Determinante de B
h) Diagonal de A
Introdução ao Scilab
Matrizes simbólicas
Uma matriz simbólica pode ser construída com 
elementos do tipo string:
--> M =['a' 'b';'c' 'd'] ;
Se atribuídos valores às variáveis pode-se visualizar a 
forma numérica da matriz com a função evstr():
Exemplo:
--> a = 1;
--> b = 4;
--> c = 3;
--> d = 5;
--> evstr(M);
Introdução ao Scilab
Matrizes: operadores especiais
Operador \: divisão à esquerda.
Seja Ax=b um sistema de equações lineares escrito na
forma matricial, sendo A a matriz de coeficientes, x
o vetor da incógnitas e b o vetor dos termos
independetes:
Introdução ao Scilab
Matrizes: operadores especiais
Solução do sistema:
x=A-1b (inversa de A multiplicada pelo vetor b)
--> A=[1 3;3 4];b=[5;2];
--> x=inv(A)*b
ou
--> x=A\b
Exercício:
Resolva o sistema linear. 
Substitua as soluções na equação para confirmação
a solução.
2X + 3y + 3z = 2
4x + 3y+ 2z = 1
3x + 7y + 9z = 5
1x + 3y = 5
3x + 4y = 2
Introdução ao Scilab
Matrizes: operadores especiais
Operador . (usado com outros operadores para
operações 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 
Introdução ao Scilab 76
Sistemas lineares
x1 + 2x2 + x3 = 5 1 2 0 x1 5
-x1 +5x2 - 3x3 = 0 -1 5 -3 x2 = 0
4x1 - 2x2 + x3 =3 4 -2 1 x3 3
A * X = B
Solução : X = A-1. B
--> A=[1 2 0;-1 5 -3;4 -2 1]
--> B=[5; 0; 3]
--> X=A\B
--> Y=inv(A)*B
Introdução ao Scilab 77
Expressões
Exemplo: resolver o sistema linear-x1 + x2 + 2x3 = 2
3x1 - x2 + x3 = 6
-x1 + 3x2 + 4x3 = 4
Introdução ao Scilab 78
Expressões
Exemplo: resolver o sistema linear
-x1 + x2 + 2x3 = 2
3x1 - x2 + x3 = 6
-x1 + 3x2 + 4x3 = 4
--> A = [-1 1 2; 3 –1 1; -1 3 4]
A =
-1 1 2
3 -1 1
-1 3 4
--> b = [2; 6; 4]
b =
2
6
4
--> x = A\b
x =
1.
-1.
2.
Introdução ao Scilab 79
Expressões
Resolva o sistema linear
Introdução ao Scilab 80
Polinômios
� Função poly(a, x, ‘flag’)
a: matriz de número reais
x: símbolo da variável
flag: string ("roots", "coeff"), por default seu 
valor é "roots". 
Introdução ao Scilab 81
Polinômios
Dado p1 =
-- > p1 = poly([1, -6, -72, -27], "x", "coeff")
p1 =
2 3
1 - 6x - 72x - 27x
-- > r = roots(p1) // obtendo as raízes do polinômio
r =
0.0824886
- 0.1743828
- 2.5747724
-->p2 = poly (r, "x", "roots") // definindo pelas raízes 
p2 =
2 3
- 0.0370370 + 0.2222222x + 2.6666667x + x 
Introdução ao Scilab 82
Polinômios
Polinômio definido pelas suas raízes
-->p = poly([1 2], "s")
p =
2
2 - 3s + s
-->
Com a função roots, comprova-se que as raízes 
de p são, realmente, 1 e 2,
-->roots(p)
ans =
1. 
2. 
Introdução ao Scilab 83
Polinômios
Polinômio criado a partir dos seus coeficientes.
Ex.: criar o polinômio q = 2s + 1 
-->q = poly([1 2], "s", "coeff")
q =
1 + 2s
-->roots(q) 
ans =
- 0.5
Introdução ao Scilab
Polinômios
Exemplo
--> y = poly([1 2 3], ‘x’, ‘coeff’)
ou: --> x = poly(0,’x’); y = 1+2*x + 3*x^2;
Exercício:
Dados os polinômios:
y = 1 + 4x + 5x2 + 6x3
z = 3x + 5x3 + 7x4
Calcule:
a) y + z
b) y*z
c) y2 + 3z
d) z/y
e) z*y/(z3)
Introdução ao Scilab
Polinômios
roots(z): calcula as raízes de um polinômio
[r,q] = pdiv(y,z): efetua a divisão e calcula 
quociente e resto
coeff(y): retorna os coeficientes do polinômio.
Exercício:
Dados os polinômios:
y = 5 + 3x + 10x2 + 8x3 + 10x4 + 6 x5
z = 2x + 3x3 + 4x4 + 5x5
Calcule:
a) suas raízes
b) os coeficientes
c) o resto e o quociente das divisões:
y/z e z/y
Introdução ao Scilab
Matrizes de polinômios
Os elementos da matriz podem ser polinômios:
Exemplo:
--> s = poly(0, ‘s’);
--> A = [1-2*s+s^3 3*s+4*s^2; s 2*s] 
Exercício:
Dadas as matrizes de polinômios:
A = [2*x^2 + 3*x x;1 x^3+2];
B = [3*x^4 + x^2 x^5;8*x + 1 5];
Calcule:
A*B
A/B
Determinantes de A e B
Introdução ao Scilab
Matrizes de polinômios
Se A é uma matriz de polinômios:
A = A(‘num’): retorna apenas os numeradores
A = A(‘den’): retorna apenas os denominadores
Exemplo:
s = poly(0, ‘s’);
A = [(1+2*s+3*s^3)/(s+2) 3*s+1/(2*s+1);
s^4/(s^2+2) 3*s^2+4*s^3]
N = A(‘num’);
D = A(‘den’);
Introdução ao Scilab 88
Polinômios
-->p = poly ([5, -3, 1], “x”, “coeff”);
// x^2 - 3*x + 5 definindo o polinômio
p =
2
5 - 3x + x
-->horner(p, 2) // avaliando o polinômio em x = 2
ans =
3.
-->
Introdução ao Scilab 89
Exercícios
1. Desenvolva uma solução em SCILAB para 
encontrar as raízes da equação 
y= 2x2 - 3x + 1
2. Apresente o gráfico da equação com 30 
pontos entre 0 e 5 
Introdução ao Scilab 90
Exercícios
1. Resolva o sistema linear 2x + 2y + 2z = 20 
2x – 2y + 2z = 8 
2x – 2y – 2z = 0
2. Calcule o seno, o coseno, a tangente, a raíz quadrada e a raíz
cúbica de x/2.
3. Calcule o logaritmo e a raíz quadrada de -1.
4. Calcule o valor da função ex em 100 pontos do intervalo [-1 . 
. . 1] e apresente o gráfico da função
5. Calcule o valor da função sin(x+pi/10) . cos(x) no entre -pi e 
pi, considerando um incremento de 0.1 entre os pontos.
6. Calcule o produto dos polinômios x6 + 10 e x2 - 2x + 3.
7. Obtenha o polinômio cujas raízes são os números 1, 2 e 3.
8. Calcule os zeros do polinômio p(x) = x3 + 4x2 - 3x + 1.
Introdução ao Scilab
Derivadas
Derivada é o coeficiente angular da reta tangente ao gráfico de 
uma função f(x), no ponto x0
Cálculo da derivada: derivat(p)
onde p é o polinômio.
Avaliação da derivada em um ponto: horner(d,x)
onde d é a derivada do polinômio p e x é o valor da variável.
Exemplo:
Dada a função − 0.5x5 + 3x2 + 2x + 10, determine:
a) o valor da função para x = 2.5
b) a derivada de f(x)
c) o valor da derivada para x = 2.5.
Introdução ao Scilab
Derivadas - Exemplo
Dada a função − 0.5x5 + 3x2 + 2x + 10, determine:
a) o valor da função para x = 2.5
b) a derivada de f(x)
c) o valor da derivada para x = 2.5.
-->p = poly ([10 2 3 0 0 -0.5], "x", "coef")
p =
2 5
10 + 2x + 3x - 0.5x
-->pt = horner (p, 2.5)
pt =
- 15.078125
-->d = derivat(p)
d =
4
2 + 6x - 2.5x
-->ptd = horner (d, 2.5)
ptd =
- 80.65625
Introdução ao Scilab
Integrais
A integral de uma função f(x) é outra função, I(x), tal que a 
sua derivada, I’(x), é igual à função f(x)
Integral definida é aquela restrita a um determinado intervalo 
de x, x0 ≤x ≤ x1
Cálculo da integral: intg(x0 ,x1,f)
onde x0 é o limite inferior e x1 é o limite superior da integral.
Exemplo
Dada a função f(x) = sin(x), determine I(x), onde:
-->function fx=f(x), fx=sin(x),endfunction
-->intg(0,1,f)
ans =
0.4596977 
Introdução ao Scilab
Derivadas - Exemplo
Dada a função − 0.5x5 + 3x2 + 2x + 10, determine:
a) o valor da função para x = 2.5
b) a derivada de f(x)
c) o valor da derivada para x = 2.5.
-->p = poly ([10 2 3 0 0 -0.5], "x", "coef")
p =
2 5
10 + 2x + 3x - 0.5x
-->pt = horner (p, 2.5)
pt =
- 15.078125
-->d = derivat(p)
d =
4
2 + 6x - 2.5x
-->ptd = horner (d, 2.5)
ptd =
- 80.65625
Introdução ao Scilab
Listas
agrupamento de objetos não necessariamente do mesmo tipo.
L = list(elemento1, elemento2, elemento3, …elementoaN)
Exemplo:
L = list(23,1+2*%i,'palavra',eye(2,2))
-->L
L =
L(1)
23.
L(2)
1. + 2.i
L(3)
palavra
L(4)
1. 0.
0. 1.
[23, 1+2i, ‘palavra’, 1 00 1 ]L=
Introdução ao Scilab
Listas
Pode se criar listas dentro de listas (sublistas).
Exemplo:
L = list(23,1+2*%i,'palavra',eye(2,2))
L(4) = list('outra palavra',ones(2,2))
Elementos dentro da lista da lista: 
L(4)(1)
L(4)(2)
Agrupando duas listas:
L1 = list(5,%pi, ‘velocidade’, rand(2,2));
L2 = list(1+2*%i,ones(3,3), ‘aceleração’);
L = list(L1,L2);
Introdução ao Scilab
Gráficos
Gráficos bidimensionais:
plot2d (x,y,style,xtitle,rect,frameflag,nax,axesflag,logflag,leg)
opcionais
Exemplo:
x = [-2*%pi:0.1:2*%pi];
y = sin(x);
plot2d(x,y);
plot2d(x,y,-1);
Exercício
Detalhe cada elemento opcional do comando plot2d
Introdução ao Scilab
Gráficos – Comandos básicos
clf: limpa a tela, evitando que o próximo gráfico se 
sobreponha ao anterior
xbasc ou xbasc( ): limpa o ambiente gráfico e apaga os
gráficos a ele associados
xtitle (‘titulo’): apresenta o título do gráfico
legend(‘legenda1’, ‘legenda2’,…)
Exemplo:
t = 0:0.1:10;
S = 5 + 10*t + 0.5*2*t.*t;
V = 10 + 2*t;
plot2d(t,S,-2);
plot2d(t,V,-4);
xtitle(‘Cinematica’);
legend(‘Posição’, ‘Velocidade’);
Introdução ao Scilab
Gráficos
Gráficos tridimensionais:
plot3d (x,y, z, theta, alpha, leg, flag, ebox)
opcionais
Exemplo:
Construa o gráfico, considerando as variávies:
x = −2 : 0.1 : 2,
y = −2 : 0.1 : 2, 
z = (x2)’ — y3.
Exercício
Detalhe cada elemento opcional do comando plot3d
-->x = -2 : 0.1 : 2;
-->y = -2 : 0.1 : 2;
-->z=(x^2)' * x^3;
-->plot3d(x,y,z)
Introdução ao Scilab
Gráficos
Outros gráficos:
bar (x,width,color,style) ou bar (x,y,width,color,style)
barh (x,width,color,style) ou barh (x,y,width,color,style)
pie (x,[sp],[txt])
Exemplo:
-->x = [1, 2, 3, 4, 5]; y = [5, 3, 1,-1, 1];
-->bar(x);
-->barh(x,y,'red')
-->pie(x)
-->pie(x,[0,1,0,0,1], ['um','dois','tres','quatro','cinco'])
Exercício
Detalhe cada elemento opcional dos comandos bar, bar e pie
Introdução ao Scilab
Gráficos – Comandos básicos
subplot: divide um janela de um gráfico em
sub-graficos
Exemplo:
subplot(221)
plot2d(x,sin(x))
subplot(222)
plot2d(x,cos(x))
subplot(223)
plot2d(x,tan(x))
subplot(224)
plot2d(x,sin(x).*cos(x))
Funções Matemáticas Comuns
Funções de Arredondamento Funções de Manipulação de String
Constantes Especiais
Introdução ao Scilab
Operadores matriciais
Introdução ao Scilab
Operações com polinômios

Outros materiais