Baixe Tutorial do SciLab e outras Notas de estudo em PDF para Engenharia Mecânica, somente na Docsity!
UNIVERSIDADE DO VALE DO ITAJAÍ – UNIVALI – CES VII
CURSO: ENGENHARIA DE COMPUTAÇÃO
DISCIPLINA: INTRODUÇÃO À ENGENHARIA DE COMPUTAÇÃO
SciLab
INSTRUÇÕES BÁSICAS
Prof. Raimundo C. Ghizoni Teive
Versão do Tutorial: 1.0. Outubro – 2003
Tabela de Conteúdos Conceitos Básicos................................................................................................................................. 3 Símbolos e Constantes.......................................................................................................................... 4 Vetores & Matrizes............................................................................................................................... 5 String Array.......................................................................................................................................... 9 Gráficos.............................................................................................................................................. 10 Polinômios.......................................................................................................................................... 11 SciLab é um pacote de software livre que provê um poderoso ambiente de computação numérica para aplicações científicas e de engenharia. Sendo software livre, o usuário tem liberdade de copiar, distribuir e instalar em qualquer computador de sua propriedade ou de terceiros, além de ter total acesso ao código fonte, podendo modificá-lo e redistribui-lo alterado. O SciLab está disponível para download, podendo ser executado em diversas plataformas de hardware e sistema operacional, no endereço http://scilabsoft.inria.fr/. Até a data de edição deste documento, o SciLab estava na versão 2.7.2. Este tutorial foi produzido com OpenOffice (http://www.openoffice.org/) sendo executado no Sistema Operacional GNU/Linux (http://www.gnu.org, http://www.linux.org/), ambos software livre, buscando atingir a independência de sistemas proprietários para a realização das tarefas acadêmicas, científicas e de engenharia. Será bem-vinda qualquer sugestão ou crítica que venha melhorar a qualidade deste tutorial. Portanto, se você tem alguma, mande e-mail para [email protected] ou [email protected]. Atenciosamente, Prof. Raimundo C. Ghizoni Teive Edição: AFP - [email protected]
- Comandos Utilitários
- pwd ou getcwd(): exibe o diretório corrente (ainda pode-se usar o menu , opção <Get current Directory ...>) --> pwd ans = /home/usuario
- chdir <diretório> : muda o diretório corrente (ainda pode-se usar o menu , opção <Change Directory ...>) --> chdir /tmp
- ..ls ou ..dir : exibe os nomes dos arquivos do diretório corrente
- unix “” ou .. : executa um comando do sistema operacional --> unix “rm arquivo.m” ou --> ..rm arquivo.m SciLab – Símbolos e Constantes
- ans: resposta mais recente.
- %eps: precisão numérica corrente. Ex. 2.220E-
- %pi: 3.
- %i: parte imaginária de números complexos.
- %inf: infinito. Ex: 1/0.
- %nan: “not a number”
SciLab – Vetores & Matrizes
- Sintaxe básica: escalares e vetores --> a= a = 10. --> b=[1 2 3] b = ! 1. 2. 3.! --> c= [ 5; 6; 7] c = ! 5.! ! 6.! ! 7.! -->
OBS.: Matrizes podem ser numéricas ou alfa-numéricas.
- Sintaxe básica: matrizes --> x=[1 5 9; 3 7 2; 6 4 8] x = ! 1. 5. 9.! ! 3. 7. 2.! ! 6. 4. 8.! --> x(1,3) ans = 9. --> x(8) ans = 2. --> x(2:4) ans = ! 3.! ! 6.! ! 5.! Escalar é uma matrix 1 x 1 Vetor linha é uma matrix 1 x n Vetor colula é uma matrix n x 1
- espaço ou , separam elementos na mesma linha
- ; separa elementos da mesma coluna Indexação de matrizes : segue a sintaxe matemática tradicional. x(1,3) indica elemento na primeira linha e terceira coluna. Matriz x(8) indica o oitavo elemento da matriz. A contagem é feita por coluna. x(2:4) indica intervalo do segundo ao quarto elemento da matriz.
- Operações Matriciais --> a=[1 2 3; 4 5 6; 7 8 9] a = ! 1. 2. 3.! ! 4. 5. 6.! ! 7. 8. 9.! --> b1=aa b1 = ! 30. 36. 42.! ! 66. 81. 96.! ! 102. 126. 150.! --> b2=a.a b2 = ! 1. 4. 9.! ! 16. 25. 36.! ! 49. 64. 81.!
- Exemplo: Operações Matriciais Operação de divisão a esquerda: S istema Linear. --> a=[-1 1 2; 3 -1 1; -1 3 4]; --> b=[2;6;4]; --> x=a\b x = ! 1.! ! -1.! ! 2.!
- Matriz Randômica: função rand() rand(): gera números randômicos uniformementes distribuídos entre [0, 1]. -->rand(3,3) ans = ! .2113249 .3303271 .8497452! ! .7560439 .6653811 .6857310! ! .0002211 .6283918 .8782165! -->rand(2,3) ans = ! .5608486 .7263507 .5442573! ! .6623569 .1985144 .2320748!
OBS.: rand(“seed”, num) altera a base para geração de números.
Matriz:
- (multiplicação) / (divisão) \ (divisão a esquerda) ^ (potência) ' (transposta) Elemento a elemento: .* (multiplicação escalar) ./ (divisão escalar) .^ (potência escalar) -x 1 + x 2 + 2x 3 = 2 3x 1 – x 2 + x 3 = 6 -x 1 + 3x 2 + 4x 3 = 4 x 1 = 1 x 2 = - x 3 = 2 rand(n,n): gera matriz randômica n x n rand(n,m,p,...): gera matriz n x m x p ...
- Concatenação de Matrizes Utilizamos os símbolos [] , ; para concatenar matrizes. -->a=[1 2 3 4 5]; -->b=[6 7 8 9 0]; -->c=[a, b] c = ! 1. 2. 3. 4. 5. 6. 7. 8. 9. 0.! -->d=[a;b] d = ! 1. 2. 3. 4. 5.! ! 6. 7. 8. 9. 0.!
- Funções Matriciais Básicas I
- det(m): calcula determinante da matriz quadrada m.
- inv(m): gera matriz inversa da matriz quadrada m.
- zeros(n, m, p...): gera matriz de zeros n x m x p... --> zeros(3,4);
- ones(n, m, p...): gera matriz de uns n x m x p... --> ones(3,4);
- eye(n,m), eye(m,m): gera matriz identidade n x m ou m x m. --> eye(3,4); --> eye(3,3);
- diag(m): se m é uma matriz, retorna os elementos da diagonal principal --> diag(m);
- diag(v): gera matriz diagonal utilizando os elementos do vetor v. --> v=[1 2 3 4 5]; --> diag(v) ans = ! 1. 0. 0. 0. 0.! ! 0. 2. 0. 0. 0.! ! 0. 0. 3. 0. 0.! ! 0. 0. 0. 4. 0.! ! 0. 0. 0. 0. 5.! Concatenação por linha Concatenação por coluna
SciLab – Gráficos
- Gráficos 2D plot2d(xdata, ydata):
- xdata: vetor contendo dados em X;
- ydata: vetor contendo dados em Y;
- Exemplos Teste a função plot2d utilizando outras funções e composições de funções.
- cos(x): cosseno.
- exp(x): exponencial (ex).
- log(x): logaritmo natural (ln).
- sqrt(x): raiz quadrada.
- sin(x) .* exp(x)
- abs(sqrt(x))
- 3sin(x)-0.5cos(5*x) **OBSERVAÇÕES:
- xdata deve ser um vetor coluna, por isso aplica-se a transposta (');**
- A função plot2d possui várias sintaxes diferentes. Consulte o Help do SciLab. -->x=[-2%pi:0.1:2%pi]'; -->y=sin(x); -->plot2d(x,y) -->x=[-2%pi:0.1:2%pi]'; -->y=3sin(x)-0.5cos(5x); -->k=sin(x) . exp(x); --> plot2d(x,[y, k]) Sintaxe para exibição de várias curvas
SciLab – Polinômios
- Função roots: obtém raízes de polinômios. -->s=poly(0,"s"); -->p=2s + 3 p = 3 + 2s -->roots(p) ans = - 1. -->p=6s^5 - 15s^4 + 3x^3 + 2s^2 + 3x + 5 p = 2 3 4 5 5 + 3s + 2s + 3s - 15s + 6s -->roots(p) ans = ! - .0845548 + .7107609i! ! - .0845548 - .7107609i! ! - .6380605! ! 1.2233204! ! 2.0838496! Seta s como a variável do polinômio p(x) = 2x + 3 p(-1.5) = 0 p(x) = 6x^5 – 15x^4 + 3x^3 + 2x^2 + 3x + 5 Este polinômio possui três raízes reais e duas raízes imaginárias.