Buscar

Introdução ao SciLab

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Introdução ao Scilab
*
Introdução ao Scilab
Profª Gilka Rocha Barbosa
*
Introdução ao Scilab
*
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
*
*
Introdução ao Scilab
*
Introdução ao Scilab
*
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).
*
Introdução ao Scilab
*
Exemplo 1: Asembly 
Trecho de código em C
a=5;
b=10;
c=a+b;
Código em Assembly (MIPS)
ADDi $t0,$zero,5 //Adiciona-se ao registrador t0 o valor 5
ADDi $t1,$zero,10 //Adiciona-se ao registrador t1 o valor 10 
ADD $t2,$t0,$t1 //Soma-se os valores contidos nos registradores t0 (5) e t1 (10) e atribui o resultado ao registrador t2
*
Introdução ao Scilab
*
Exemplo 2: Asembly 
Código em C
A=5;
B=10;
media=(a+b)/2;
Código Assembly (MIPS)
ADDi $t0,$zero,5 //Adiciona-se ao registrador t0 o valor 5
ADDi $t1,$zero,10 //Adiciona-se ao registrador t1 o valor 10
ADD $t2,$t0,$t1 //Somam-se os valores contidos nos registradores t0 (5) e t1 (10) e atribui-se o resultado ao registrador t2
ADDi $t3,$zero,2 //Adiciona-se ao registrador t2 o valor 2 (divisor)
DIV $t2,$t3	//Divide-se o valor contido no registrador t2(50) pelo valor contido em t3 (2)
*
Introdução ao Scilab
*
Introdução ao Scilab
*
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
*
Introdução ao Scilab
*
Linguagens de Programação (LP)
Java
C
C♯
C++
Objective-C
PHP
Visual Basic
Python
Perl
JavaScript
Delphi / Object Pascal
Ruby
Lisp
Transact-SQL
Pascal
Visual Basic .NET
PL/SQL
Logo
Ada
R
*
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
*
Introdução ao Scilab
*
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
*
Acilab
Ambiente
interpreta comandos
oferece um editor para a construção de programas (SciPad / Scinotes)
emite mensagens de erros relativos à aderência à sintaxe da linguagem e a problemas na execução de um programa �
Linguagem
une riqueza de expressão a detalhes sintáticos
exige uma postura paciente em seu aprendizado
envolve uma taxa inicial de memorização
a fluência vem com a prática
*
Introdução ao Scilab
*
Prompt de comando
Barra de menus
Barra de Ferramentas
Ambiente Scilab
*
Introdução ao Scilab
*
Scilab
Mude a pasta para seus arquivos
*
Introdução ao Scilab
*
Teste!!!!!!!!
// Programa para calcular a media de duas notas
clear
clc
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 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
*
Salve com o nome
Media
*
Introdução ao Scilab
*
Introdução ao Scilab
*
Teste!!!!!!!!!!
execute
Media
*
Introdução ao Scilab
*
Introdução ao Scilab
*
Utilização básica
-->help // ou f1
*
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) 
cos(x), sin(x), tan(x), Retorna cosseno, seno ou tangente de x (x deve estar em radianos) 
ceil(x): Arredonda para o maior inteiro 
exp(x): Exponencial (e) de um valor x
factorial(x): 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): Log 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 x para o inteiro mais próximo 
*
Introdução ao Scilab
*
Introdução ao Scilab
*
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
*
Introdução ao Scilab
*
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 (imaginário)
%pi: constante pi
%t: verdadeiro
%f: falso
*
Introdução ao Scilab
*
Introdução ao Scilab
*
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 
; 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
*
Introdução ao Scilab
*
Utilização básica
Adição: +
Subtração: - 
Multiplicação: * 
Divisão à direita: / 
Divisão à esquerda: \ 
Potenciação: ^ ou **
Raiz quadrada: sqrt
Raiz enésima: ^(1/n) 
É capaz de executar matemática elementar como uma calculadora:
-- > 4 * 1 + 6 * 0.5 + 5 * 2
 
*
Introdução ao Scilab
*
Introdução ao Scilab
*
Utilização básica
Expressões podem ser complicadas.
Qual é o valor de x e y após os comandos
	x = 8^1*3 
	y = 2*x*3
 * Parênteses podem alterar prioridades
*
Introdução ao Scilab
*
Introdução ao Scilab
*
Utilização básica
-->a = 2^3*4
 a =
 32. 
 
-->b = 2^(3*4)
 b =
 4096. 
 
-->c = 2^3^4
 c =
 2.418D+24 
 
-->d = (2^3)^4
 d =
 4096
*
Notação Scilab
(Java, C, ...) para 2.418 x 1024
Introdução ao Scilab
*
Introdução ao Scilab
*
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
*
Introdução ao Scilab
*
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
*
Introdução ao Scilab
*
Números, Vetores e Matrizes
O Scilab reconhece vários tipos de números:
Real:	4.607, 	- 199.34, 
Complexo: 2 + 3i (i = sqrt(-1))
Literal: “nome”
Lógico: T/F
*
Introdução ao Scilab
*
Introdução ao Scilab
*
Exemplo 
Calcular a equação do segundo grau: ax2 + bx + c. As raízes da equação são dadas por: 
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
*
Introdução ao Scilab
*
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
*
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
Programas em Scilab são arquivos ASCII (caracteres sem formatação)
Um programa é construído usando o editor SciNotes / SciPad
Os arquivos são executados com o comando exec
*
Introdução ao Scilab
*
scripts
*
Abre o programa editor de textos SciNotes
Abre um programa preexistente
Introdução ao Scilab
*
Introdução ao Scilab
*
Programa da média
*
// indica que o restante da linha é um comentário
Diálogo com o usuário
Diálogo com o usuário
clear – limpa a memória
Clc – limpa a tela
Introdução ao Scilab
*
Gravando (salvando) o programa
*
Introdução ao Scilab
*
Gravando (salvando) o programa 
*
Introdução ao Scilab
*
Introdução ao Scilab
*
Executando o programa
*
Executar..
media
Introdução ao Scilab
*
Introdução ao Scilab
*
Execução do programa
*
Introdução ao Scilab
*
Média...
Quem está aprovado?
*
Introdução ao Scilab
*
Introdução ao Scilab
*
Comandos de controle de fluxo - if 
if condição
 comandos1;
else
 comandos
end
if condição 
 comandos;
end
if condição1
 comandos1;
else
		if condição2
 	 comandos2;
 else
		 comandos3;
	 end
end
*
Introdução ao Scilab
*
Introdução ao Scilab
*
Operadores Relacionais
= é usado para atribuição e não para comparação 
*
Introdução ao Scilab
*
Introdução ao Scilab
*
Operadores Lógicos
*
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
*
Operações lógicas
-->v = %t, f = %f
 v = 
 T 
 f = 
 F 
 -->~v
 ans = 
 F 
 
*
-->v | f
 ans = 
 T 
-->v & f
 ans =
 F 
 -->a = 7; b = 8; x = a > b
 x =
 F 
Introdução ao Scilab
*
Introdução ao Scilab
*
Exemplo do comando if
*
Introdução ao Scilab
*
Introdução ao Scilab
*
Execução do programa
*
Introdução ao Scilab
*
Média...
E se a nota estiver errada?
	.....15, por exemplo
*
Introdução ao Scilab
*
Introdução ao Scilab
*
Comandos de controle de fluxo - while 
Formato: 
 while condição
 comandos;
 end
*
Introdução ao Scilab
*
Introdução ao Scilab
*
Exemplo do comando while
*
Introdução ao Scilab
*
Introdução ao Scilab
*
Execução do programa
*
Introdução ao Scilab
*
// Programa para calcular a media de duas notas
clear
clc
nota1 = input ('Digite a primeira nota: ');
while nota1 < 0 | nota1 > 10
 printf ("\n %.2f - nota inválida", nota1)
 nota1 = input ('Digite a primeira nota: ');
end
nota2 = input ('Digite a segunda nota: ');
while nota2 < 0 | nota2 > 10
 printf ("\n %.2f - nota inválida", nota2)
 nota2 = input ('Digite a segunda nota: ');
end
media = (nota1 + nota2)/ 2;
if media >= 7 then
 result = "Aprovado";
else
 if media < 3 then
 result = "Reprovado";
 else
 result = "em Final";
 end
end
printf ("\n Média = %.2f - Aluno %s \n", media, result)
*
Introdução ao Scilab
*
Média...
E se houver mis de um aluno?
	
*
Introdução ao Scilab
*
Médias....
*
Introdução ao Scilab
*
Médias....
*
Introdução ao Scilab
*
Introdução ao Scilab
*
Execução do programa
*
Introdução ao Scilab
*
Calculando a média geral...
*
// Programa para calcular a media de duas notas
clear
clc
qa = 0; tm = 0;
cont = input ('Para iniciar, digite 0: ');
while cont == 0
 nota1 = input ('Digite a primeira nota: ');
 while nota1 < 0 | nota1 > 10
 printf ("\n %.2f - nota inválida", nota1)
 nota1 = input ('Digite a primeira nota: ');
 end
 
Introdução ao Scilab
*
Calculando a média geral...
*
	nota2 = input ('Digite a segunda nota: ');
 while nota2 < 0 | nota2 > 10
 printf ("\n %.2f - nota inválida", nota2)
 nota2 = input ('Digite a segunda nota: ');
 end
 media = (nota1 + nota2)/ 2;
 qa = qa + 1;
 tm = tm + media;
 
Introdução ao Scilab
*
Calculando a média geral...
*
	if media >= 7 then
 result = "Aprovado";
 else
 if media < 3 then
 result = "Reprovado";
 else
 result = "em Final";
 end
 end
 
Introdução ao Scilab
*
Calculando a média geral...
*
	printf ("\n Média = %.2f - Aluno %s \n", media, result) 
 cont = input ('Para continuar, Digite 0: ');
end
tg = tm / qa;
printf ("\n Média Geral = %.2f ", tg)
Introdução ao Scilab
*
Introdução ao Scilab
*
Execução do programa
*
Introdução ao Scilab
*
Introdução ao Scilab
*
Para pensar...
Quando terminam esses comandos?
1) n = 4;
while n <= 4
		printf ("\n x = %g", n);
 	n = n – 1;
end
2) n = 1;
while n <= 4
		printf ("\n x = %g", n);
end
*
Cuidado com os loops infinitos!
Como você consertaria?
Introdução ao Scilab
*
Comandos de controle de fluxo - for 
Formato: 
 for var = inicio : fim
 comandos;
 end
	for var = inicio : passo : fim
 comandos;
 end
Introdução ao Scilab
*
Introdução ao Scilab
*
Exemplo do comando for
for i = 1:4 
		printf ("\n x = %g", n);
end
for i = 4: -1 :1 
		printf ("\n x = %g", n);
end
*
Introdução ao Scilab
*
Introdução ao Scilab
*
Exemplo do comando for
n = input (“Informe um número”);
f = 1;
for n = 1 : n
		f = f * i;
		printf(“\n %g “, i)
end
printf("\n Fatorial de %g = %g “, n, f); 
*
Introdução ao Scilab
*
Introdução ao Scilab
*
Exemplo do comando for
n=3;
m=2; 
printf("\n
Matriz A:a(i,j)=i+j\n"); 
for i=1:m 
		for j=1:n 
			a(i,j)=i+j; 
		end 
end 
disp(a)
*
Introdução ao Scilab
*
Introdução ao Scilab
*
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 
string
comando de 
atribuição
solicita ao usuário que forneça algum dado de entrada
*
Introdução ao Scilab
*
Introdução ao Scilab
*
Funções de Saída - disp
disp(variável) ou disp(“texto”)
	exibe na tela o valor da variável 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
*
Introdução ao Scilab
*
Funções de Saída - printf
printf (formato, dado)
	exibe valores e texto e permite a formatação
 
Exemplo: 
printf ( "\n O valor de pi = %.f \n\n",%pi ) 
printf ( “\n O valor de pi = %6.2f \n ",%pi )
*
Introdução ao Scilab
*
Introdução à Computação
*
Exercícios – faça programas para:
Dado o raio de uma circunferência, calcular sua área e seu perímetro
Dado um número real x, calcular e exibir as imagens de f(x)=5x4-x3 e de g(x)=5senx-2cosx
Ler dois números inteiros e positivos X e Y e efetuar as operações de adição, subtração, multiplicação, divisão de X por Y e a raiz quadrada do produto de X por Y.
Dada a temperatura de um corpo, em graus Fahrenheit, calcular e exibir o valor da referida temperatura em graus Celsius e em Kelvin. 
Introdução ao Scilab
*
Introdução à Computação
*
Exercícios
Um aluno comprou três itens em uma papelaria. Para cada item são conhecidos: nome, preço e percentual de desconto. Mostrar o nome do item, o preço do item, o preço do item com desconto e o total a pagar
Ler três valores inteiros e distintos (A, B e C) e apresentar o maior valor.
Dados dois valores reais, apresentar a diferença do maior pelo menor. 
Dado um número inteiro positivo, informar se o número lido é par ou ímpar.
Introdução ao Scilab
*
Introdução à Computação
*
Exercícios
Calcular as raízes reais de uma função quadrática, dados os valores de a, b e c. 	
Receba 2 números e, se o primeiro número for maior que zero e menor que 10, mostre a soma destes números; caso contrário, mostre a multiplicação deles.
Receba cinco grupos de 2 números e mostre a soma destes números;
Receba dois números e mostre o maior deles;
Receba três números e mostre-os em ordem crescente. 			
Introdução ao Scilab
*
Introdução à Computação
*
Exercícios
14. Escrever um programa que lê dois números inteiros: inicial e final, e mostra os números inteiros existentes entre o número inicial e o final (inclusive). Crítica: o número final deve ser maior do que o inicial. 
15. Implemente um programa que calcula a soma dos números pares entre dois números lidos (inclusive).
16. Escrever programa para calcular, para N (inteiro) lido, o valor de S, dado por
Introdução ao Scilab
*
Introdução à Computação
*
Exercícios
17. Receba um valor N inteiro e positivo, calcule e mostre o fatorial de N (N!).
18. Leia dez conjuntos de dois valores, o primeiro valor corresponde ao número do aluno, o segundo valor corresponde à sua altura em centímetros. Encontre e mostre o número e a altura do aluno mais baixo e do aluno mais alto.
19.Leia cinco pares de valores (a,b), todos inteiros, positivos, um de cada vez. Mostre os números inteiros pares de a até b (inclusive).
20.Leia o número de termos e um valor positivo para x, calcule e mostre o valor da série: 			
Introdução ao Scilab
*
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 ’
*
Introdução ao Scilab
*
Vetores
 Exercícios:
Verifique a diferença entre: 
a) x = [1 2 3]				 d) xt = x’
b) y = [1,2,3] 				 e) yt = y’
c) z = [1;2;3] 				 f) zt = z’
Dados os vetores k = [1,2,3,4,5] e w = [2,4,6,8,10], calcule:
i = k + w					d) m = x*y’
J = k*w						e) n = x’*y
c) Transpostas de i e j		f) Verifique se m = n	
*
Introdução ao Scilab
*
Introdução ao Scilab
*
Exemplo de função com vetor
--> x=0:0.1:10;
--> plot (x,sin(x))
--> z=cos(x);
--> plot (x,z)
*
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
*
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 vetores
Acessa elementos entre n e m: A(n:m)
Acessa último elemento: A($)
Acesso à coluna j: A(:,j)
Acesso à linha i: A(i,:)
Acesso à última coluna: A(:,$)
Acesso à ultima linha: A($,:)
Agrupa dois vetores: c = [x y]
Apaga elemento: A(i,j) = []
Determinante: d = det(A)
Diagonal: d = diag(A)
*
Introdução ao Scilab
*
Operações com vetores
Dimensão: length(A)
Elementos iguais a 1: U = ones(m,n)
Encontra um elemento: find(A operador elemento) 
Insere coluna no final: A = [A coluna]
Insere elemento i no final: A = [A i]
Insere linha no final: A = [A;linha]
Matriz identidade: A = eye(m,m)
Matriz transposta: C = A’
Multiplicação dos elementos: prod(x) 
Multiplicação elemento: C = A.*B
*
Introdução ao Scilab
*
Operações com vetores
Multiplicação por um escalar: B = a*A
Número de linhas e colunas: [nr,nc] = size(A)
Ordenação dos elementos: gsort(A) 
Soma dos elementos: sum(A) 
Soma: C = A + B
Valor máximo e posição relativa: [V,P] = max(A)
*
Introdução ao Scilab
*
Exercícios
Crie:
Um vetor unitário com 10 elementos
Um vetor nulo com 5 elementos
Um vetor com 10 elementos aleatórios
Verifique suas dimensões
Dado o vetor X = [1 2 3 4 5];
Insira o valor 10 no final
Apague o quinto elemento do vetor
Atribua valor zero aos elementos entre 2 e 4
Dados os vetores 
	X = [ e sin() log(10)]
	Y = [10.3 1 1-2 2]
	crie um vetor Z que seja dado pela união de X e Y.
*
Introdução ao Scilab
*
Introdução ao Scilab
*
Exercícios
Desenhe a função f(x) = 2e-0,2x para o intervalo 0≤x≤10.
	
 Suponha que u = 1 e v = 3. Avalie as expressões
	a) 4u	 b) _2v-2___ c) v3___	 d) 4_v 
 	 3v 	(u + v)2 v3 – u3	 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
*
Exercícios
7. Dadas as matrizes
A = [1 2 3;4 5 6] e B = [7;8;9]
Determine:
A*B
B*A
A*identidade(A)
A*ones(A)
A*ones(A)’ + identidade(A)
8. Dada a matriz A = [2 4 6;8 10 12; 1 2 3]
Atribua valor zero à linha 3;
Multiplique a linha 2 por 10;
Remova
a última linha
Insira o vetor B = [1 2 3] na última linha de A
*
Introdução ao Scilab
*
Exercícios
9. Crie uma matriz 5X5 de números aleatórios.
Atribua valor 0 à coluna 2.
Multiplique os elementos de 2 a 4 da coluna 3 por 10.
Divida os elementos de 1 a 3 da coluna 5 por 5.
Remova a coluna 3.
Remova a linha 2.
*
 
Introdução ao Scilab
*
Exercícios
10. Dadas as matrizes 
Calcule:
C = A + B
C = A*B
C = 10*A + 5*B
C = A + B*%i
C = A’ + rand(B)
Determinante de A
Determinante de B
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
--> w = A\b
--> y = A^(-1)*b
--> bc = A*x
*
Introdução ao Scilab
*
Exercício
1.	Resolva o sistema linear. 
		
		Substitua as soluções na equação para confirmar a solução.
*
Introdução ao Scilab
*
Introdução ao Scilab
*
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= A*X
*
Introdução ao Scilab
*
Introdução ao Scilab
*
Exercício
Resolver o sistema linear
-x1 + x2 + 2x3 = 2 
3x1+ x3 = 6
-x1 + 3x2 + 4x3 = 4
	
*
Introdução ao Scilab
*
Introdução ao Scilab
*
Exercício
Resolver o sistema linear
-x1 + x2 + 2x3 = 2 
3x1+ 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
*
Introdução ao Scilab
*
Exercício
Resolva o sistema linear
*
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
*
Introdução ao Scilab
*
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
*
Introdução ao Scilab
*
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
*
Introdução ao Scilab
*
Polinômios
Polinômio definido pelas suas raízes
-->p = poly([1 2], "s“, “roots”)
p =
 2
	2 - 3s + s
-->
Com a função roots, comprova-se que as raízes de p são, realmente, 1 e 2,
-->r = roots(p)
r =
 1. 
 2. 
*
Introdução ao Scilab
*
Introdução ao Scilab
*
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
-->r = roots(q) 
r =
	- 0.5
*
Introdução ao Scilab
*
Polinômios – Soma, Subtração, Multiplicação, Divisão
-->s = p + q // Adição
s =
 2
	3 - s + s
-->sb = p - q // Subtração
sb =
 	2
	1 - 5s + s
-->m = p * q // Multiplicação
m =
 2 3
	2 + s - 5s + 2s
*
Introdução ao Scilab
*
-->d = p / q // Divisão
d =
		 2
	2 - 3s + s
	-----------
 	 1 + 2s
-->[r, c] = pdiv(p,q) // c=quociente, r=resto
c =
 - 1.75 + 0.5s
r =
 3.75
Polinômios – Soma, Subtração, Multiplicação, Divisão
*
Introdução ao Scilab
*
Polinômios
-->p = poly ([5, -3, 1], “x”, “c”) 	// definindo o polinômio
p =
			 2
	5 - 3x + x
-->h = horner(h, 2) // polinômio em x = 2
h =
	3.
*
Introdução ao Scilab
*
Polinômios
Exemplo
--> y = poly([1 2 3], ‘x’, ‘c’)
ou
--> x = poly(0,’x’)			
--> z = 1+2*x + 3*x^2 
Exercício:
	Dados os polinômios:
y = 6x3 + 5x2 + 4x + 1
z =7x4 + 5x3 +3x
	
	Calcule:
y + z				b) y2 + 3z			 c) z*y/(z3)
d) y*z				e) z/y
*
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 = 6 x5 + 10x4 + 8x3 + 10x2 + 3x + 5
z = 5x5+ 4x4 + 3x3 + 2x
	Calcule:
suas raízes
os coeficientes
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
*
Introdução ao Scilab
*
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
*
Introdução ao Scilab
*
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
*
Introdução ao Scilab
*
Introdução ao Scilab
*
Exercícios
5. Calcule o valor da função 
			sin(x+pi/10) . cos(x) entre -pi e pi, 
	considerando um incremento de 0.1 entre os pontos e apresente o gráfico da função
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) = x6 + 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:
o valor da função para x = 2.5
a derivada de f(x)
o valor da derivada para x = 2.5.
*
Introdução ao Scilab
*
Derivadas - Exemplo
Dada a função − 0.5x5 + 3x2 + 2x + 10, determine:
o valor da função para x = 2.5
a derivada de f(x)
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
*
Introdução ao Scilab
*
Exercício
1. Calcule a derivada de 
 	x6 + 10 
 -------------
 x2 - 2x + 3.
*
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: integrate(expr, v, x0 ,x1 )
	onde x0 é o limite inferior e x1 é o limite superior.
*
Introdução ao Scilab
*
Integrais
Cálculo da integral: integrate(expr, v, x0 ,x1 )
	onde x0 é o limite inferior e x1 é o limite superior.
Ex.: Dada a função f(x) = sin(x), determine I(x), entre 0 e 1, onde :
--> v = integrate('sin(x)','x',0,1)
 v = 
	0.4596977
*
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. 
*
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’,…)
*
Introdução ao Scilab
*
Gráficos – Comandos básicos
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
*
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))
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais