Professional Documents
Culture Documents
DO SUL
COORDENAO DE MATEMTICA
CURSO BACHARELADO DE ENGENHARIA FSICA
Dourados MS
2016
1
SUMRIO
Introduo................................................................................... 4
Ambiente Scilab........................................................................... 5
Principais operadores................................................................... 6
Principais funes......................................................................... 7
Variveis....................................................................................... 9
Plotando o primeiro Grfico.......................................................... 11
Grficos 2-D.................................................................................. 13
Grficos 3-D.................................................................................. 19
Referncias................................................................................... 30
Introduo
O SCILAB gratuito, Free software, e distribudo com o cdigo fonte, Open Source software,
destinado a computao numrica e fornece um ambiente de computao muito poderoso para
engenharia e aplicaes cientificas.
O software inclui centenas de funes matemticas e tem uma linguagem de programao alto
nvel permitindo o acesso a dados estruturais avanadas, funes grficas 2-D e 3-d. Atualmente muitas
instituies vem utilizando o SCILAB pelas suas diversas aplicaes nas reas de ensino de exatas por
possuir recursos tais como optimizao linear ( e no linear ), recursos a mtodos numricos ou pela
possibilidade de plotagem de grficos de funes dos mais diversos tipos.
A introduo ao SCILAB apresentada nesse documento ter um foco direcionado a uma
importante aplicao desse software que a plotagem de grficos de superfcies 3-D. O intuito que
possamos de forma simples e objetiva levar alunos iniciantes, ou que no tiveram nenhum contato a
logica de programao, a compreenso e desenvolvimento de grficos de superfcies que so estudados
nas disciplinas de Clculo diferencial e integral.
AMBIENTE SCILAB:
Uma vez instalado e pronto para execuo precisamos definir o ambiente de trabalho do SCILAB
que utilizaremos, por exemplo, para entramos com os cdigos a serem desenvolvidos e visualizarmos os
grficos que sero plotados. O ambiente SCILAB constitudo basicamente de cinco alas o Navegador de
arquivos, Console, Scinotes, Navegador de variveis e o Histrico de comandos.
Navegador de arquivos - Trata se de uma ala onde podemos importar arquivos da memoria do
computador.
Console - onde as operaes matemticas so executadas e visualizadas pelo usurio.
Scinotes - Ala em que so desenvolvidos os algoritmos que iram ser executados e visualizados
no console.
Navegador de variveis - Uma ala no ambiente de trabalho onde so registradas todas as
entradas que definem variveis, os valores podem ser visualizados tanto como suas
modificaes.
Historico de comandos - Ala responsvel pelo registro de todos os comandos utilizados na
produo dos algoritmos, registra o comando, data e hora que foi implementado.
Abaixo temos uma imagem do ambiente SCILAB com suas alas destacadas e tituladas.
PRINCIPAIS OPERADORES:
Operadores de Atribuio
Smbolo
=
Operao
Avalia o que existe do lado direito da igualdade e atribui ao lado esquerdo
Operadores Aritmticos
Smbolo
+
*
/
\
%
Operao
Soma
Subtrao
Multiplicao
Diviso
Diviso inteira
Mdulo ( ou resto da diviso )
Operadores Lgicos
Smbolo
~
|
&
==
<>
>
<
>=
<=
Operao
Negao
Ou
e
igualdade
Diferena
Maior
Menor
Maior igual
Menor igual
Operadores Construtivos
Smbolo
[]
;
()
Operao
Definir uma matriz, Concatenao
Finaliza um comando, Delimita uma linha
Manipulador de elementos
PRINCIPAIS FUNES:
O SCILAB dispe de funes predefinidas que auxiliam e poupam um grande trabalho na plotagem de
grficos. As julgarmos importantes sero apesentadas, definidas e exemplificadas no decorrer do
trabalho, a seguir temos um quadro com as funes que sero utilizadas nessa apostila.
Funes elementares
abs(x)
acos(x)
acosh(x)
asin(x)
asinh(x)
atan(x)
conj(x)
cos(x)
cosh(x)
exp(x)
imag(x)
log(x)
log10(x)
real(x)
modulo(x,y)
sign(x)
sin(x)
sinh(x)
sqrt(x)
tan(x)
tanh(x)
%pi
Valor absoluto.
Arco co-seno.
Arco co-seno hiperblico.
Arco seno.
Arco seno hiperblico
Arco tangente.
Conjugado.
Co-seno.
Co-seno hiperblico.
Exponencial.
Parte imaginaria de um numero complexo.
Logaritmo natural.
Logaritmo na base 10.
Parte real de um numero complexo.
Resto da diviso de x por y.
Funo sinal: retorna o valor -1, +1 ou zero conforme o argumento x seja negativo,
positivo ou nulo, respectivamente.
Seno.
Seno hiperblico.
Raiz quadrada.
Tangente.
Tangente hiperblica.
2.7182818
Finalidade
Limpa o histrico de variveis
Limpa a ala console
Escreve no console
Comando que permite a entrada de dados pelo usurio
Define uma funo de uma ou duas variveis
Defina uma funo de uma ou duas variveis
Esboa uma superfcie 3-D definida por uma funo
Cria matrizes
Esboa uma superfcie 3-D
Esboa um grfico 2-D definida por uma funo
7
xlabel( )
ylabel( )
zlabel( )
linspace ( )
eval3dp( )
Nomeia o eixo X
Nomeia o eixo Y
Nomeia o eixo Z
Vetor linearmente espaado
Computa facetas 3-D de uma superfcie parametrizada
VARIVEIS:
indispensvel que aprendamos a declarar variveis no processo de aprendizagem, as mesmas
variveis das funes que iremos plotar os grficos. As variveis neste trabalho sero duas: Variveis
simples e Variveis compostas, veremos exemplos de cada e como atribuir valores a essas variveis.
Variveis simples
Se atribuirmos um valor genrico 2 a uma varivel a, o valor fica guardado na varivel at que
uma nova atribuio seja feita a mesma varivel, o que representa um carter destrutivo de
armazenamento da varivel.
Ex:
-->a = 2
a = 2.
Se ainda atribuirmos um valor genrico a outra varivel b podemos efetuar operaes entre
este e outra varivel j definida.
Ex:
-->b = 5;
-->a*b
ans = 10.
Ou mesmo atribuirmos a outra varivel o valor de uma operao entre duas variveis.
Ex:
-->c = a/b
c =
0.4
Variveis compostas homogneas:
Mais conhecidas como vetores, as variveis composta homogneas so de grande importncia
no trabalho de desenvolvimento de algoritmos para a plotagem de grficos. Uma s varivel pode
guardar mais de um valor caracterizando um intervalo.
9
Ex:
-->x = [0:10]
x =
0. 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
No exemplo acima declaramos a varivel x como um vetor, entre colchetes definimos um
valor inicial separado por dois pontos de uma valor final, neste caso temos um vetor linha. Caso
queiramos declarar uma varivel como vetor coluna fazemos o mesmo processo adicionando apenas um
apostrofo( ) ao final do ultimo colchete.
Ex:
-->x = [0:5]'
x =
0.
1.
2.
3.
4.
5.
10
O cdigo acima foi desenvolvido na ala Scinotes, onde podemos programar salvar e editar
quando necessrio, o cdigo esta comentado para melhor compreenso. Depois de feito devemos
executar o programa clicando no item em destaque na figura 2 abaixo.
Figura 2 Imagem do ambiente SCILAB, destacado circulado em vermelho opo para executar o cdigo implementado.
Ao executar o algoritmo uma janela grfica abrir automaticamente onde teremos o grfico
plotado, para o cdigo apresentado acima temos a figura 3.
11
A rotina usada na implementao dos algoritmos que nos possibilitar a plotagem dos
diferentes tipos de grficos para as mais diversas funes basicamente a apresentada no exemplo
acima. Novos comandos sero introduzidos medida que avanarmos na complexidade das funes que
inicialmente sero de uma varivel e em um momento posterior de duas variveis, nos levando a
grficos 3-D de superfcies delimitadas por planos que necessitaram de comandos especficos do SCILAB
para plotagem. Os cdigos estaro comentados para melhor compreenso dos mesmos, os comentrios
viro sempre em verde precedidos de //.
12
GRAFICOS 2-D:
Alguns grficos 2-D sero exemplificados abaixo pautando cada sequencial avano na
complexidade dos cdigos e grficos.
Equacao da reta:
clear;
clc;
x = [0:0.2:10];
a = 2;
b = 4;
13
Equao y = 1/x:
clear;
clc;
x = [0:0.2:10];
deff("y=f(x)","y=1/x");
xlabel("X");
ylabel("Y");
fplot2d(x,f,2,leg =" y = 1/x ") // incremento leg, define uma legenda para a curva
O cdigo apresentado tem estrutura familiar e com alguns incrementos, o comando deff( ) que
uma outra maneira de se definir uma funo, os comandos xlabel( ) e ylabel( ) que nomeia os eixos da
abcissas e ordenadas, o leg = que nos permite nomear a curva da funo que utilizado no argumento
do comando fplot2d( ).
14
Seno x Cosseno:
clear;
Figura 6 Grfico Seno x Cosseno mostrando a diferena de fase entre ambas as funes trigonomtricas.
Funo Exponencial
clear;
clc;
x = [-5:0.001:3]';
Funo Logartmica
clear;
clc;
x = [0.00001:0.001:100]';
plot2d(x,[log(x)],2,leg = " log(x)");
xlabel(" X ");
ylabel(" Y ");
16
9-
y =x,
y = 3x , x + y = 4
17
12 -
y = x2 , =
1
2 +1
//Nomeia o eixo x
// Nomeia o eixo y
18
GRAFICOS 3-D:
Grficos 3-D sero exemplificados abaixo a medida que os diferentes comandos possibilitados
pelo SCILAB para a configurao e customizao dos mesmos vo sendo implementados. Os cdigos
estaro comentados para uma melhor compreenso.
Paraboloide:
clear;
clc;
x = [-10:0.2:10]; //intervalos para x e y
y = [-10:0.2:10];
function z=f(x, y) // definindo uma funo de duas variveis
z = x^2 + y^2
endfunction
fplot3d(x,y,f)
Rotina simples onde plotamos uma superfcie definida por uma funo de duas variveis. A
seguir ser mostrado o grfico gerado pelo cdigo acima e como personalizar grficos 3-D segundo as
opes da janela grfica.
19
20
O passo a passo na costumizao dos eixos a partir das opes da janela grfica esta
esquematizado acima. Neste exemplo tratamos de um caso genrico onde queremos limitar
superiormente o grfico plotado pela funo do parabolide Fig. x.y, para isso na janela grfica clicamos
na opo editar e logo aps em propriedade dos eixos abrindo uma nova janela chama de Graphic
Editor Fig. x.y. Na janela Graphic Editor escolhemos o eixo Z e podemos no campo Data Bounds
limita-lo tando inferior quanto superiormente. A Fig. x.y o grafico da Fig. x.y limitado superiormente
pelo plano Z = 100.
Cone:
clear;
clc;
x = [-10:0.2:10]; //intervalos para x e y
y = [-10:0.2:10];
function z=f(x, y) // definindo uma funo de duas variveis
z = sqrt(x^2 + y^2);
endfunction
fplot3d(x,y,f)
Aps a execuo do cdigo acima com a ajuda das opes da janela grfica os passos para
limitar superiormente o eixo Z da superfcie foram seguidos, o que resultou no grfico exemplificado
abaixo.
21
Paraboloide Hiperblico
1. clear; //limpa o histrico de variveis
2. clc; //limpa a tela do console
3. x = [-3:0.1:3]; // intervalos para as variveis x e y
4.
y = [-3:0.1:3];
5.
6.
7.
function z=f(x, y)
z = y^2-x^2;
endfunction
8.
fplot3d(x,y,f);
//comando para plotar uma superfcie 3-D definida por uma funo
9. xlabel("COMPRIMENTO");
10. ylabel("LAGURA");
11. zlabel("ALTURA");
O algoritmo acima pra a superfcie 3-D segue, em termos, a mesma rotina que os para grficos
2-D, temos uma mudana nos comandos de plotagem fplot2d fplot3d.
22
Esfera
clear;
clc;
alpha=linspace(-%pi/2,%pi/2,30);
theta=linspace(0,%pi*2,30);
r = 1; //raio da esfera
deff("[x,y,z]=esfera(alpha,theta)",["x=r*cos(alpha).*cos(theta)";
"y=r*cos(alpha).*sin(theta)";
"z=r*sin(alpha)"]) //definindo a funo da esfera
[Xf,Yf,Zf]=eval3dp(esfera,alpha,theta); //comando que computa a superfcie parametrizada
plot3d(Xf,Yf,Zf, leg = "Esfera") //comando para plotar 3-D
23
2 + 2 = 9, = 2 , = 0 , = 0
Algumas consideraes preliminares devem ser feitas na resoluo deste problema no mbito
da plotagem da superfcie representada pela funo acima 2 + 2 = 9 delimitada pelos planos
= 2 , = 0 , = 0.
/ = 0 = 3
/ = 0 = 3
= 2
= /2
2
+ 2 = 9 / = 0 = 6
22
Agora temos os valores mximos assumidos pelos eixos para que possamos definir os
intervalos
de
integrao
para
plotagem
do
grfico.
2 + 2 = 9
Cdigo:
1. [y,z]=meshgrid(0:.1:6,0:.1:3); // comando para declarar os intervalos dos eixos x e z criando uma
matriz.
2.
3.
x=sqrt(9-z.^2);
surf(x,y,z) // comando que esboca uma superfcie 3-D
4.
x=.5.*y;
mesh(x,y,z)
5.
6. function z=f(x, y)
7. z=0
8. endfunction
9. [x]=(0:.1:3)
10. [y]=2*x
11.
fplot3d(x,y,f)
24
24 -
= 4 2 , + = 2 , = 0 , = 0 , = 0.
Algumas consideraes preliminares devem ser feitas na resoluo deste problema no mbito
da plotagem da superfcie representada pela funo = 4 2 delimitada pelos planos + =
2 , = 0 , = 0 , = 0.
/ = = 0 = 2
/ = 0 = 4
/ = 0 = 2
Cdigo:
1. clear;
2. [x,z]=meshgrid(0:0.1:2,0:0.1:4); // comando que declara os intervalos dos eixos x e z criando uma
matriz.
3. y = 2-x;
4.
surf(x,y,z)
5. x = 0:0.1:2;
6. y = 0:0.1:2;
7. function z=f(x, y)
8. z = 4-x^2
// definindo funo
25
9. endfunction
10.
25 -
2 + + = 4, = 0, = 0, = 0.
Algumas consideraes preliminares devem ser feitas na resoluo deste problema no mbito
da plotagem da superfcie representada pela funo 2 + + = 4 delimitada pelos planos
= 0 , = 0 , = 0.
/ = = 0 = 4
/ = = 0 = 4
/ = = 0 = 2
Fazemos da varivel uma funo de e tal como:
= 4 2
26
Cdigo:
clear;
clc;
function z=f(x, y)
z=4-2*x-y
endfunction
[x]=(0:.1:2)
[y]=(0:.1:4)
fplot3d(x,y,f)
27
CONE ELPTICO
clear;
clc;
function z=f(x, y)
z=sqrt(x^2+9*y^2)
endfunction
[x]=(-30:.7:30)
[y]=(-12:.7:12)
fplot3d(x,y,f)
function z=f(x, y)
z=30
endfunction
fplot3d(x,y,f)
[x]=(-38:.7:38)
[y]=(sqrt(900-x^2))/3;
fplot3d(x,y,f)
28
29
REFERNCIAS
E. Swokowski. Clculo com geometria analtica. Volume 2. segunda edio: Editora: Makron Books
Pearson Brasil, 1994.
https://help.scilab.org/docs/5.4.0/pt_BR/
L. S. Barreto Iniciao ao Scilab, 2008
L.A.P, Canto. LABORATORIO DE MATEMTICA COMPUTACIONAL SCILAB
LACERDA, Programando com Scilab verso 0.2, 2005
P.S.M, Pires. Introduo ao Scilab Verso 1.0, 2001
C.O. Silva, M. Jesus, P. Gerreiro. Scilab Manual de Utilizao Bsica, 2007
30