apostila_scilab_parte_1-_física

52
FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB 1 - APRESENTANDO O SCILAB 1.1 – INTRODUÇÃO O Scilab é um ambiente utilizado no desenvolvimento de programas para a resolução de cálculos científicos. Criado e mantido por pesquisadores pertencentes ao Institut de Recherche em Informatique et en Automatique, INRIA, através do Projeto METALAU (Methods, algorithmes et logiciels pour l'automatique) e a Ecole Nationale des Ponts et Chaussees, ENPC, o Scilab é gratuito (Free software) e é distribudo com o código fonte (Open Source software). Mantido e desenvolvido atualmente pelo Scilab Consortium. Possui centenas de funções matemáticas com a possibilidade de interação com programas em várias linguagens como o C e Fortran. A utilização do Scilab dá-se internacionalmente nos ambientes acadêmicos e industriais (“clone do Mathlab”), assim o Scilab é uma plataforma em constante atualização e aperfeiçoamento (Scilab = Scientific Laboratory : Pronúncia em sintaxe fonética internacional é “sailæb”.) Do ponto de vista conceitual, o Scilab é um interpretador de comandos. Na área de computação, distinguem-se as linguagens interpretadas das linguagens compiladas, as quais necessitam de um pré-processamento (ou compilação) antes que seus comandos possam ser executados. Uma vez compilados, os programas podem ser executados sobre o sistema operacional, diretamente. Exemplos de linguagens compiladas são C, C++, Pascal e FORTRAN. As linguagens interpretadas mais comuns são LISP, Smalltalk e BASIC. A diferença básica entre os dois tipos de linguagens é a necessidade das linguagens interpretadas contarem com um suporte para execução, como é o caso do ambiente Scilab. Entretanto, nada impede que ambientes interpretadores tenham uma função de compilação, gerando programas executáveis que podem ser ativados diretamente sobre o sistema operacional, sem necessidade do ambiente. O Scilab possui tal funcionalidade.

Upload: leonardo-chaves

Post on 04-Aug-2015

64 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB

1 - APRESENTANDO O SCILAB

1.1 – INTRODUÇÃO

O Scilab é um ambiente utilizado no desenvolvimento de programas para a resolução de

cálculos científicos. Criado e mantido por pesquisadores pertencentes ao Institut de Recherche em

Informatique et en Automatique, INRIA, através do Projeto METALAU (Methods, algorithmes et

logiciels pour l'automatique) e a Ecole Nationale des Ponts et Chaussees, ENPC, o Scilab é

gratuito (Free software) e é distribudo com o código fonte (Open Source software). Mantido e

desenvolvido atualmente pelo Scilab Consortium.

Possui centenas de funções matemáticas com a possibilidade de interação com programas

em várias linguagens como o C e Fortran.

A utilização do Scilab dá-se internacionalmente nos ambientes acadêmicos e industriais

(“clone do Mathlab”), assim o Scilab é uma plataforma em constante atualização e aperfeiçoamento

(Scilab = Scientific Laboratory : Pronúncia em sintaxe fonética internacional é “sailæb”.)

Do ponto de vista conceitual, o Scilab é um interpretador de comandos. Na área de

computação, distinguem-se as linguagens interpretadas das linguagens compiladas, as quais

necessitam de um pré-processamento (ou compilação) antes que seus comandos possam ser

executados. Uma vez compilados, os programas podem ser executados sobre o sistema operacional,

diretamente. Exemplos de linguagens compiladas são C, C++, Pascal e FORTRAN. As linguagens

interpretadas mais comuns são LISP, Smalltalk e BASIC.

A diferença básica entre os dois tipos de linguagens é a necessidade das linguagens

interpretadas contarem com um suporte para execução, como é o caso do ambiente Scilab.

Entretanto, nada impede que ambientes interpretadores tenham uma função de compilação, gerando

programas executáveis que podem ser ativados diretamente sobre o sistema operacional, sem

necessidade do ambiente. O Scilab possui tal funcionalidade.

Page 2: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB

1.2 - PRINCIPAIS BIBLIOTECAS DE FUNÇÕES DO SCILAB

• Biblioteca Gráfica 2-D e 3-D e Animação

• Álgebra Linear

• Polinômios e Funções Racionais

• Integração: Equações Diferencias Ordinárias e Equações Algébrico-Diferenciais

• Modelagem e Simulação (Scicos)

• Controle Clássico e Robusto

• Otimização (Inequações Matriciais Lineares-LMI, Otimização Diferenciável e Não Diferenciável)

• Processamento de Sinais

• Processamento de Imagens

• Grafos e Redes (Metanet)

• Scilab para Arquitetura Paralela

• Estatística

• Redes Neurais

• Lógica Nebulosa (Fuzzy Logic)

• Controle Ótimo Discreto

• Interfaces com Softwares de Computação Simbólica (Mapler, MuPAD)

1.3 - ALGUMAS VANTAGENS DO SCILAB

• É uma poderosa ferramenta para cálculos científicos

• É de fácil aprendizado

• A última versão do software esta sempre disponível, geralmente via Internet

• O software pode ser legalmente utilizado, copiado, distribuído, modificado

• Os resultados obtidos podem ser divulgados sem nenhuma restrição

• Os programas desenvolvidos podem ser transferidos para outras pessoas sem imposições de

qualquer natureza

• O acesso ao código fonte, evitando surpresas desagradáveis

• O acesso a informação de alta qualidade

Page 3: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA

1.4 - INTERFACE E MENUS DO SCILAB

Para iniciar o SCILAB, clique no menu Iniciar

INTRODUÇÃO À INFORMÁTICA

INTERFACE E MENUS DO SCILAB

SCILAB, clique no menu Iniciar->Programas->Scilab ( OU NO ÍCONE NA ÁREA DE TRABALHO)

SCILAB

>Scilab ( OU NO ÍCONE NA ÁREA DE TRABALHO)

Page 4: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA

INTRODUÇÃO À INFORMÁTICA

SCILAB

Page 5: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA

SCIPAD = EDITOR DE SCRIPTS

SCICOS = SIMULAÇÕES

INTRODUÇÃO À INFORMÁTICA

SCIPAD = EDITOR DE SCRIPTS

SCICOS = SIMULAÇÕES

SCILAB

Page 6: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB

2 – NOÇÕES FUNDAMENTAIS

2.1 - USANDO O SCILAB COMO UMA SIMPLES CALCULADORA

O Scilab pode fazer operações aritméticas simples com números reais e complexos. Os

operadores aritméticos são:

Adição + Subtração - Multiplicação * Divisão / Potenciação ˆ

Execute o Scilab no seu sistema e procure pelo símbolo (prompt):

-->

As operações aritméticas devem ser digitados após este símbolo (->) que é chamado de

prompt do Scilab e em seguida tecla-se [ENTER]. Exemplos:

-->2+3 [ENTER]

ans =

5.

-->5+6/2

ans =

8.

-->4^2 // 4 elevado a potência de 2

ans =

16.

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 porque ela armazena o valor do último cálculo

realizado.

Exemplo:

-->4+5

Page 7: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB

ans =

9.

-->ans+ 3

ans =

12

2.2 - VARIÁVEIS E O COMANDO DE ATRIBUIÇÃO

Uma variável é uma abstração de uma célula ou um conjunto de células na memória do

computador. Informações são armazenas em variáveis para posterior uso. Muitos programadores

costumam a interpretar variáveis como sendo um 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. No Scilab, 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: digite estes comandos no prompt do Scilab:

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

-->b = b+1 // Incrementa uma unidade na variável b

b =

5.

OBS.(1): Os nomes de variáveis (também conhecidos por identificadores) devem seguir as

seguintes regras:

Page 8: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB

1. Nomes de variáveis começam com uma letra, seguido de letras, algarismos ou sublinhados. Por

exemplo: Alpha, notas, A1, B23 e cor_do_objeto;

2. Caracteres especiais não são permitidos. Isto é, não é permitido usar #, $, &, %, ?, !, @, <, ~, etc.;

3. Caracteres acentuados não são permitidos;

4. Nomes de variáveis são sensíveis a maiúsculas e minúsculas. Por exemplo, variável Alpha é

diferente das variáveis ALPHA, alpha e AlPhA.

De acordo com as regras acima, os seguintes nomes de variáveis são válidos: ALPHA, X,

B1, B2, b1, matricula e MEDIA. Porém, estes nomes de variáveis são 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. Por exemplo, o resultado do seguinte

comando, digitado com ponto e vírgula, é suprimido:

-->A = 4+4^2;

-->

Se este comando é digitado sem ponto e vírgula, o resultado é visualizado:

-->A = 4+4^2

A =

20.

Mais exemplos:

-->a=2;

-->b=4;

-->area=a*b // aqui o ponto e vírgula foi suprimido porque precisamos visualizar o resultado.

area =

8.

2.3 - EXPRESSÕES ARITMÉTICAS

Os operadores aritméticos combinam números e variáveis para formar expressões

aritméticas. Exemplos:

A+B*C

(NOTA1+NOTA2)/2

1/(a^2+b^2)

Importante é a Ordem de Avaliação entre Operadores Aritméticos. Para uma boa

avaliação de uma expressão aritmética é necessário se familiarizar com a ordem de avaliação dos

operadores. Aqui, as regras importantes são: prioridade, associatividade e parênteses. Operações de

Page 9: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB

alta prioridade são realizadas em primeiro lugar. A ordem de prioridade entre os operadores é a

seguinte:

Exemplos:

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.

Associatividade é a regra usada quando os operadores têm a mesma prioridade. Por

exemplo, para as operações de adição e subtração (que possuem mesma prioridade) a regra de

associatividade diz que a operação mais a esquerda é avaliada primeiro:

A-B+C+D //A-B é avaliada primeiro, porque está mais a esquerda.

O mesmo vale para multiplicação e divisão:

A*B/C*D //A*B é avaliada primeiro, porque está mais a esquerda.

No entanto, para potenciação, a regra da associatividade diz que a operação mais a direita

deve ser avaliada primeiro:

A^B^C^D //CˆD é avaliada primeiro, porque está mais a direita.

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. Por último, a divisão.

R*3+B^(3/2)+1 //3/2 é avaliada primeiro.

Page 10: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB

Além dos operadores aritméticos podemos usar funções matemáticas. Exemplos:

2+3*cos(x)

X^(2*sin(y))

2+3*tan(x)+K^2

As principais funções matemáticas do Scilab são mostradas na tabela a seguir.

Tabela: principais funções matemáticas no scilab

Exemplos de funções matemáticas:

// O número π e a base do logaritmo natural e = 2, 718281828... são

representadas pelas variáveis especiais %pi e %e.

-->cos(2*%pi) // coseno de 2 vezes PI

ans =

Page 11: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB

1.

-->%e^2 // 2,718281828 ao quadrado

ans =

7.389056098931

-->abs(-5) // valor absoluto

ans =

5.

-->modulo(8,3) // Resto da divisão entre 8 e 3

ans =

2.

-->modulo(6,3)

ans =

0.

-->sign(-4) // Função sinal: retorna o valor -1, +1 ou zero conforme o argumento x seja negativo, positivo ou nulo, respectivamente.

ans =

- 1.

-->sign(5)

ans =

1.

Também temos Funções de Arredondamento, como por exemplo:

-->a = 34.885;

-->fix(a) // trunca a parte fracionária

ans =

34.

-->round(a) // arredonda para o inteiro mais próximo

ans =

35.

-->ceil(3.1) // arredonda para mais.

ans =

Page 12: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB

4.

As principais funções de arredondamento do Scilab são mostradas na tabela a seguir.

Outros exemplos de funções de arredondamento:

Podemos modificar o Formato de Visualização dos Números com o comando format

modifica a quantidade de dígitos com que os números são mostrados no Scilab. Por exemplo, o

comando --> format(5) fará com que todas os números sejam visualizados em 5 posições (incluindo

o ponto decimal e um espaço para o sinal).

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

A raiz de 3 foi mostrada ocupando 16 posições (sendo uma posição para o ponto, um espaço

reservado para o sinal, uma posição para a parte inteira e 13 posições para a parte fracionária).

O comando format(’e’) mostra os números em notação científica. Por exemplo:

-->format(’e’)

-->2*%pi/10

ans =

6.283185307E-01

6.283185307E-01 significa 6.283185307 × 10−1.

Page 13: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB

Para retornar ao formato inicial usa-se -->format(’v’) que é chamado de “formato de

variável”.

Vejamos outras formas de usar o comando:

format:

-->format(’v’,10) //mostra os números em formato de variável com 10 posições.

-->format(’e’,8) //mostra os números em notação científica com 8 posições.

O Scilab possui Constantes Especiais do Scilab, que são várias constantes pré-definidas.

Algumas constantes pré-definidas não podem ser alteradas. As principais são mostradas na tabela a

seguir:

2.4 - STRINGS

Strings são usados para toda e qualquer informação composta de caracteres alfanuméricos

e/ou caracteres especiais (exemplo, #, $, &, %, ?, !, @, <, ~, etc.). Os strings são envolvidos por

aspas duplas ou simples.

Devemos usar aspas duplas ou simples? A aspa simples é também usada como operador de transposta hermitiana

(mas isto não acarreta problemas de programação). Por isso é melhor usar as aspas duplas que não possui tal duplo

sentido e torna seu programa um pouco mais legível.

Exemplos:

-->a = "abcd"

Page 14: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB

a =

abcd

-->b = ’efgh’

b =

efgh

-->c = "Maria e Jose"

c =

Maria e Jose

Um das atividades mais comuns em programação é a concatenação de strings. Concatenação

é a junção de dois ou mais strings. Isto pode ser feito com o operador +.

Exemplos:

-->a + b // Concatena abcd com efgh

ans =

abcdefgh

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

Muitas vezes precisamos armazenar informações que contém as aspas. Isto pode ser feito

repetindo as aspas.

Exemplos:

Page 15: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB

-->n = "o teorema é "“ a lados iguais opõe-se ângulos iguais “"

n =

o teorema é “ a lados iguais opõe-se ângulos iguais“

Algumas funções para manipulação de strings são mostradas na tabela a seguir:

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.

2.5 – NÚMEROS COMPLEXOS

Não é necessário manuseio especial em Scilab para 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).

Page 16: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB

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

Bem como o 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

2.6 - APAGANDO, ARMAZENANDO E RECUPERANDO VARIÁVEIS NO ESPAÇO DE

TRABALHO

Quando um comando de atribuição como este: -->x = 3, é digitado no Scilab, a variável x é

armazenada em uma área da memória do Scilab denominada de Espaço de Trabalho (do inglês,

Workplace). O Espaço de Trabalho é uma parte da memória do computador que armazena as

variáveis criadas pelo prompt e pelos arquivos de Script (mostrados adiante).

O comando clear apaga todas as variáveis do Espaço de Trabalho criadas pelo usuário. O

comando clear seguido de nome de uma variável apaga somente a variável

Exemplo:

-->a = 2;

-->b = 3;

-->c = 4;

-->clear b; // Apaga somente b deixando as outras variáveis intactas.

// O comando who mostra todas as variáveis do Espaço de Trabalho.

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 com o comando save (“arquivo”).

Por exemplo,

-->a = 2;

Page 17: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB

-->b = 3;

-->c = 4;

-->save("dados.dat");

As variáveis foram salvas no arquivo 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.

2.7 – CONSEGUINDO AJUDA

O comando help informa sobre comandos e funções do Scilab. Por exemplo: help cós (Informa

sobre a função que calcula o co-seno); help ceil −Informa sobre a função ceil.

O comando apropos procura comandos e funções utilizando uma palavra-chave. Por

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.

O comando help() abre a ajuda do scilab pelo prompt.

Page 18: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB

EXERCÍCIOS:

Page 19: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB

3 - POLINÔMIOS, VETORES, MATRIZES E LISTAS

3.1 – POLINÔMIOS

Os polinômios são criados no Scilab através da utilização da função poly. Salientamos que

polinômios de mesma variável podem ser somados, subtraídos, multiplicados e divididos entre si.

Por exemplo, o polinômio p = s2 - 3s + 2, que possui raízes 1 e 2, pode ser criado através do

comando

-->p = poly([1 2], 's') // Polinômio definido pelas suas raízes

p =

2

2 - 3s + s

-->

Com a função roots, comprovamos que as raízes de p são, realmente, 1 e 2:

-->roots(p) //função para encontrar as raízes de um polinômio

ans =

1.

2.

Page 20: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB

-->

Um polinômio também pode ser criado a partir da especificação de seus coeficientes. Por

exemplo, o polinômio q = 2s + 1 é criado através do comando,

-->q = poly([1 2], 's', 'coeff') // Polinômio definido pelos seus coeficientes

q =

1 + 2s

-->roots(q) // Obtendo as raízes do polinômio q

ans =

- 0.5

-->

Para complementar, os dois polinômios podem ser multiplicados, divididos, somados ou

subtraídos como mostra a seqüência de comandos,

-->p * q // Multiplicação

ans =

2 3

2 + s - 5s + 2s

-->p / q // Divisão

ans =

2 - 3s + s ---------- 1 + 2s

-->p + q // Adição

ans =

2

3 - s + s

-->p - q // Subtração

ans =

2

1 - 5s + s

-->

Page 21: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB

OBS: os coeficientes entre colchetes seguem a ordem do menor expoente para o maior!!

y = poly([1 2 3], 'x', 'coeff')

y =

2 1 + 2x + 3x

-->roots(y)

ans =

- 0.3333333 + 0.4714045i

- 0.3333333 - 0.4714045i

3.2 - VETORES

As grandezas vetoriais são criadas colocando-se seus componentes entre colchetes, [ ]. Os

componentes de um vetor podem ser separados por espaço, vírgula ou por ponto-e-vírgula. É

importante observar que elementos entre [ ], separados por espaço ou por vírgula, dão origem a

vetores linha. Quando separados por ponto-e-vírgula dão origem a vetores coluna.

-->v = [2, -3+%i, 7] // Vetor linha

v =

2. - 3. + i 7.

-->v' // Vetor transposto

ans =

2.

- 3. - i

7.

-->w = [2 3 4] // Vetor linha: outra forma

w =

Page 22: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB

2. 3. 4.

-->z = [3; 5; 7] // Vetor coluna

z =

3.

5.

7.

-->

-->v = 5: -0.5: 3 // Vetor com elementos decrementados

v =

5. 4.5 4. 3.5 3.

-->m = ones(1:4) // Vetor constituído de elementos iguais a 1

m =

1. 1. 1. 1.

-->z = zeros (1:5) // Vetor constituído de elementos iguais a 0

z =

0. 0. 0. 0. 0.

-->

ATENÇÃO (TENTE!!): AS OPERAÇÕES ELEMENTARES COM VETORES PODEM SER

FEITAS NORMALMENTE, SOMENTE LEMBRANDO QUE:

Vetores de mesma dimensão podem ser somados ou subtraídos.

O produto escalar de um vetor linha por um vetor coluna.

A multiplicação e a divisão de um vetor (linha ou coluna) por um escalar também podem ser

facilmente realizada.

3.3 – MATRIZES

Vamos considerar as matrizes:

Page 23: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB

Os elementos que constituem as linhas das matrizes são separados por espaços ou por

vírgulas. A indicação de término de cada linha da matriz é feita com ponto-e-vírgula. Nos exemplos

a seguir, para fixar os conceitos, a matriz A é digitada com os elementos de suas linhas separados

por espaços enquanto a matriz b é digitada com os elementos de suas linhas separados por vírgula

(entretanto, a mesma representação podia ser usada para as duas!!).

-->A = [1 2 3; 5 -8 9] // Matriz A(2 x 3) - Elementos das linhas separados por espaço

A =

1. 2. 3.

5. - 8. 9.

-->b = [1, 2, 3; 4, 5, 6] /// Matriz b (2 x 3) - Elementos das linhas separados por virgulas

b =

1. 2. 3.

4. 5. 6.

-->

Usamos a função ones para criar a matriz c (2x3), com todos os elementos iguais a 1:

-->c = ones(2,3)

c =

1. 1. 1.

1. 1. 1.

-->

A matriz A é multiplicada pela matriz c transposta

-->A * c'

ans =

Page 24: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB

6. 6.

6. 6.

-->

Podemos criar matrizes a partir de elementos de outras matrizes. Por exemplo: Definido as

matrizes A, B e C:

-->A = [1 2; 3 4];

-->B = [5 6; 7 8];

-->C = [9 10; 11 12];

Definindo a matriz D, a partir de A, B e C:

-->D = [A B C]

D =

1. 2. 5. 6. 9. 10.

3. 4. 7. 8. 11. 12.

-->

A matriz E, com três linhas e quatro colunas, é criada usando a função matrix. Esta função gera E a

partir da organização dos elementos da matriz D por colunas.

-->E = matrix(D,3,4) E = 1. 4. 6. 11. 3. 5. 8. 10. 2. 7. 9. 12. -->

ATENÇÃO (TENTE!!): AS OPERAÇÕES ELEMENTARES COM MATRIZES PODEM SER

FEITAS NORMALMENTE, SOMENTE LEMBRANDO AS REGRAS PARA ÁLGEBRA DE

MATRIZES, POR EXEMPLO: Lembrar que, para que duas matrizes possam ser multiplicadas, o

número de colunas da primeira matriz deve ser igual ao número de linhas da segunda matriz, e

assim por diante...

OBS: Matrizes com Polinômios

Page 25: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB

Os elementos de uma matriz podem ser polinômios.

Ex.:

//aqui também poderiam ser usadas as formas de declarar polinômios do item 3.1

-->x = poly(0, 'x'); p = 2 + 3 * x + x ^ 2 // Outra maneira de definir um polinômio

p =

2 + 3x + x2

-->// Definindo uma matriz polinomial, M

-->M = [p, p-1; p+1, 2]

M =

2 + 3x + x2 1 + 3x + x2

3 + 3x + x2 2

-->// Obtendo o determinante de M

-->det(M)

ans =

1 - 6x - 11x2 - 6x3 – x4

A partir de uma matriz formada por elementos que são polinômios racionais,

-->s = poly(0, 's');

-->F = [ 1/s, (s +1)/(s + 2); s/(s+3), s^2 ] // Definindo uma matriz F de polinômios racionais

F =

1 1 + s

- ----- s 2 + s s s2 ----- - 3 + s 1

Podemos criar outra matriz apenas com o numerador das frações:

Page 26: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB

-->F('num') // Pegando os numeradores

ans =

1 1 + s

s s2

Ou com seus denominadores:

-->F('den') // Pegando os denominadores

ans =

s 2 + s

3 + s 1

3.4 – LISTAS

Uma lista é uma coleção de objetos não necessariamente do mesmo tipo. Uma lista simples

é definida pela função list. Esta função tem a forma geral: list(a1, a2,. . . ,an), onde os ai são os

elementos da lista. Vamos criar uma lista simples, que chamamos de L, composta por três

elementos: o elemento 1, associado a L(1), o elemento w, associado a L(2) e uma matriz 2x2

composta de elementos iguais a 1, associada a L(3):

-->L = list(1, 'w', ones(2,2)) // Uma lista simples com 3 elementos

L =

L(1)

1.

L(2)

Page 27: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB w

L(3)

1. 1.

1. 1.

Podemos indexar listas (listas dentro de listas). É importante observar que a indexação de

elementos de uma lista, no Scilab, inicia-se por 1. Vamos transformar o elemento L(2) da lista do

exemplo anterior em outra lista (isto é, vamos indexar outra lista) cujo primeiro elemento, L(2)(1), é

w e cujo segundo elemento, L(2)(2), é uma matriz 2x2 de números zeros

L(2) = list('w', zeros(2,2)) //transformando o elemento L(2) em uma nova lista

L =

L(1)

1.

L(2)

L(2)(1)

w

L(2)(2)

0. 0.

0. 0.

L(3)

1. 1.

1. 1.

Podemos acessar qualquer elemento da lista fazendo simplesmente uma chamada de sua

posição:

L(2)(1) //acessa o primeiro elemento de L(2) que será w

L(2)(2)(2,1) //acessa o segundo elmento de L(2) que é a matriz e o elemento lij=(2,1) da

matriz

Page 28: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB

3 - GRÁFICOS

O scilab possui ferramentas para implementação e edição de gráficos. Apresentamos alguns

comandos que podem ser utilizados para traçar gráficos bi-dimensionais e tri-dimensionais usando

o Scilab. Todos os comandos estão disponíveis na biblioteca Graphic Library no Help (?) do

programa.

A função básica para gráficos é plot, com a seguinte estrutura:

plot ( [veto i], [vetor j] )

Exemplo: Dada a tabela ou pares ordenados (x, y) a seguir, podemos plotar o gráfico da variável

y em função de x como segue.

(1,4); (2,5); (3,6)

Plot ( [1 2 3] , [4 5 6] )

Page 29: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB

3.1 – PLOTANDO GRÁFICOS BI-DIMENSIONAIS (2D)

O comando mais comum é plot2d e pode ser chamado de duas maneiras:

plot2d(x,[y])

plot2d(x,[y], atributos opcionais)

Vejamos agora as variantes de plot2d existentes:

· plot2d1 e uma forma obsoleta em desuso

· plot2d2 faz o gráfico e uma função de escada

· plot2d3 desenha o gráfico com barras verticais

· plot2d4 insere setas na linha do gráfico

Exemplos:

reta

y1 =7- 3 x1 -1<x<6

É necessário definir o intervalo de (x), isto é, vetor das abscissas (x1) e a função (y)

-->x1=[-1:.2:6]

-->y1=7-3*x1

-->plot2d(x1,y1)

(OBS: plot2d1(x1,y1) = plot2d(x1,y1)

plot2d2(x1,y1)

Page 30: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA

plot2d3(x1,y1)

plot2d4(x1,y1)

INTRODUÇÃO À INFORMÁTICA

SCILAB

Page 31: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB parábolas

y=x^2 – 2 -4 < x < 4

-->x2=[-4:.2:4];

-->plot2d(x2,x2^2-2)

senóide

y8 = sen x8

-->x8=[0:0.1:2*%pi];

-->y8=sin(x8);

-->plot2d(x8,y8)

Faça também:

a)

-->t=[0:.1:2*%pi];

-->x=cos(t);

-->y=sin(t);

-->plot2d(x,y)

b)

-->x=[0:0.1:2*%pi]';

-->plot2d([sin(x) sin(2*x) sin(3*x)])

Plotando duas funções no mesmo gráfico, utilizando matrizes. Exemplo com Exponenciais

a) y4 = 2^x -3<x<4

-->x4=[-3:.2:4]

-->y4 = 2^x4

b) y5 = (½)^x

-->y5=(.5)^x4

Formando a matriz cuja 1 coluna tem os valores de y4 e a segunda coluna tem os valores de y5.

Observe a transposição (‘) (nesse caso foi necessário fazer a transposta para que as matrizes

tivessem a mesma dimensão. Isso tem que sempre ser observado ao se fazer gráficos valendo-se de

matrizes)

-->my45=[y4; y5]'

Plotando os dois gráficos

-->plot2d(x4,[my45])

Observe que o scilab colocou cores diferentes nas curvas.

Page 32: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA

3.2 - IDENTIFICAÇÃO DE

Suponha que se queria id

locate permite fazer isto.

Ex.:

-->y=poly([3 -2 -12 -2 2],"x","coeff");

-->x=[-2:0.1:3.2};

-->plot2d(x,[horner(y,x)'])

-->xgrid():

Queremos identificar

até clicarmos o último. O comando a usar é

-->x=locate(9,1)

x =

column 1 to 5

- 1.7734375 - 1.3125

- 0.1796407 - 4.6107784

column 6 to 9

0.421875 1.1796875

- 0.0598802 - 15.628743

INTRODUÇÃO À INFORMÁTICA

DENTIFICAÇÃO DE PONTOS NUMA CURVA DE UM GRÁFICO

ueria identificar alguns dos pontos de interesse no

2],"x","coeff");

9 pontos e marcá-los com X (opção=1 –

comando a usar é x=locate([número de pontos, opção (dí

- 0.7578125 - 0.6875 - 0.078125

- 0.8982036 - 0.1796407 3.1736527

2.1875 3.03125

- 34.071856 - 0.0598802

SCILAB

RÁFICO

ntos de interesse no gráfico. O comando

existem outras opções !),

opção (dígito)])

Page 33: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA

3.3 - ESCREVER NO ESPAÇO DO

-->x=linspace(0,3,300);

-->plot2d(x,[2*exp(0.5*x);2*0.

-->xgrid()

O comando a que vamos

x e y, por esta ordem. É o xstrin

xstring(valor de x, valor de

-->xstring(0.1,7,'Curvas exponencial

-->xstring(0.75,5,'Gompertz')

-->xstring(2,5,'Exponencial')

O aspecto final do gráfico é o da figura

INTRODUÇÃO À INFORMÁTICA

ESPAÇO DO GRÁFICO E IDENTIFICAR CU

;2*0.2^(exp(-0.8*x)-1)]');

mos recorrer usa como localização, as escalas

xstring:

y, ‘texto’)

exponencial e de Gompertz');

g(0.75,5,'Gompertz')

g(2,5,'Exponencial')

o é o da figura a seguir:

SCILAB

DENTIFICAR CURVAS

scalas dos eixos do gráfico,

Page 34: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA

3.4 - ESCREVER NO ESPAÇO DO

Agora queremos inscre

num ponto que escolhemos de

O comando legend é usado.

hl=legend(['nome da 1ª curva';'nome

-->hl=legend(['Exponecial'

hl corresponde à expressão

Depois deste comando e

gráfico a seguir

INTRODUÇÃO À INFORMÁTICA

ESPAÇO DO GRÁFICO AS LEGENDAS DAS CU

inscrever a legendas das curvas no espaço do grá

epois de arraste a moldura (clicando no mouse)

curva';'nome da 2ª curva'],a=5);

';'Gompertz'],a=5);

ão handle da biblioteca de gráficos.

de ter clicado no canto inferior direito da ár

SCILAB

ICO AS LEGENDAS DAS CURVAS

áfico, com uma moldura,

(clicando no mouse) no lugar desejado.

área do gráfico, temos o

Page 35: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA

3.5 - FORMATAR GRÁ

EDIÇÃO

Os programadores do Scilab

facilitar o trabalho dos usuários

O gráfico a seguir só tem

anterior, obtido inserindo no m

INTRODUÇÃO À INFORMÁTICA

RÁFICOS 2D COM OS MENUS E BOTÕES DA JANELA DE

Scilab criaram a interface de edição dos gráficos

facilitar o trabalho dos usuários

os eixos e as curvas, sem mais nenhum text

mesmo gráfico a função polinomial e as suas

SCILAB

BOTÕES DA JANELA DE

ráficos com o propósito de

m texto, como o da figura

uas derivadas.

Page 36: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB Os comandos de edição do scilab são:

Os menus da barra superior

O menu File permite o habitual e pouco mais:

New – abrir uma nova janela de gráfico em branco.

Load – abrir um ficheiro de um gráfico. Por exemplo, se quisermos comparar dois gráficos

estando na janela de um deles, abrimos outra com New e depois nesta nova janela usamos

o Load para abrir o outro gráfico. Podemos redimensionar as janelas e arrumá-las lado a

lado.

Save – guardar o gráfico.

Export – guardar em formatos tais como postscript e Latex .

Copy to clipboard – copiar para a memória para eventualmente ser colado, por exemplo,

numa página de processador de texto

Print setup – Configurações para imprimir

Print – imprimir.

Close – fechar a janela do gráfico

O menu “Tools” exibe:

Toolbar – fazer aparecer ou desaparecer a barra de ferramentas.

Zoom – ampliar uma região do gráfico.

UnZoom – anular a ampliação.

2D/3D Rotation – Proceder à rotação dos gráficos

O menu Edit tem o seguinte:

Select figure as current – quando se tem mais de uma janela de gráfico selecciona a que vai

ser objecto de comandos.

Redraw figure – Redesenhar a figura (em desuso)

Erase figure – limpa a janela do gráfico

Figure properties – abre uma janela de alteração das propriedades da figura Current axes

properties – abre uma janela que permite formatar os eixos Start entity picker – activa a

possibilidade de escolher uma área

Stop entity picker – encerra a possibilidade de escolher uma área

Page 37: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA

Os botões da barra de fe

Da esquerda para a direita:

1º Ativa o zoom; anula a a

2º permite rodar o gráfico

3º abre a janela que permite

4º ativa/desativa a possibilidade

comandos dos menus.

Formatando os eixos e título e atributos gerais

Numa iniciação ao soft

isso comecemos pelos eixos

figura 4.7, onde fizemos um clique em Áxis(1).

À direita da caixa de seleção

de separadores, sob o título “Objects Prope

Figu

INTRODUÇÃO À INFORMÁTICA

ra de ferramentas

uerda para a direita:

ampliação;

a três dimensões;

mite formatar todo o gráfico;

possibilidade de escolher uma área (clipping). São

os e título e atributos gerais

software, não aconselho que se mexa nas prop

do gráfico. Façamos um clique no botão GE

m clique em Áxis(1).

da caixa de seleção dos elementos do gráfico (“Objects Browser”),

sob o título “Objects Properties” (propriedades dos objectos).

Figura do editor de gráfico.

SCILAB

São alternativas a alguns

propriedades da figura. Por

GED. Surge a janela da

wser”), surge um conjunto

ies” (propriedades dos objectos).

Page 38: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB Os separadores dos três eixos (X, Y, Z) são iguais em possibilidades de intervenção por

parte do utilizador. Estão reunidas em dois grupos:

1- Label Options que permitem formatar a legenda quanto ao tipo de letra, posição e sua

orientação.

2- Axis Options que incidem sobre o eixo (posição, espessura do traço, cor da grelha

correspondente, escala linear ou logarítmica, limites da escala, marcações da escala).

Comecemos pelas opções para a legenda (Label Options):

Ø No espaço para entrada de texto (caixa de texto), em frente de “Label”, clica-se, escreve-

se a legenda do eixo, e depois pressiona-se Enter/Return. O botão de escolha ou opção Visibility

deve ser ativado.

Ø Se escolhermos Fill mode on, é traçado um retângulo à volta da legenda, cujo fundo

pode ser colorido, como veremos abaixo.

Ø Sugiro que se mantenha o botão Auto-position on, e a legenda é inserida a meio do

comprimento do eixo.

Ø No entanto, na caixa de texto em frente a Position, permite escrever a posição da legenda,

referenciada à escala do eixo. Não se esqueça de pressionar Enter/Return.

Ø Os botões de opção Font angle permitem orientar a legenda. Sem qualquer

intervenção, a legenda é escrita ao longo do eixo.

Ø Na linha seguinte, os botões deslizante denominados Fore/Back colors permitem escolher

a cor das letras (o da esquerda) e da caixa da legenda, se ativamos Fill mode.

Ø O deslizante Font size permite escolher o tamanho da letra.

Ø A entrada Font style, como em qualquer processador de texto, permite escolher o tipo de

fonte. Por defeito é o Helvética.

Vejamos as opções de formatação para o eixo (Axis Options).

Ø Location permite três posições para o eixo: no topo, em baixo, no meio.

Ø Data bounds permite alterar os limites da escala do eixo.

Ø Grid color, se o gráfico tem grelha, permite escolher a cor das linhas

correspondentes á escala do eixo.

Ø Scale oferece a possibilidade de escolher uma escala linear ou logarítmica.

Ø Ticks abre uma janela que permite alterar as marcações no eixo.

Ø Reverse põe a escala com o valor máximo onde por defeito fica o mínimo.

Page 39: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB O separador para inserir o título do gráfico tem só as Label Options idênticas às dos

eixos, e que se utilizam da mesma maneira.

O separador Style:

Ø Deve ter o botão de opção Visibility ativado para se ver o gráfico na sua janela.

Ø Font style permite escolher o tipo de letra das escalas dos eixos.

Ø Font color a cor dos algarismos das escalas.

Ø Font size o tamanho do tipo de letra escolhido atrás.

Ø Fore color refere-se à cor do traço dos eixos.

Ø Back color a cor de fundo ou do espaço definido pelos eixos.

Ø Thickness à espessura do traço dos eixos.

Nesta fase de aprendizagem ignoramos Hidden color e Line style.

No separador Aspect, sugerimos que o leitor, por si, verifique o efeito de ativar os botões de

opção Auto clear, Auto scale e Box. Isoview, Tight limits. Cube scaling só se aplica aos

gráficos 3D. Ignore o resto do separador.

O separador Viewpoint, nos gráficos 3D, permite definir a elevação re o azimute do

gráfico. Estes dois conceitos esclarecem-se na figura 4.9. Se num gráfico 2D clicarmos no botão

3D , ele aparece no plano definido pelos eixos x e y, do gráfico a 3D.

Formatar o traçado das curvas e as entidades no espaço dos eixos

Na janela do editor do gráfico, clique em compound(1) e depois em Polyline(3). Surge o

editor das linhas das curvas do gráfico, denominado Polyline Editor, que permite formatar a curva

da função.

Page 40: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA

Editar os dados de uma cu

O editor das curvas (Polyline Edi

ignorar o último.

O Data tem uma caixa

informação sobre a estrutura

clicarmos no botão à direita

clicarmos em Edit data, aparece

que permite alterá-los. Clique

amarelo, e introduza os novos

em cada célula a alterar. No fim,

INTRODUÇÃO À INFORMÁTICA

r os dados de uma curva

yline Editor) tem três separadores: Style, Data

caixa de texto, que é simultaneamente um

ura dos dados, no nosso caso uma matriz (

direita desta informação, aparece uma caixa onde

aparece uma espécie de folha de cálculo com

lique na célula cujos valores quiser alterar, ela

os valores e pressione Enter/Return. Este

fim, clique no botão, acima e à esquerda, Refres

SCILAB

a, Clipping. Vamos

um menu. Por defeito dá

([53x2 double array]). Se

onde surge Edit data. Se

os valores das variáveis,

, ela fica com o fundo a

ste procedimento é repetido

efresh, para sair e fechar.

Page 41: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB Editar uma curva

Ocupemo-nos agora do separador Style. Vejamos, então, as opções de controle, ignorando

Interp. mode.

Ø Visibility é um um botão que permite fazer desaparecer e aparecer o a linha da área dos

eixos.

Ø Closed fecha a curva traçando uma reta entre os seus extremos.

Ø Fill mode com a opção Close ativada permite preencher o espaço entre a curva e reta com

uma cor que se escolhe abaixo, no deslizante

Ø Background.

Existem dois grupos de editor. Ou escolhemos uma linha continua, ativando Line mode, ou

de uma série de marcas (por exemplo, triângulos, estrelas, cruzes, etc.), selecionando o

botão Mark mode, que fica mais abaixo. Por exemplo, na curva desenhada por linha (Line

mode).

Editor do gráfico pronto a iniciar a formatação da curva da função polinomial.

Ø Polyline style tem uma caixa de texto que permite escolher vários tipos de

reprentação dos valores (por exemplo, em escada, com setas), clicando no seu botão à direita

Ø Se tivermos escolhido o estilo correspondente a uma linha simples (interpolated), como

na figura 4.6, na caixa de texto Line é possível escolher entre uma linha continua e vários

tipos de ponteado e tracejado.

Ø Arrowed size permite escolher o tamanho das setas, se tivermos escolhido em

Ø Polyline style, uma linha com setas (Arrowed).

Ø Foreground tem um botão deslizante que permite escolher a cor da linha. Igoramos também

Interp. vector.

Ø Em Mark mode, podemos:

Ø Escolher o símbolo da marca em Mark style.

Ø A caixa de texto pode altera a marca seleccionada para pontos (point) ou mantê-la

Ø (tabulated).

Ø Ao lado pode-se escolher o tamanho das marcas.

Ø Mark foreground escolhe as cores das linhas da marca.

Ø Mark background escolhe a cor de enchimento da marca. Por exemplo, uma estrela

pode ser desenhada com uma linha verde, e preenchida com uma cor azul.

Page 42: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA

Editor dos dados (Edit Va

O aspecto do gráfico da

INTRODUÇÃO À INFORMÁTICA

Var) da curva da função polinomial, com umaser alterada

da figura depois de modificado com o auxílio

(Graphic Editor).

SCILAB

a célula selecionada para

io do editor de gráfico

Page 43: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA

Na figura a seguir, há

legenda que está inserida em bai

O “Áxis(2)” além da

de fazer, permite editar o

Experimente também este caso de fo

Outras possibilidades de criar

O Scilab ainda apresenta

plot2d e histplot:

fplot2d: faz o gráfico de um

de duas dimensões champ1: pe

fchamp: campo de vetores

contour2d: traça as curvas de

fcontour2d: traça as curvas

gráfico 2D

grayplot: cria uma superfíc

fgrayplot: cria uma superfície

INTRODUÇÃO À INFORMÁTICA

Na figura a seguir, há dois “Áxis”. O “Áxis(1)” corresponde à moldura,

baixo, à direita, no espaço dos eixos, que também

formatação mencionada na descrição do editor

texto inserido no espaço dos eixos (Text(3),

ambém este caso de formatação de gráfico.

Editor de gráfico associado

de criar facilmente gráficos a duas dimensões

apresenta os seguintes comandos para gráficos a d

ma curva definida por uma função. champ: cria um

permite colorir os vetores do campo

etores associado a uma equação diferencial ord

s de nível de uma superfície num gráfico 2D

as de nível de uma superfície definida por

cie num gráfico a duas dimensões usando cores

superfície definida por uma funçã num gráfico

SCILAB

moldura, texto e linhas da

mbém pode ser formatada.

editor de gráfico, acabada

ext(3), Text(4), Text(5)).

icos a duas dimensões

duas dimensões, além do

. champ: cria um campo de vetores

ordinária (EDO)

por uma função num

cores

a duas dimensões

Page 44: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB

usando cores

pie: cria um gáfico circular, como se ilustra na figura 4.13

Sgrayplot: suaviza uma superfície num gráfico a duas dimensões usando cores, como se ilutra

na figura 4.14

Sfgrayplot: suaviza uma superfície definida por uma função num gráfico a duas

dimensões usando cores.

errbar : acrescenta baras verticais de erros a um gráfico 2D

Matplot : cria uma quadricula preenchida a cores

Exemplo de um gráfico circular

O Scilab tem ainda comandos para criar tipos particulares de gráficos a duas dimensões,

tais como:

xpoly: desenha uma linha ou um polígono

xpolys: desenha um conjunto de linhas ou polígonos

xrpoly: desenha um polígono regular

xsegs: desenha segmentos de recta não ligados

xfpoly: preenche um polígono

xfpolys: preenche um conjunto de polígonos

xrect: desenha um rectângulo

xfrect: preenche um rectângulo

xrects: desenha ou preenche um conjunto de rectângulos

xarc: desenha parte de uma elipse

Page 45: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB xarcs: desenha partes de um conjunto de elipses

xfarc: preenche parte de uma elipse

xfarcs: preenche partes de um conjunto de elipses

Para obter mais informação e exemplos de uso dos comandos, como já sabe, entre com

help nome do comando. Copie os exemplos da Ajuda, e cole-os na janela de comandos para

ver o que produzem e poder interpretar melhor o significado das instruções que têm.

Gráfico obtido com o comando Sgrayplot

3.6 - INSERIR VÁRIOS GRÁFICOS NA MESMA JANELA

O comando que permite criar um vetor ou uma matriz de gráficos é o seguinte subplot:

subplot(número de linhas com gráficos, número de colunas com gráficos, número de ordem do gráfico)

Abaixo deste comando insere-se o comando que cria o gráfico na célula da matriz de

gráficos, como por exemplo, plot2d(x,[y]).

Page 46: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB Se quisermos dois gráficos lado a lado

teremos:

subplot(1,2,1)

Comando para criar o gráfico 1

subplot(1,2,2)

Comando para criar o gráfico 2

Gráfico 1 Gráfico2

Se quisermos um gráfico a cima e outro abaixo:

subplot(2,1,1)

Comando para criar o gráfico

1

subplot(2,1,2)

Comando para criar o gráfico

2

Gráfico 1

Gráfico2

O último exemplo: uma matriz de quatro gráfico:

subplot(2,2,1)

Comando para criar o gráfico

1

subplot(2,2,2)

Comando para criar o gráfico

2

subplot(2,2,3)

Comando do gráfico

3 subplot(2,2,4)

Comando do gráfico

4

Gráfico 1 Gráfico 2

Gráfico 3 Gráfico 4

Vejamos um exemplo de aplicação fictício, grafando a variação da densidade de árvores, por

exemplo, os crescimentos em diâmetro, altura e volume do tronco. Repare na instrução

boxed=1, no comando xtitle, que cria uma caixa nos títulos e legendas. Os gráficos foram

depois de criados, foram formatados com o editor de gráficos.

Page 47: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB // tabela de produção do pinheiro bravo, dos 10 aos 80 anos

//den=densidade, árvores/hectare, gráfico 1

//dap=diâmetro à altura do peito médio, cm, gráfico 2

//alt=altura média, metros, gráfico 3

//vol=volume do tronco, metros cúbicos/ha, gráfico 4

//t=Idade em anos

//quatro equações de Gompertz xbasc()

t=10:1:80;

den=314*6.18^exp(-0.05*(t-10));

dap=34*0.4^exp(-0.05*(t-10)); alt=24*0.4^exp(-0.05*(t-10)); vol=400*0.4^exp(-0.05*(t-10));

subplot(2,2,1)

plot2d(t,[den])

xtitle('Densidade','Idade, anos','àrv./ha',boxed=1)

subplot(2,2,2)

plot2d(t,[dap])

xtitle('Diâmetro médio','Idade, anos','cm',boxed=1)

subplot(2,2,3)

plot2d(t,[alt])

xtitle('Altura média','Idade, anos','m',boxed=1)

subplot(2,2,4)

plot2d(t,[vol])

xtitle('Volume em pé','Idade, anos','m.c./ha',boxed=1)

Page 48: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB

Tabela exemplo, criada usando o comando subplot

3.7 - GRÁFICOS A TRÊS DIMENSÕES (3D)

Um dos comandos tidos como mais empregues pelos utilizadores do Scilab, é o plot3d,

que apresenta variantes tal como o plot2d. Enumeremos esta família de comandos:

plot3d – faz um gráfico de uma superfície 3D

plot3d1 - faz um gráfico 3D de uma superfície cinzento ou com níveis a cores

plot3d2 - faz um gráfico 3D de uma superfície definida por retângulos

plot3d3 - faz um gráfico 3D de uma superfície em rede (“mesh”) definida por retângulos

mesh – faz um gráfico 3D definido por uma rede

Para usar o comando plot3d, criamos primeiro os vetores de valores de x, y e z. Agora com a

existência do editor do gráfico, basta escrever:

plot3d(x,y,z)

e depois fazer a formatação desejada com o editor de gráficos. A listagem de comandos

Page 49: APOSTILA_SCILAB_parte_1-_Física

FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB

seguinte cria uma janela com uma matriz de quatro gráficos que ilustram as variantes de plot3d,

exibida na figura a seguir, com os títulos editados. Os exemplos foram tirados da ajuda do

Scilab.

xbasc() //limpa qualquer janela de gráfico aberta

//dados para a função z=f(x,y)

//usada pelos comandos plot3d e plot3d1

t=[0:0.3:2*%pi]';

z=sin(t)*cos(t');

//dados para os comandos plot3d2 e plot3d3

u = linspace(-%pi/2,%pi/2,40);

v = linspace(0,2*%pi,20); X = cos(u)'*cos(v);

Y = cos(u)'*sin(v); Z = sin(u)'*ones(v);

//inserir 4 gráficos na mesma janela subplot(2,2,1)

plot3d(t,t,z) //comando plot3d xtitle("plot3d","x","y","z")

subplot(2,2,2)

plot3d1(t,t,z) //comando plot3d1

xtitle("plot3d1","x","y","z")

subplot(2,2,3)

plot3d2(X,Y,Z); // comando plot3d2 xtitle("plot3d2","X","Y","Z") subplot(2,2,4)

plot3d3(X,Y,Z) // comando plot3d3

xtitle("plot3d3","X","Y","Z")

Formatar gráficos 3D com os menus e botões da sua janela

Se chamarmos o editor de gráfico da janela da figura e abrirmos as árvores dos quatro

conjuntos de eixos obtemos o que se exibe na figura 4.17. Como de costume, o “Axis1”

corresponde ao gráfico 4 (plot3d3), o “Axis2” ao gráfico 3 (plot3d2), o “Axis3” ao gráfico 2

(plot3d1), e o “Axis4” ao gráfico 1 (plot3d). A formatação dos eixos, chamada clicando em “Áxis”

é idêntica à descrita para os gráficos 2D. O aspecto distintivo relevante surge no separador

“Viewpoint” que permite alterar a elevação e azimute do observador virtual, e reduzir o gráfico a

duas dimensões. Os gráficos 1 e 2, não criam retângulos por isso são identificados por Plot3d. O

comando plot3d2, do gráfico 3 cria uma superfície de retângulos (“facets”), por isso surge

Fac3d. O gráfico 4 cria dois conjuntos de linhas (“polylines”) “Compound(1)” e

“Compound(2)”. O primeiro com 40 linhas e o segundo com 20 linhas, que se editam como

nos gráficos 2D.

Page 50: APOSTILA_SCILAB_parte_1-_Física

Cliquemos, no “Axis4”

gráficos 2D e que se usa

respeito aos botões de opção de

dois e vice-versa. A “Hidden

tiver porções visíveis.

Naveg

Axis4” em Plot3d. Surge-nos uma janela que t

am da mesma maneira. O aspecto mais in

de “Color flag” que permitem passar do aspecto

“Hidden color” corresponde à face inferior da superfície

O

gador no gráfico com os “ramos” “Áxis” aber

50

têm aspectos comuns ao

novador desta janela diz

specto do gráfico um para o

superfície criada, se esta

rtos.

Page 51: APOSTILA_SCILAB_parte_1-_Física

.

Os gráficos depois de s

Editor do Plot3d do gráfico

submetidos a alguns atos de formatação usando

51

sando o editor de gráficos

Page 52: APOSTILA_SCILAB_parte_1-_Física

52

Outras possibilidades de criar facilmente gráficos 3D

À semelhança do que se passa com os gráficos 2D, o Scilab ainda apresenta outros

comandos para se obterem gráficos 3D. Eis alguns:

fplot3d : faz um gráfico 3D de uma superfície definida por uma função

fplot3d1 : faz um gráfico 3D de uma superfície definida por uma função com níveis de

cizento ou cor

param3d : faz o gráfico de uma curva

param3d1 faz o gráfico de curvas

contour : insere curves de nível num gráfico 3D

fcontour : insere curvas de nível no gráfico de uma superfície definida por uma função

hist3d : histograma em 3D