Buscar

CursoSCILAB - 2

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

*
CURSO DE SCILAB 
Prof. Cosme E. Rubio Mercedes
Curso de Engenharia Física, Universidade Estadual de Mato Grosso do Sul - UEMS, cosme@uems.br 
Dourados, Abril de 2013
*
INTRODUÇÃO
 O que é o SCILAB?
 “Software" livre e interativo de alta performance voltado para o cálculo numérico em Engenharia. Integra análise numérica, cálculo com matrizes, processamento de sinais e construção de gráficos.
 Os problemas e soluções são expressos em forma matemática, ao contrário da programação tradicional.
*
 O que é o SCILAB?
 Sistema interativo cujo elemento básico de informação é uma matriz que não requer dimensionamento. Permite a resolução de muitos problemas numéricos em apenas uma fração do tempo que se gastaria para escrever um programa semelhante em Fortran ou C. Os problemas são expressos ou escritos quase exatamente em forma matemática. 
INTRODUÇÃO
*
 Carregando o SCILAB
 No Gerenciador de Programas do Microsoft Windows deve-se abrir o grupo de programas do SCILAB para Windows, que contém seu ícone. Um duplo clique carrega o aplicativo.
Quando é carregado, a interface gráfica para o usuário é mostrada. Na Janela de Comando é exibido o "prompt" -->, usado para escrever comandos e visualização de resultados de operações. 
INTRODUÇÃO
*
Menu Principal
Barra de Ferramentas
 Prompt (Pronto!) do Scilab (seta+cursor): significa que o programa está pronto para receber instruções. Também chamado de linha de comando.
AMBIENTE OU JANELA PRINCIPAL DO SCILAB
*
Prof. Dr. Dalton P. de Queiroz
No menu principal temos as opções: Arquivo – Editar – Preferências – Controle – Aplicativos - ?(ajuda).
Na figura abaixo temos os sub-menus de Arquivo.
INTRODUÇÃO
*
Prof. Dr. Dalton P. de Queiroz
Executar: executa arquivos de scripts e arquivos com instruções de comando de um modo geral.
Abrir um arquivo: carrega arquivos de texto criado no ambiente scilab (.sce e .sci) com o editor.
Carregar ambiente: carrega arquivos binários (de variáveis) salvos com o comando salvar.
Salvar ambiente: salva em disco um arquivo binário contendo variáveis.
Alterar diretório atual: muda o diretório atual, redirecionando o ambiente para um novo local de trabalho.
Exibir diretório atual: exibe o diretório atual de trabalho.
Configuração de página: permite configurar a impressora 
Imprimir: imprime documentos.
Sair: fecha a seção e sai do ambiente do scilab
Teclas
 de atalho
*
Prof. Dr. Dalton P. de Queiroz
Na figura abaixo temos os sub-menus de Editar.
*
Teclas
 de atalho
Recortar: recorta um texto.
Copiar: permite copiar para o clipboard (área de transferência do Windows) o texto selecionado no ambiente.
Colar: cola o que foi previamente copiado.
Esvaziar área de transferência: limpa o clipboard (área de transferência)
Selecionar tudo: seleciona todo o texto atual do ambiente.
INTRODUÇÃO
*
Na figura abaixo temos os sub-menus de Preferências.
*
Prof. Dr. Dalton P. de Queiroz
Cores: permite alterar as cores utilizadas no ambiente do scilab (cor do console (texto) ou a cor de fundo).
Fonte: permite alterar a fonte (tipo, tamanho, etc.)
Mostrar/esconder a barra de ferramentas: comuta entre exibir e ocultar a barra de ferramentas.
Limpar histórico: limpa o histórico das instruções executadas no ambiente.
Limpar o console: limpa o console, mas não apaga os dados da memória.
Console: unidade que permite que um operador se comunique com um sistema de computador
INTRODUÇÃO
*
Prof. Dr. Dalton P. de Queiroz
Na figura abaixo temos os sub-menus de Controle.
*
Retomar: continua a execução de uma instrução depois de uma pausa (pause) ter sido dada ou um pare (stop).
Abortar: interrompe a execução e retorna ao prompt normal do ambiente.
Interromper: interrompe a execução e entra no modo “pause” ( pode ser executada diretamente no prompt do ambiente pressionando-se Ctrl+C).
INTRODUÇÃO
*
Na figura abaixo temos os sub-menus de Aplicativos.
*
SciNotes: carrega o editor de textos do scilab onde podem ser criados scripts de programas e funções.
Xcos: permite criar diagramas de blocos e interfaces gráficas.
Tradutor de Matlab para Scilab: oferece opções de conversões do Matlab para o Scilab.
Gerenciador de módulos – ATOMS: (de AutomaTic mOdules Management for Scilab), permite que o usuário possa baixar, instalar e atualizar de forma automática, os módulos externos que o mesmo deseje utilizar com o programa
Navegador de variáveis: exibe o formato das variáveis no scilab.
Histórico de comandos: grava o histórico de comandos executados no prompt, inclusive marcando as sessões utilizadas com comentários
*
Na figura abaixo temos os sub-menus de ? (ajuda).
*
Prof. Dr. Dalton P. de Queiroz
Ajuda do Scilab: exibe o diretório-raiz de ajuda do scilab, com opção de buscas.
Demonstrações do Scilab: exibe uma janela de demonstrações de comandos do scilab.
Links da Web: exibe várias opções de links.
Sobre o Scilab: mostra uma janela com a versão da ferramenta, incluindo com agradecimentos à relação de pessoas que contribuíram para o seu desenvolvimento.
OBS: A ajuda do scilab é um item muito valioso e deve ser bastante explorado pelo usuário.
INTRODUÇÃO
*
 Execute o Scilab no seu sistema e procure pelo símbolo (prompt): -->
 As operações aritméticas devem ser digitados após o prompt e em seguida tecla-se [ENTER]
Exemplo:
-->5+6/2
ans =
8.
 -->4^2 		// 4 elevado a potência de 2
ans =
16.
USANDO O SCILAB COMO UMA SUPER CALCULADORA
NOÇÕES FUNDAMENTAIS
*
A variável ans (abreviação da palavra inglesa answer) armazena o valor corrente de saída do Scilab. Pode-se usar ans para efetuar cálculos pois armazena o valor do último cálculo realizado. 
Exemplo:
-->4+5
ans =
9.
-->ans+ 3
ans =
12
USANDO O SCILAB COMO UMA SUPER CALCULADORA
NOÇÕES FUNDAMENTAIS
NOÇÕES FUNDAMENTAIS
*
variáveis : nome para uma posição na memória do computador. 
Para atribuir ou modificar a informação contida na variável é usado o comando de atribuição. Usa-se o símbolo = para atribuição.
 
OBS: O símbolo de atribuição (=) não significa igualdade matemática, uma vez que o comando de atribuição i = i+1 é válido, mas não representa igualdade matemática.
 
Exemplo:
-->a = 2		// Atribui 2 para variável a
a =
2.
-->b = 4		// Atribui 4 para variável b
a =
4.
-->area = a*b // Atribui o produto de a e b para a variável area
area =
8.
VARIÁVEIS E O COMANDO DE ATRIBUIÇÃO
NOÇÕES FUNDAMENTAIS
*
OBS.(1): Regras para os nomes de variáveis (identificadores) ;
1. Nomes de variáveis começam com uma letra, seguido de letras, algarismos ou sublinhados. 
2. Caracteres especiais não são permitidos.
3. Caracteres acentuados não são permitidos;
4. Nomes de variáveis são sensíveis a maiúsculas e minúsculas. 
Ex.:
Nomes de variáveis válidos: ALPHA, X, B1, B2, b1, matricula e MEDIA. 
Nomes de variáveis inválidos: 5B, 1b, nota[1], A/B e X@Z.
OBS.(2): A ausência ou presença do ponto e vírgula no final de um comando do Scilab visualiza ou suprime, respectivamente, o resultado do cálculo. 
-->A = 4+4^2;
-->A = 4+4^2
A =
20.
-->a=2;
-->b=4;
-->area=a*b// no resultado (area) o ponto e vírgula foi suprimido para se visualizar o resultado.
area = 
8.
VARIÁVEIS E O COMANDO DE ATRIBUIÇÃO
NOÇÕES FUNDAMENTAIS
*
A+B*C
(NOTA1+NOTA2)/2
1/(a^2+b^2)
 PRIORIDADE: ordem de Avaliação entre Operadores Aritméticos
EXPRESSÕES ARITMÉTICAS
2+10/5 			// 10/5 é avaliada primeiro.
 
A+B/C+D 		// B/C é avaliada primeiro.
 
R*3+Bˆ3/2+1		// Bˆ3 é avaliada primeiro.
NOÇÕES FUNDAMENTAIS
*
Associatividade é a regra usada quando os operadores têm a mesma prioridade. A operação mais a esquerda é avaliada primeiro.
A-B+C+D 	//A-B é avaliada primeiro, porque está mais a esquerda
ATENÇÃO!! potenciação, operação mais a direita deve ser avaliada primeiro: 
 
A^B^C^D	//CˆD é avaliadaprimeiro, porque está mais a direita
ATENÇÃO!! A ordem de prioridade pode ser alterada pelo uso dos parênteses
(A+4)/3		//A+4 é avaliada primeiro devido aos parênteses
(A-B)/(C+D) 	//A-B é avaliada primeiro. Depois a adição e depois a divisão
R*3+B^(3/2)+1	//3/2 é avaliada primeiro
EXPRESSÕES ARITMÉTICAS
NOÇÕES FUNDAMENTAIS
*
Além dos operadores aritméticos podemos usar funções matemáticas. Exemplo:
 
2+3*cos(x)
X^(2*sin(y))
2+3*tan(x)+K^2
EXPRESSÕES ARITMÉTICAS
NOÇÕES FUNDAMENTAIS
*
Funções de Arredondamento
EXPRESSÕES ARITMÉTICAS
Exemplos:
NOÇÕES FUNDAMENTAIS
*
Constantes Especiais do Scilab
EXPRESSÕES ARITMÉTICAS
NOÇÕES FUNDAMENTAIS
*
Formato de Visualização dos Números com o comando format
Exemplo:
-->sqrt(3)
ans =
1.73
	Para aumentar o número de posições para 16, usa-se:
-->format(16)
-->sqrt(3)
ans =
1.7320508075689
O comando format(’e’) mostra os números em notação científica. Exemplo:
-->format(’e’)
-->2*%pi/10
ans =
6.283185307E-01 (6.283185307E-01 significa 6.283185307 × 10−1) 
	
Para retornar ao formato inicial usa-se -->format(’v’) que é chamado de “formato de variável”.
EXPRESSÕES ARITMÉTICAS
NOÇÕES FUNDAMENTAIS
*
Informação composta de caracteres alfanuméricos e/ou caracteres especiais (exemplo, #, $, &, %, ?, !, @, <, ~, etc.). 
Os strings são envolvidos por aspas duplas ou simples. (é melhor usar as aspas duplas que não possui duplo sentido e torna seu programa um pouco mais legível”
 
Exemplos:
-->a = "abcd"
a =
abcd
-->b = ’efgh’
b =
efgh
-->c = "Maria e Jose"
c =
Maria e Jose
STRINGS
NOÇÕES FUNDAMENTAIS
*
Concatenação:junção de dois ou mais strings
-->n = "Pedro"
n =
Pedro
-->m = "Paulo"
m =
Paulo
-->m + n		 // Concatena Paulo com Pedro sem
ans =			 
PauloPedro
-->m + " " + n 	 // Concatena Paulo com Pedro inserindo espaços entre eles
ans = 
Paulo Pedro
-->m +“ “+”e”+” “+n
Paulo e Pedro
 
OBS: armazenar informações que contém as aspas=>repetir as aspas. 
 -->n = "o teorema é "“ a lados iguais opõe-se ângulos iguais “"
n =
o teorema é “ a lados iguais opõe-se ângulos iguais“
STRINGS
NOÇÕES FUNDAMENTAIS
*
Funções Principais de Manipulação de strings
STRINGS
Exemplos:
-->m = "Pedro";
-->length(m) 			// Comprimento da string "Pedro"
ans =
5.
-->a = "a camisa " + string(10) 	// Para concatenar números com strings use a função string()
a =
a camisa 10
-->a = "12" + "34"		// Para somar uma string com um número use evstr()
a =
1234
-->evstr(a) + 10
ans =
1244.
NOÇÕES FUNDAMENTAIS
*
NÚMEROS COMPLEXOS
As operações com números complexos são tão fáceis como nos reais. 
A unidade imaginária é representado por %i, ou seja, %i = sqrt(-1). 
Exemplo:
Sejam os números imaginários x e y, como segue:
x = 3 + 4*%i e y = 1 - %i
As operações abaixo são feitas normalmente:
z1 = x - y
z2 = x * y
z3 = x / y
Uso de funções:
real(x) −Parte real de x
imag(x) −Parte imaginária de x
abs(x) −Valor absoluto do número complexo
atan(imag(x),real(x)) −Argumento do número complexo
conj(x) −Conjugado
sin(x) −Seno de um número complexo
STRINGS
NOÇÕES FUNDAMENTAIS
*
clear apaga todas as variáveis do Espaço de Trabalho
Exemplo:
-->a = 2;
-->b = 3;
-->c = 4;
-->clear b		// Apaga somente b deixando as outras variáveis intactas
-->clear 		// Apaga somente b deixando as outras variáveis intactas.
		
 
As variáveis são apagadas quando o usuário termina a execução do Scilab. Para usá-las da próxima vez que executar o Scilab, você deve salva-las antes com o comando save(“arquivo”).
Por exemplo,
-->a = 2;
-->b = 3;
-->save("dados.dat");
 
O comando load(“arquivo”) é usado para recuperar variáveis que foram salvas no arquivo. Por exemplo:
-->clear 			// apaga todas as variáveis
-->a+b 			// variáveis a e b não existem
!--error 4 			// porque foram apagadas
undefined variable : a
-->load("dados.dat"); 		// recupera as variáveis a, b e c
-->a+b // Ok!
ans =
5
OBS.: O comando who mostra todas as variáveis do Espaço de Trabalho
APAGANDO, ARMAZENANDO E RECUPERANDO VARIÁVEIS
*
CONSEGUINDO AJUDA
 
help informa sobre comandos e funções do Scilab. 
Exemplo: 
help cos (Informa sobre a função que calcula o co-seno); 
help ceil −Informa sobre a função ceil.
	
apropos procura comandos e funções utilizando uma palavra-chave. 
Exemplo: se não sabemos o nome da função que calcula o seno hiperbólico, podemos digitar (em inglês) algo como 
--> apropos hyperbolic 
e o Scilab mostrará todas a funções relacionadas com a palavra-chave hyperbolic.
help() abre a ajuda do scilab pelo prompt.
NOÇÕES FUNDAMENTAIS
*
NOÇÕES FUNDAMENTAIS 
 Escrevendo o comando no prompt 
-->sin(%pi/2) + sqrt(4)*%i
 ans =
 1. + 2.i 
Também podemos escrever 
-->a=7; b=3
 b =
 3.
-->c=a*b
 c =
 21. 
*
-->A=[1,2,3;4,5,6]
 A =
 
 1. 2. 3. 
 4. 5. 6. 
-->v=1:0.5:2
 v =
 
 1. 1.5 2. 
NOÇÕES FUNDAMENTAIS 
*
-->A*v
 !--error 10 
Multiplicação incoerente.
-->A*v'
 ans =
 
 10. 
 23.5 
 
NOÇÕES FUNDAMENTAIS 
*
 Existem varias maneiras de criar matrizes no Scilab:
-->B=rand(3,3)
 B =
 
 0.2113249 0.3303271 0.8497452 
 0.7560439 0.6653811 0.6857310 
 0.0002211 0.6283918 0.8782165 
-->size(B)
 ans =
 3. 3.
NOÇÕES FUNDAMENTAIS 
*
 -->B*inv(B)
 ans =
 1. 0. 0. 
 0. 1. 0. 
 0. 0. 1. 
 
outro importante fato do Scilab é sua facilidade para concatenar matrizes como também extrair parte delas:
-->C = [ones(3,3), zeros(3,2); rand(2,3), eye(2,2)]
NOÇÕES FUNDAMENTAIS 
*
 C =
 1. 1. 1. 0. 0. 
 1. 1. 1. 0. 0. 
 1. 1. 1. 0. 0. 
 0.2320748 0.2164633 0.6525135 1. 0. 
 0.2312237 0.8833888 0.3076091 0. 1. 
-->C(1:2:5,[1,5])
 ans =
 1. 0. 
 1. 0. 
 0.2312237 1. 
 
NOÇÕES FUNDAMENTAIS 
*
 Manipula e opera seqüência de caracteres: 
-->D=['Esta','é'; 'a','matriz']
 D =
 
!Esta é !
! !
!a matriz !
 Manipula polinômios e funções racionais: 
NOÇÕES FUNDAMENTAIS 
*
 
-->p=poly([-1,2,3],'s',‘roots')
 p =
 2 3 
 6 + s - 4s + s 
 
q=poly(1:4,'s',‘roots')
 q = 
 2 3 4 
 24 - 50s + 35s - 10s + s 
NOÇÕES FUNDAMENTAIS 
*
 
-->p=poly([-1,2,3],'s','coeff')
 p =
 
 2 
 - 1 + 2s + 3s
q=poly(1:4,'s','coeff')
 q =
 
 2 3 
 1 + 2s + 3s + 4s 
NOÇÕES FUNDAMENTAIS 
*
-->roots(p)
 ans =
 - 1. 
 0.3333333
-->p/q
 ans =
 2 
 - 1 + 2s + 3s 
 ---------------------- 
 2 3 
 1 + 2s + 3s + 4s 
NOÇÕES FUNDAMENTAIS 
*
 Listas no Scilab são ilustradas pelo exemplo:
-->L=list('Scilab', [1,2;3,4], poly([1,2,3],'w','c'))
 L =
 
 L(1)
 Scilab 
 
 L(2)
 1. 2. 
 3. 4. 
 
 L(3)
 1 + 2w +3w^2 
NOÇÕES FUNDAMENTAIS 
*
 -->L(2)(2,2)
 ans =
 
 4. 
 A divisão polinomial também é uma lista
r=p/q
 r =
 2 
 - 1 + 2s + 3s 
 ----------------------- 
 2 3 
 1 + 2s + 3s + 4s 
NOÇÕES FUNDAMENTAIS 
*
-->length(r)
 ans =
 4. 
Mostra que a variável (lista) r tem 4 elementos.
 -->r(1)
 ans =
!r num den dt !
O primeiro elemento da lista é uma matriz de caracteres que identifica o mesmo como função racional comnumerador e denominador e um intervalo de amostragem associado (importante quando a função representa um sistema linear invariante no tempo).
NOÇÕES FUNDAMENTAIS 
*
 -->r(2)
 ans =
 2 
 - 1 + 2s + 3s 
-->r(3)
 ans =
 2 3 
 1 + 2s + 3s + 4s 
O segundo e elemento é o numerador, o terceiro um denominador e o quarto elemento é uma matriz vazia indicando que a função não tem o intervalo de amostragem.
NOÇÕES FUNDAMENTAIS 
*
 -->r(4)
 ans =
 []
 Uma forma de criar programas em Scilab é através do editor de textos. Porém, também é possível criar um programa com o comando deff.
-->deff('[y]=foo(x)','y=x^2;')
 
-->foo(2)
 ans =
 4.
NOÇÕES FUNDAMENTAIS 
*
Cria a função chamada foo como o quadrado de sua entrada. deff tem dois argumentos de entrada, ambos são caracteres. A primeira seqüência a sintaxe do nome da função e a segundo argumento é um vetor de caracteres que dá a seqüencia da afirmação do Scilab necessária para criar saída a partir da entrada. 
O Scilab tem outra série de comandos que podem ser acessados a partir de demonstrações do Scilab. 
NOÇÕES FUNDAMENTAIS 
*
*
*
A Linguagem Scilab 
 O Scilab é uma linguagem de alto performance com sentenças de controle de fluxo. Isto, combinado com funções, tipos de dados de alto nível, e fatos de programação orientada a objetos, permitem uma rápida criação de programas experimentais bem como uma completa aplicação do pacote. 
Reconhece apenas dois tipos de constantes: Números reais e seqüência de caracteres.
*
 Segue a notação decimal convencional, com representação de números tendo ponto decimal, signo, e fator de potencia de 10. Alguns exemplos: 5, 732., -78, 0.00128, -6.0356, 1.345e3, -190e5, 1.976e-10, 785.e-2, 3.976e-102. Note que não se faz distinção entre números reais e inteiros. 
A Linguagem Scilab 
*
 Os números complexos:
5+3*%i, -0.367*%i. 
Seqüecia de caracteres: 
‘This is a Scilab string’
“and this is another one”
Constantes especiais
%pi: valor aproximado do 
%e: base do logaritmo natural
%inf: represtan 
A Linguagem Scilab 
*
 %t ou %T: Valor lógico que representa verdade
 %f ou %F: Valor lógico que representa falso
Matrizes de números: 
->[0.1 -0.1 %e ; 1 2 3 ]
 ans =
 
 0.1 - 0.1 2.7182818 
 1. 2. 3. 
Matrizes esparsa:
A Linguagem Scilab 
*
-->sparse([1 10;3 5],[8.4,-9.1],[10,10])
 ans =
 
( 10, 10) sparse matrix
 
( 1, 10) 8.4 
( 3, 5) - 9.1
Cria uma matriz esparsa de tamanho (10,10) e com duas entradas diferentes de zero localizadas nas posições (1,10) e (3,5).
A Linguagem Scilab 
*
 Matrizes de caracteres: 
-->['speed' '10m/s' ; 'position' '12.5m']
 ans =
 
!speed 10m/s !
! !
!position 12.5m !
Listas: 
A Linguagem Scilab 
*
-->x=list('tax',['bread'; 'car';'book'],[3;20.8;5])
 x = 
 x(1)
 tax 
 x(2)
!bread !
! !
!car !
! !
!book !
A Linguagem Scilab 
*
x(3)
 3. 
 20.8 
 5. 
Lista Typed: Permite objetos heterogêneos. 
-->x=tlist('tax',['bread';'car';'book'],[3;20.8;5])
 x =
 
 x(1)
 
 tax 
A Linguagem Scilab 
*
 x(2)
 
!bread !
! !
!car !
! !
!book !
 
 x(3)
 
 3. 
 20.8 
 5. 
A Linguagem Scilab 
*
 Define x como uma estrutura de classe tax.
 >x=tlist(['Char'; 'Names'; 'Ages';'Sizes'],..
-->['Peter';'John';'Franck'],..
-->[25;;40;18],[1.85;1.76;1.70])
 x =
 x(1)
!Char !
! !
!Names !
! !
!Ages !
! !
!Sizes !
A Linguagem Scilab 
*
 
 x(2)
!Peter !
! !
!John !
! !
!Franck !
 
 x(3)
 25. 
 40. 
 18. 
A Linguagem Scilab 
*
x(4)
 
 1.85 
 1.76 
 1.7 
Define x como uma estrutura de classe Chars com nomes de componentes Names, Ages, e Sizes. 
X(‘Names’)(1) : Retorna o nome do primeiro carater. 
X(‘Ages’)(find(x(‘Names’)==‘Peter’)): Retorna a idade de Peter.
A Linguagem Scilab 
*
Funções Racionais de Matrizes
-->[1 %s]/(%s+1)
 ans =
 
 1 s 
 ----- ----- 
 1 + s 1 + s 
 Define uma matriz linha de duas colunas.
A Linguagem Scilab 
*
 Sintaxe do Scilab
Consiste de variáveis, atribuições, expressões, listas e operações, controle fluxo, funções e roteiros, e comandos. 
Um nome de variável consiste de uma letra ou o símbolo % seguido por qualquer número ou letra, dígitos, e caracteres especiais em (#_$!). Apenas os primeiros 24 caracteres são levados em conta. Maiúsculas e minúsculas são diferenciadas. 
Car_speed, a, A, %pi, x$, my_first_function são nomes da variáveis válidos. 
A Linguagem Scilab 
*
A Linguagem Scilab 
 Não é necessário declarar tipo nem dimensão das variáveis devido a que assume o tipo dos valores definidos.
-->a=1
 a =
 
 1. 
-->a=['simple','string']
 a =
 
!simple string !
Manipulação de Variáveis
*
Atribuições tem a seguinte sintaxe:
var=expr, onde var é o nome da variável e expr é uma expressão válida do Scilab.
[v1,v2,...,vn]=expr, onde v1,...vn são nomes de variáveis e expr é uma expressão de vários valores. 
expr dá origem um nome de variável padrão ans que é o valor avaliado de expr.
A Linguagem Scilab 
Atribuições
*
 Os operadores aritméticos +, -, *, /, ^, ‘ são estendidos para matrizes.
Também existem operadores específicos de matrizes: ./, .^, .*,. A interpretação desse operadores depende do tipo e dimensão do operando. 
A+B soma as matrizes A e B 
A*B multiplica as matrizes A e B, o número de colunas de A deve ser igual ao número de linhas de B.
A Linguagem Scilab 
Expressões: Operadores aritméticos
*
.* é uma multiplicação de matrizes entrada por entrada, A.*B. As matrizes A e B devem ter as mesmas dimensões, a menos que uma das matrizes seja escalar. 
/ divisão direita de matrizes. Se B é uma matriz quadrada, então A/B é a solução (caso exista) do sistema X*B=A para a incógnita X. Se B é uma matriz retangular, então A/B é a solução do erro dos mínimos quadrados do sistema X*B=A. 
A Linguagem Scilab 
 Operadores aritméticos
*
\ divisão esquerda de matrizes, equivalente a A’/B’.
./ é divisão A./B com entradas A(i,j)/B(i,j).
.\ é divisão A.\B com entradas B(i,j)/A(i,j).
Potência ^ ou **: Se p é um escalar e x uma matriz quadrada, então x^p é a matriz x à potência p. Se x é um vetor então x^p é equivalente a x.^p. Se x é um escalar e p é uma matriz x^p é uma matriz de x às potências de p. Quando ambas são matrizes, a operação não existe.
A Linguagem Scilab 
 Operadores aritméticos
*
A.^B é a matriz formado pelos valores A(i,j)^B(i,j). A e B devem ter a mesma dimensão, a menos que uma delas seja escalar. 
.’ Matriz transposta: A.’ é a transposta de A. 
’ Matriz conjugada transposta: A’ é a conjugada complexa transposta de A. 
.*. Matriz produto de Kronecker: A.*.B é a matriz formada pelos blocos A(i,j)*B.
A Linguagem Scilab 
 Operadores aritméticos
*
A.*.B =[A(1,1)*B,…A(1,n)*B;….;A(m,1)*B,…A(m,n)*B]
./. Divisão direita de Kronecker: A./.B é a matriz com blocos A(i,j)./B
.\. Divisão esquerda de Kronecker: A.\.B é a matriz com blocos A(i,j).\B
Esses operadores aritméticos operam com o maior tipo de matrizes numéricas: números escalares ou complexos, matrizes polinomiais, matrizes de funções racionais. 
A Linguagem Scilab 
 Operadores aritméticos
*
Os operadores relacionais são: <, <=, >, >=, ==, ~=, e <>. 
As operações relacionais A<B, A<=B, A>B, A>=B, operam entrada por entrada entre as duas matrizes de números reais. As matrizes devem ter a mesmas dimensão a menos que uma delas seja escalar. Essa operação retorna uma matriz Booleana do mesmotamanho, com entradas de valores %t quando é verdadeira e %f se é falso. 
A Linguagem Scilab 
 Operadores relacionais
*
Os operadores lógicos são: &, |, e ~. 
As operações lógicas A&B e A|B, executa respectivamente as operações AND e OR. As matrizes A e B devem ser do mesmo tamanho, a menos que uma delas seja escalar. O resultado é uma matriz Booleana do mesmo tamanho. A operação ~A complementa as entradas da matriz Booleana A.
Essas operações são definidas apenas para matrizes com entradas de tipo lógicos e matrizes de números. 
A Linguagem Scilab 
 Operadores lógicos
*
Colchetes [] são usados para formar vetores e matrizes a partir de expressões escalares ou matriciais. Dentro os colchetes, comas (,) ou espaços em branco separa colunas dentro de uma linha. Novas linhas ou ponto e vírgula (;) separa linhas dentro uma coluna. Colchetes pode ser aninhados, mas dentro de um par de colchetes as matrizes devem ser inseridas linha por linha: [1;2,3;4] não é valida e [a,b; c] é a mesma de [[a,b];c] ( e serve apenas se [a,b] tem a mesma dimensão de c).
A Linguagem Scilab 
 Operações especiais de matrizes
*
Colchetes vazios [] define a matriz vazia (zero colunas e zero linhas). Exemplo:
[1 %s+1 %i] é uma matriz linha com três entradas 
[11 12; 21 22; 31 32] é uma matriz 3x2
[[11;12;31],[21;22;32]] é uma matriz 3x2
a=[]; for k=1:10, a=[a,k^2];end cria um vetor linha.
Dentro os colchetes, as operações aritméticas tem maior prioridade que os espaços vazios. Assim, [1 -2] e [1- 2] correspondem a duas matrizes diferentes.
A Linguagem Scilab 
 Operações especiais de matrizes
*
A primeira produz [1,-2] e a segunda [1-2]=[-1] ou simplesmente -1.
Dois pontos (:) : é usado para definir vetores com espaços regularmente espaçados:
1:3 produz [1 2 3]
6.5:-2:1 produz [6.5 4.5 2.5]
A sintaxe para o operador : é v1:v2 ou v1:Passo:v2, onde v1, v2 e Passo são escalares reais. Para o primeiro caso entende-se que o passo é 1.
A Linguagem Scilab 
 Operações especiais de matrizes
*
Parênteses ( ) usados para delimitar subscritos em operação de inserção ou extração de matrizes. Extração é para selecionar subconjuntos de elementos de uma matriz, e a inserção é para definir o substituir um conjunto de elementos de uma matriz. 
Sintaxe de extração: variável(subscritos). 
Subscritos não deve exceder a dimensão das variáveis.
Sintaxe de inserção: variável(subscritos)=expressão.
O tamanho da submatriz determinado pelo subscritos deve corresponder ao tamanho da expressão. 
A Linguagem Scilab 
 Operações especiais de matrizes
*
Como exemplo, a(1:2)=[5,5] é uma sintaxe válida, mas a(1:3)=[5,5] não é. Esta regra continua válida a menos que a expressão seja escalar (a(1:2)=5) ou a matriz vazia (a(1:2)=[]). 
Subscritos é uma sequência de escalares, vetores separados por vírgulas com valores reais positivos. 
Se V e I são vetores, então V(I) é um subvetor formado pelas entradas de V selecionado pelos índices contidos em I. Exemplo:
A Linguagem Scilab 
 Operações especiais de matrizes
*
 V(1:2) matriz formada pelas primeiras duas entradas de V.
V(:) remodela V como um vetor coluna.
V(5:-1:1) obtém as primeiras cinco entradas de V na ordem inversa.
Se M é uma matriz e I e J são vetores, então M(I,J) é a sub-matriz de M formada com as linhas selecionadas por I e colunas selecionadas por J. M(1:2,1) é a sub-matriz formada pelas duas primeiras colunas de M. 
A Linguagem Scilab 
 Operações especiais de matrizes
*
 O vetor implícito (:) seleciona todos os índices relativos à dimensão. Exemplo:
M(:,1:2) é a sub-matriz formada pelas primeiras duas colunas de M.
M(:) é o vetor coluna formado com todas as colunas de M.
Um dispositivo muito usado para inserção e extração é o símbolo de índice final $. O símbolo pode ser usado para designar o índice final em uma matriz que não é conhecida as dimensões. 
A Linguagem Scilab 
 Operações especiais de matrizes
*
 M(1,$) é a ultima entrada da primeira linha de M
V(1:2:$) é equivalente a V(1:2: size(V,’*’))
M(5:$,$/2) é equivalente a M(5: size(M,1), size(M,2)/2)
V(i)=[] apaga as entradas i do vetor V
M(i,:) = [] apaga as linhas i da matriz M
M(:,j)=[] apaga as colunas j da matriz M
M(k)=[] remodela a matriz em um vetor coluna e apaga as entradas indicadas por k (note que k pode ser um vetor de índices). 
A Linguagem Scilab 
 Operações especiais de matrizes
.

Outros materiais