Buscar

Introdução ao Scilab

Prévia do material em texto

Universidade Estadual de Campinas 
Faculdade de Ciências Aplicadas 
Constantes 
>>a=1 //real constant 
 a = 
 
 1. 
 
>> b = 2.3343443E-5 //2,3x10^5 
 
b = 
 
 2.3343e-005 
 
Booleanos 
>>1==1 //boolean 
 ans = 
 
 T 
String 
>>c = 'string' //character string 
 c = 
 
 string 
Polinômios 
>>z=poly(0,'z') // polynomial with variable 'z' and with one root at zero 
 z = 
 z 
 
 
>>p=1+3*z+4.5*z^2 //polynomial 
 p = 
 1 + 3z + 4.5z² 
 
 
>>r=z/p //rational 
 r = 
 z 
 ------------- 
1 + 3z + 4.5z² 
Matrizes 
A=[2 2 3 
>> 0 0 0.7853982 
>> 5 9 -1] //3 x 3 constant matrix 
 A = 
 2. 2. 3. 
 0. 0. 0.7853982 
 5. 9. - 1. 
 
>> [1 2 3; 4 5 6] 
ans = 
 1 2 3 
 4 5 6 
 
-->s = [3:1.5:7] //Vetor que vai de 3 a 7, com o passo de 1,5 por componente. 
 s = 
 3. 4.5 6. 
 
-->r = [ 1:3; 4:6; 7:9] // Usando a notação vetorial para criar as linhas. 
 r = Quando não descrito o passo, o Scilab assume como 1. 
 1. 2. 3. 
 4. 5. 6. 
 7. 8. 9. 
 
Pré-definidos 
-->%pi //π 
 %pi = 
 
 3.1415927 
 
-->1+2*%i // Número imaginário 
 ans = 
 
 1. + 2.i 
 
-->exp(1) //Número de Euler 
 ans = 
 
 2.7182818 
 
-->%inf //Infinito 
 %inf = 
 
 Inf 
Operação Matemática Símbolo Correspondente 
Adição + 
Subtração - 
Multiplicação (Funciona para matrizes) * 
Divisão / 
Exponenciação ^ 
Transposição (Matrizes) ‘ 
Exponenciação Multiplicação/Divisão Adição /Subtração 
Ordem de realização das operações (sem parênteses) 
 
Função Descrição 
abs(x) Valor absoluto de x 
log(x) Logaritmo neperiano de x 
log10(x) Logaritmo de x na base 10 
exp(x) Exponencial de x 
sqrt(x) Raiz quadrada de x 
sin(x) Função seno dos valores de x (RAD) 
cos(x) Função cosseno dos valores de x (RAD) 
tan(x) Função tangente dos valores de x (RAD) 
inv(x) Matriz inversa de x 
real(z) Parte real do número complexo z 
imag(z) Parte imaginária do número complexo z 
Funções Básicas 
Função Descrição 
v+w adição 
v-w subtração 
v.*w multiplica cada elemento de v pelo correspondente 
de w 
v./w divide cada elemento de v pelo correspondente de w 
v.^w cada elemento de v está elevado ao 
correspondente de w 
v*w’ calcula o produto escalar de v vezes w 
A\B divisão à esquerda INV(A)*B 
A/B divisão à direita 
Funções para vetores e matrizes 
Função rand 
-->rand() //Número aleatório 
 entre 0 e 1 
 ans = 
 0.2855364 
 
-->rand(2,2) //Matriz 2x2 com 
 aleatórios 
 ans = 
 
 0.8607515 0.5257061 
 0.8494102 0.9931210 
Função deff 
//Definindo a função myplus, que tem 
como argumento ‘y’ e ‘z’, retorna o valor ‘x’ 
e realiza a seguinte operação ‘y+z’. 
 
-->deff('[x]=myplus(y,z)','x=y+z') 
-->myplus(5,3) 
 ans = 
 
 8. 
Funções úteis 
Função Descrição 
clf Limpa janela gráfica 
clear Limpa todas as variáveis 
clc Limpa a linha do console 
pause Interrompe as funções sendo executadas 
resume Retorna ou cancela a execussão das funções 
Função for 
-->for j= 4:-1:1 //Laço, no qual a variável 
--> disp(j); contadora inicia em 4 e --
>end termina em 1. O passo é 
 encontrado entre os ‘:’ e 
 4. nesse caso é -1. 
 
 3. 
 
 2. 
 
 1. 
 
Definindo Funções 
// Criar uma função permite fazer um grande número de operações com os 
argumentos de entrada. 
// No exemplo a função retorna o vetor [x,y]. O nome da função é ‘myfct’ e 
tem 2 argumentos de entrada. As operações realizadas são as seguintes. 
 
-->function [x, y]=myfct(a, b) 
--> x=a+b 
--> y=a-b 
-->endfunction 
 
 
-->[x,y]=myfct(3,2) 
[x,y] 
 ans = 
 
 5. 1. 
SciNotes 
 
http://cameraweb.ccuec.unicamp.br/video/
W1YSSK9SHGSO/ 
 
Ordem de pensamento 
Dada uma certa função: 
 Definir um incremento tanto na parte 
real quanto na imaginária; 
 Aplicar o método de Newton, para 
descobrir a convergência; 
 Testar para qual das raízes da função o 
método convergia; 
 Determinar que o ponto fosse de 
determinada cor. 
 
Definindo a função exemplo: 
deff('[y]=f(z)', 'y=z^(3) -1'); //Função 
 
deff('[y]=df(z)','y=3*z^(2)'); //Derivada 
 
p = poly({-1, 0, 0, 1},"x", ["coeff"]) //Definindo a função de 
p = outra maneira 
 - 1 + x³ 
 
r = roots(p) //Raízes da função 
r = 
 
 - 0.5 + 0.8660254i 
 - 0.5 - 0.8660254i 
 1. 
Definindo um incremento e erro 
para a função de Newton 
k=100; // Vamos utilizar uma matriz 100 x 100 
 Para armazenar os pontos. 
e=0.25; // O erro para o método será de 0,25. 
Definindo a função de Newton 
function [X]=newton(f, x0, E, Df) 
 deff("y=MN(x)","y=x-((f(x))./(Df(x)+10E-10))"); 
 Xv = x0; 
 i = 0; 
 Xn = MN(Xv); 
 while max(abs(f(Xn)),abs(Xv-Xn))>E & i<=50 
 Xv = Xn; 
 Xn = MN(Xv); 
 i = i+1; 
 end 
 X = Xn; 
endfunction 
Selecionando as cores para as 
raízes 
[h,w] = size(r); //h é o número de 
 elementos do vetor r 
 (raízes) 
 
for i = 1:h 
 
 c(i)=getcolor(); // Função para escolher 
 cor. 
end 
Preenchendo a matriz 
for dx = 1:k 
 for dy = 1:k 
 n = newton(f,(dx-k/2)+(dy-k/2)*%i,10E-2, df); 
 for q=1:h 
 if (real(r(q)-e)<real(n) & real(n)<real(r(q)+e) 
 & imag(r(q)-e*%i)<imag(n) 
 & imag(n)<imag(r(q)+e*%i)) then 
 A(dx,dy) = c(q); 
 end 
 end 
 end 
end 
 
Matplot(A); 
Prof.° Dr. Fabiano Fernandes Bargos 
fabiano.bargos@fca.unicamp.br 
PAD Lucas Constantino Delago 
luccondel@live.com

Continue navegando