apostila_scilab_parte_1-_física
TRANSCRIPT
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.
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
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)
FÍSICA – INTRODUÇÃO À INFORMÁTICA
INTRODUÇÃO À INFORMÁTICA
SCILAB
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
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
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:
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
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.
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 =
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 =
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.
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"
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:
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).
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;
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.
FÍSICA – INTRODUÇÃO À INFORMÁTICA SCILAB
EXERCÍCIOS:
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.
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
-->
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 =
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:
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 =
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
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:
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)
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
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] )
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)
FÍSICA – INTRODUÇÃO À INFORMÁTICA
plot2d3(x1,y1)
plot2d4(x1,y1)
INTRODUÇÃO À INFORMÁTICA
SCILAB
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.
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)])
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,
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
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.
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
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).
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.
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.
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.
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.
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
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
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
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]).
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.
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)
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
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.
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.
.
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
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