Você está na página 1de 36

Scilab

Scilab

Foi criado em 1990 por pesquisadores do INRIA


e da cole Nationale des Ponts et Chausses (Frana), sendo gratuito e similar ao Matlab.

Pgina na internet: http://www.scilab.org Consiste tambm de um interpretador A linguagem e o sistema possuem o mesmo
nome: Scilab

Scilab
O ambiente e a linguagem Scilab
O ambiente Scilab: Interpreta comandos; Oferece um editor para construo de programas; Emite mensagens de erros relativos obedincia da

sintaxe da linguagem e a problemas na execuo de um programa (como diviso por zero).

Como qualquer linguagem natural, a linguagem Scilab: Une riqueza de expresso a detalhes sintticos; Exige uma postura paciente em seu aprendizado, pois
envolve uma taxa inicial de memorizao. A fluncia vem com a prtica.

Scilab
O ambiente Scilab
Barra de menus

Barra de ferramentas

Prompt de comandos

Scilab
O ambiente Scilab
Alguns comandos:
PWD (ou pwd): diretrio onde o Scilab foi lanado. Onde seu script est rodando. -->pwd ans = C:\Scilab

Mudana do diretrio corrente:

Na barra de comandos (menus), seleciona-se arquivo e, depois, Alterar diretrio atual...

Scilab
O ambiente Scilab

dir: mostra contedo do diretrio corrente. -->dir ans = Apres_adapt_SCILAB_0.ppt arred.sci

Scilab
O ambiente Scilab
OUTROS: clc: limpa a tela; clear: apaga as variveis Como salvar um Ambiente de trabalho: Na barra de menus acionar: Arquivo Salvar ambiente... Como abrir um Ambiente salvo anteriormente: Arquivo Carregar ambiente...

Scilab
Variveis e comandos de atribuio
Variveis correspondem a nomes para espaos de
memria que so gerenciados pelo Scilab;
como tal gerncia realizada.

O programador no precisa ter qualquer idia de

Os nomes das variveis so escolhidos pelo

programador, respeitando as seguintes regras:

O primeiro caractere do nome deve ser uma letra

ou qualquer caractere dentre: ' % ', '_', '#', '!', '$' e '?'; Os outros caracteres podem ser letras ou dgitos ou qualquer caractere dentre '_', '#', '!', '$' e '?.

Scilab
Variveis e comandos de atribuio
Nomes vlidos: A, a, jose, total_de_alunos, #funcionrio

Nomes invlidos: 1aluno (primeiro caractere um algarismo); Total de alunos (tem espaos); Jos ( acentuado).
Observao: o scilab case sensitive: distingue letras maisculas de minsculas. Ou seja, por exemplo, x e X seriam variveis diferentes.

Scilab
Variveis e comandos de atribuio
Exemplos:
Prompt de comandos a uma varivel que passa a existir; no caso, atribudo o valor de 10 mesma

-->a=10 a =

10.
O scilab mostra o valor recebido pela varivel

-->b=2^10 b = 1024. -->c=a+b c = 1034.

Exponenciao O valor atribudo pode ser uma expresso aritmtica com variveis j conhecidas

Scilab
Comando de atribuio
Sintaxe:

<varivel> = <expresso> A <varivel>, se no existia, passa a existir. Se existia, o valor armazenado anteriormente perdido.

A <expresso> calculada e o resultado atribudo varivel

Scilab
Comando de atribuio
-->d=a+x !--error 4 Varivel indefinida: x
Todas as variveis em uma expresso devem ser definidas anteriormente.

A expresso pode conter a prpria varivel

-->b=2*b b = 2048.
* denota multiplicao

Scilab
Comando de atribuio
-->a= %pi a =
3.1415927 -->b=2*%pi ;
Constante aritmtica: valor pr definido de p ; suprime a apresentao automtica do valor

-->c=cos(a)+sqrt(b) c =
1.5066283
O Scilab oferece vrias funes pr-definidas.

Scilab
Comando de atribuio
Algumas funes pr definidas do Scilab: abs(x) valor absoluto de x. sin(x) seno de x. cos(x) cosseno de x. exp(x) exponencial ex. log(x) logaritmo de x na base e (logaritmo natural ou neperiano). sqrt(x) raiz quadrada de x. sum(x) soma algbrica dos elementos de x. max(x) maior elemento de x. min(x) menor elemento de x.

Scilab
Expresses aritmticas
Expresses podem ser arbitrariamente complicadas. Por
exemplo: Qual o valor de x a partir do comando x = 2^3*4 ? 23 x 4 = 32 ou 23x4 = 4096 ?

Prioridade 1a 2a 3a

Associatividade Da direita para a Potenciao esquerda Multiplicao, Da esquerda para a diviso. direita adio, subtrao da esquerda para a direita

Operao

Parnteses podem alterar prioridades.

Scilab
Expresses aritmticas
-->2^3*4 ans = 32. -->2^(3*4) ans = 4096. -->2^(3^4) ans = 2.418D+24 Notao Scilab (com Fortran,C, Java,...) para 2.418x1024

Recomenda-se o uso de parnteses por ser mais seguro.


-->2*3+4 ans = 10. -->2*(3+4) ans = 14.

-->2^(3^4) ans = 2.418D+24


-->(2^3)^4 ans = 4096.

Scilab
Vetores/Matrizes
Matrizes so variveis que contm uma quantidade
potencialmente grande de valores.

no tratamento de matrizes que o Scilab mostra grande


superioridade sobre linguagens como C, Fortran ou Java.

-->A=[1 2 3;4 5 6] A = 1. 4. 2. 5. 3. 6.

Este comando cria uma matriz 2 x 3, com os valores de cada linha separados por ;

Scilab
Vetores/Matrizes
Todas as variveis Scilab so, a princpio, matrizes. -->x = 7 x = 7. -->[l,c]=size(x) c = 1. l = 1.

A funo size retorna o nmero de linhas e o nmero de colunas de uma matriz

x uma matriz de uma linha e uma coluna.

Scilab
Vetores/Matrizes
OU:
--> x = [1 2 3;4 5 6] x = 1. 2. 3. 4. 5. 6.

O comando size(x,1) retorna o nmero de linhas da matriz x

--> L = size(x,1) L = 2. --> C = size(x,2) C = 3.

O comando size(x,2) retorna o nmero de colunas da matriz x

Scilab
Vetores/Matrizes
Obtendo o valor de um elemento da matriz: -->A=[1 2 3;4 5 6] A = 1. 4. 2. 5. 3. 6.

-->e=A(2,3) e = 6.

Elemento da matriz A, que est na linha 2 e coluna 3

Scilab
Vetores/Matrizes
Vetores so matrizes de uma nica linha ou de uma
nica coluna.
Para acessar o valor 20, usa-se v(1,2) ou simplesmente v(2)

-->v=[10 20 30] v = 10. 20. 30. -->u=[10; 20; 30] u = 10. 20. 30.

Para acessar o valor 20, usa-se u(2,1) ou simplesmente u(2)

Scilab
Vetores/Matrizes
Obtendo valores de uma linha de uma matriz:
x = 18. 19. 7. 8. 15. 5. 10. 5. 11. 11. 2. 5. 13. 15. 1. 13. 4. 8. 17. 12. 10. 4. 17. 2. 6. 17. 17. 11. 20. 13.

-->a = x(2,:) a = 19. 10. 5.

: designa todos os elementos de uma dimenso (no caso, coluna)

4.

4.

17.

Scilab
Vetores/Matrizes
Obtendo valores de colunas de uma matriz:
x = 18. 19. 7. 8. 15. 5. 10. 5. 11. 11. 2. 5. 13. 15. 1. 13. 4. 8. 17. 12. 10. 4. 17. 2. 6. 17. 17. 11. 20. 13.

-->b = x(:,3:5) b = 2. 13. 5. 4. 13. 8. 15. 17. 1. 12.

A matriz b formada por todas as linhas de x (:) e colunas de 3 a 5 (3:5).

10. 4. 17. 2. 6.

Scilab
Vetores/Matrizes
-->x=[1 2 3 4;5 6 7 8] x = 1. 2. 3. 4. 5. 6. 7. 8.

-->x(2,:) ans =

Linha 2 e todas as colunas


6. 7. 8.

5.
-->x(2,2:3) ans = 6. 7.

Linha 2 e colunas 2 e 3
-->M=[x(:,1) x(:,4)] M = 1. 5. 4. 8.

Matriz com as colunas 1 e 4

Scilab
Operaes com matrizes
Como todas as variveis scilab so matrizes, as
operaes aritmticas usuais (+, -, *, /, ^) so entendidas pelo Scilab como operaes matriciais.

Assim, por exemplo, a*b designa o produto


matricial entre as matrizes a e b.

Operaes escalares usam os mesmos smbolos

aritmticos, porm precedidos por um ponto. Por exemplo, .* e .^.

Scilab
Operaes com matrizes
Matrizes de mesmas dimenses podem ser somadas ou
subtradas -->x=[1 2 3;4 5 6]; y=[10 20 30;40 50 60]; -->x+y ans = 11. 44. -->x-y ans = 22. 55. 33. 66.

Dois, ou mais, comandos podem ser colocados em uma mesma linha.

- 9. - 36.

- 18. - 45.

- 27. - 54.

Scilab
Operaes com matrizes
Produto entre matrizes
-->x=[1 2 3;4 5 6] x = 1. 2. 3. 4. 5. 6. -->y=[10 y = 10. 30. 50. -->x*y ans =
280 = 1x20 + 2x40 +3x60 O nmero de colunas da primeira matriz deve ser igual ao nmero de linha da segunda.

20; 30 40; 50 60] 20. 40. 60.

220. 490.

280. 640.

Scilab
Operaes com matrizes
Produto elemento a elemento de matrizes
-->x=[1 2;4 5];y=[10 20; 30 40];

-->x * y ans =
70. 150. -->x .* y ans = 10. 120. 40. 200. 100. 220.

Produto matricial

Produto elemento a elemento

Scilab
Operaes com matrizes
-->x=[1 2;3 4];
Multiplicao por escalar -->y=2*x y = 2. 6. 4. 8.

-->x=[1 2 3;4 5 6] x = 1. 2. 3. 4. 5. 6.
-->y=x' y = 1. 2. 3.

Matriz transposta

4. 5. 6.

x' a transposta da matriz x

Scilab
Operaes com matrizes
Exponenciao de matrizes
-->x=[1 2;3 4];

-->x^2 ans = 7. 15.


-->x.^2 ans = 1. 9.

Produto matricial. Eqivale a x*x

10. 22.
Exponenciao elemento a elemento

4. 16.

Scilab
Operaes com matrizes
Exponenciao de matrizes
-->x=[1 2]; -->x^2 ans = 1.

4.

-->x*x !--error 10 Multiplicao incoerente.

Obs.: Seria o mesmo resultado se fosse usado x.^2

Scilab
Operaes com matrizes
Outras:
Matriz de zeros

-->M=zeros(2,3) M =

0. 0.
-->N=ones(3,2) N = 1. 1. 1. 1. 1. 1.

0. 0.

0. 0.

Matriz com elementos iguais a 1

-->I=eye(3,3) I =
1. 0. 0. 0. 1. 0. 0. 0. 1.

Matriz identidade de ordem 3

Scilab
Exemplos gerais
1) Equao do segundo grau:

Razes da equao

ax 2 bx c 0

b x 2a b 2 4ac

Scilab
Exemplos gerais
1.1) Equao exemplo:

x2 2x 3 0
Atribuio de valores aos coeficientes e clculo do discriminante

-->a=1;b=2;c=-3;delta=b^2-4*a*c; -->x1=(-b+sqrt(delta))/2*a;x2=(-b-sqrt(delta))/2*a;[x1 x2] ans = 1. - 3. Determinao das razes (x1 e x2).

Scilab
Exemplos gerais
1.2) Equao exemplo:

x2 4x 4 0

-->a=1;b=-4;c=4;delta=b^2-4*a*c; -->x1=(-b+sqrt(delta))/2*a;x2=(-b-sqrt(delta))/2*a;[x1 x2] ans = 2. 2.

1.3) Equao exemplo:

x2 x 3 0

-->a=1;b=-1;c=3;delta=b^2-4*a*c; -->x1=(-b+sqrt(delta))/2*a;x2=(-b-sqrt(delta))/2*a;[x1 x2] ans =

0.5 + 1.6583124i

0.5 - 1.6583124i

Scilab
Exemplos gerais
2) Sequncia de nmeros igualmentes espaados: -->x=1:2 x = 1. 2. Espaamento de 0.5. Espaamento padro.

-->x=1:0.5:2 x =

1.

1.5

2. Sequncia decrescente

-->y=3:-0.5:1 y = 3. 2.5 2.

1.5

1.

Scilab
Exemplos gerais
2) Sequncia de nmeros igualmentes espaados: -->x=1:0.5:2,y=x^2 x = 1. = 1. 1.5 2. Atribuio a uma funo.

2.25

4.