Vous êtes sur la page 1sur 52

Introduo ao Scilab

Aplicaes em Engenharia

www.rodolfocosta.pro.br 1
Introduo ao Scilab

O que o Scilab?

O Scilab um software livre e de cdigo aberto para computao numrica,

proporcionando um ambiente computacional poderoso para engenharia e aplicaes

cientficas. Alm de centenas de funes matemticas o Scilab possui uma

linguagem de programao de alto nvel que permite o acesso a estruturas de dados

avanadas, funes grficas 2-D e 3-D.

www.rodolfocosta.pro.br 2
Introduo ao Scilab

O que o Scilab?
Criado em 1989 por um grupo de pesquisadores da INRIA e da ENPC. Consr
cio Scilab desde 2003 mantido por diversas empresas.
Objetivos do consrcio:
organizar cooperao entre os desenvolvedores
obter recursos para manuteno da equipe
garantir suporte aos usurios
Sistemas Operacionais:
Linux
Windows
Solaris
Unix

O software est disponvel para download no site http://www.scilab.org

www.rodolfocosta.pro.br 3
Introduo ao Scilab

O que o Scilab?
Usado nas reas:
Fsica
Sistemas complexos
Processamento de imagens
Controle e processamento de sinais
Automao industrial
Controle de processos
Computao grfica
Matemtica
Modelagem biolgica
...
www.rodolfocosta.pro.br 4
Introduo ao Scilab

Sobre o Curso:
Objetivo

Capacitar profissionais de engenharia na utilizao ferramentas computacionais de alto

desempenho.

Ementa do Curso
Funcionamento do software;
Comandos teis;
Operaes com nmeros e matrizes;
Criao de grficos em duas dimenses;
Aplicao dos conceitos a problemas de engenharia

www.rodolfocosta.pro.br 5
Interface

Navegador
de Variveis

Console ou
Janela de
Editor
Comando
Navegador
de Arquivos

www.rodolfocosta.pro.br 6
Introduo ao Scilab

Sobre o Scilab:
Calculadora
Os comandos so digitados diretamente do prompt.

Ambiente de programao
Os comandos so digitados em um arquivo texto.

www.rodolfocosta.pro.br 7
Navegador de Ajuda

www.rodolfocosta.pro.br 8
Introduo ao Scilab
Comando who e variveis predefinidas:

www.rodolfocosta.pro.br 9
Introduo ao Scilab

Variveis predefinidas:
%i i = -1 Unidade imaginria
%pi = 3.1415927. Pi
%e e = 2.7182818. Constante Neperiana
%eps = 2.22 10-16 Preciso (depende da mquina)
%inf Infinito (infinito no matemtico)
%nan No um nmero (Not a Number)
%s s Varivel Polinomial
%z z Varivel Polinomial
%t, %T true Varivel Booleana
%f, %F false Varivel Booleana

www.rodolfocosta.pro.br 10
Introduo ao Scilab

Funes matemticas comuns no Scilab.


sin(), cos(), tan(), cotg() Funes Trigonomtricas
asin(), acos(), atan() Funes Arco
sinh(), cosh(), tanh(), coth() Funes Hiperblicas
asinh(), acosh(), atanh() Inverso das Funes Hiperblicas
sqrt(), exp() Raiz quadrada, exponencial
sum() Soma
min(), max() Valores mnimo / mximo
abs() Valor absoluto
Partes real e imaginria de um nmero
real(f), imag(f)
complexo f
Uma lista completa de funes internas pode ser encontrada em Help \ Elementary Functions, que tambm explica requisitos sobre
argumentos (existem argumentos obrigatrios e opcionais)..

www.rodolfocosta.pro.br 11
Introduo ao Scilab

Principais operadores do Scilab:

; Fim de expresso, separador de linha


, Instruo, argumento ou separador de coluna
' Matriz transposta conjugada, delimitador de string*
.' Matriz transposta no conjugada
[] , [] ' Definio de Vetor ou matriz, matriz transposta
() O par de parnteses tm diversos propsitos
+, - Adio, subtrao
* , .* Multiplicao, Multiplicao elemento a elemento

String uma cadeia de caracteres e Aspas simples (') e duplas (") podem definir cadeias de caracteres

www.rodolfocosta.pro.br 12
Introduo ao Scilab

Principais operadores do Scilab:

/ , ./ Diviso, diviso elemento a elemento


^ or ** , .^ Potncia, potncia elemento a elemento
| Lgica OU (OR)
& Lgica E (AND)
~ Lgica No (NOT)
==, >=, <=, >, <, Igual a , igual ou maior que, igual ou menor que, maior
< >, ~= que, menor que, diferente de (duas maneiras)

www.rodolfocosta.pro.br 13
Introduo ao Scilab

Definio de variveis:
Sensvel a maisculas e minsculas
Palavra nica
At 24 caracteres
No pode iniciar com nmero

www.rodolfocosta.pro.br 14
Introduo ao Scilab

Definio de variveis:

Faa o teste:
Tente declarar as seguintes variveis no console:
a = 1;
Var_1 = 2;
2var = 3;
esta varivel = 3;
itens = 2;
b = 2; B = 3; (verifique se b e B tm o mesmo valor)

www.rodolfocosta.pro.br 15
Scilab como calculadora
Calculando funes elementares:

Funes:
cos(x), sin(x), tan(x), cotg(x): Retornam os valores de cosseno, seno, tangente ou
cotangente de x (x deve estar em radianos)

Calcule:
a = sin(%pi/4);
b = tan(%pi);
c = cotg(%pi/3);
d = cos(%pi/6) + sin(%pi/6);

www.rodolfocosta.pro.br 16
Scilab como calculadora
Trabalhando com Vetores
Declarao de vetores:
X = [ x1 x2 x3 ...] vetor linha
X = [x1;x2;x3;...] vetor coluna
Transposio de vetores: X

www.rodolfocosta.pro.br 17
Scilab como calculadora
Trabalhando com Vetores

Exerccios
Dados os vetores: x = [1,2,3,4,5] e y = [2,4,6,8,10]
Calcule:
a) z = x + y;
b) z = x*y;
c) Formas transpostas de x e y;
d) Dados z1 = x*y; e z2 = x*y; Verifique se z1 = z2.

www.rodolfocosta.pro.br 18
Scilab como calculadora
Trabalhando com Vetores

Criando um vetor com intervalos definidos


A = Valor_inicial:incremento:Valor_final;
Exemplos:
A = 1:10;
B = 1:2:10;
C = 1:0.2:10;
D = 10:-1:1;
E = 1:%pi:20;
F = 0:log(%e):20;
G = 20:-2*%pi:-10

www.rodolfocosta.pro.br 19
Scilab como calculadora
Trabalhando com Vetores

Operaes com vetores


length(x) : retorna a dimenso do vetor x.
[nr,nc] = size(x) : retorna o nmero de linhas e colunas de x.
x = zeros(N,1) : Cria um vetor nulo de dimenso N.
x = rand(N,1) : Cria um vetor de valores aleatrios de dimenso N.

Agora faa voc:


a) Um vetor unitrio com 10 elementos.
b) Um vetor nulo com 5 elementos.
c) Um vetor com 10 elementos aleatrios.
d) Verifique suas dimenses

www.rodolfocosta.pro.br 20
Scilab como calculadora
Trabalhando com Vetores

Operaes com vetores


X(i)=[] : apaga o elemento de ndice i.
X = [X a] : insere o elemento a no final do vetor X
X($) : Acessa o ltimo elemento do vetor X.
X(n:m) : Acessa os elementos do vetor X entre os ndices n e m
c = [x y] : Agrupa os vetores x e y

www.rodolfocosta.pro.br 21
Scilab como calculadora
Trabalhando com Vetores

Agora vocs:
Dado o vetor X = [1 2 3 4 5];
a) Insira o valor 10 no final
b) Apague o quinto elemento do vetor
c) Atribua valor zero aos elementos entre 2 e 4

Dados os vetores
= [, sin , log 10] e = [10.3 1.1 2.4]
crie um vetor Z que seja dado pela unio de X e Y.

www.rodolfocosta.pro.br 22
Scilab como calculadora
Trabalhando com Matrizes

Uma matriz uma tabela de m linhas e n colunas de smbolos sobre um conjunto,


representada sob a forma de um quadro.

www.rodolfocosta.pro.br 23
Scilab como calculadora
Trabalhando com Matrizes

A forma geral de uma matriz no Scilab


A = [11 12 13; 21 22 23; 31 32 33]

Os elementos das linhas tambm podem vir separados por vrgulas:


A = [11, 12, 13; 21, 22, 23; 31, 32, 33].

www.rodolfocosta.pro.br 24
Scilab como calculadora
Trabalhando com Matrizes

Matrizes Especiais:
Matriz Identidade de m x n elementos:
A = eye(m,n);

www.rodolfocosta.pro.br 25
Scilab como calculadora
Trabalhando com Matrizes

Matrizes Especiais:
Matriz de m x n elementos nulos:
A = zeros(m,n);

Matriz de m x n elementos unitrios:


A = ones(m,n);

www.rodolfocosta.pro.br 26
Scilab como calculadora
Trabalhando com Matrizes

Operaes com Matrizes


A(i,:) : acessa a linha i da matriz A.
A(:,i) : acessa a coluna i da matriz A.
A = [A;linha]: insere linha no final da matriz A
A = [A coluna]: insere coluna no final da matriz A
A($,:) : acessa o ltima linha da matriz A.
A(:,$) : acessa o ltima linha da matriz A.

www.rodolfocosta.pro.br 27
Scilab como calculadora
Trabalhando com Matrizes

Agora vocs:
Dada a matriz A = [2 4 6;8 10 12; 1 2 3]
a) Atribua valor zero linha 3;
b) Multiplique a linha 2 por 10;
c) Remova a ltima linha
d) Insira o vetor B = [1 2 3] na ltima linha de A

www.rodolfocosta.pro.br 28
Scilab como calculadora
Trabalhando com Matrizes

Operaes com Matrizes


A(:,[i:j]) : acessa a todas as linhas dentro do intervalo definido entre as colunas i e j
A([i:j],:) : acessa a todas as colunas dentro do intervalo definido entre as linhas i e j
A=rand(m,n) : cria uma matriz de nmeros aleatrios de m linhas e n colunas
D=det(A) : Calcula a determinante da matriz A.
d=diag(A) : Calcula a diagonal da matriz A.
B=A : Calcula a matriz transposta de A
I=inv(A): Calcula a matriz inversa de A

www.rodolfocosta.pro.br 29
Scilab como calculadora
Trabalhando com Matrizes

Exerccios:
Dadas as matrizes ao lado, calcule:
134689
a) C = A + B
234913
b) C = A*B 333653
c) C = 10*A + 5*B
A= 887992
982341 222345
d) Determinante de A
113879 900123
e) Determinante de B 012378
f) Diagonal de A B= 192356
890123
423455

www.rodolfocosta.pro.br 30
Scilab como calculadora
Grficos no Scilab

www.rodolfocosta.pro.br 31
Scilab como calculadora
Grficos no Scilab

Para grficos bidimensionais:


plot2d(x,y,style)
Onde x e y so vetores.
Exemplo:
x = [-2*%pi:0.1:2*%pi];
y = sin(x);
plot2d(x,y);

Style: tipo de linha do grfico. Valores inteiros positivos definem linhas contnuas,
valores negativos definem linhas tracejadas. Ex.: plot2d(x,y,-1); plot2d(x,y,-5);

www.rodolfocosta.pro.br 32
Scilab como calculadora
Grficos no Scilab

Para grficos bidimensionais:


Observaes: Comandos de plotagem sucessivos superpem os grficos
x = [0:0.1:2*%pi];
y = [sin(x);cos(x)];
plot2d(x,y(1,:));
plot2d(x,y(2,:),-1);

O comando clf quando colocado antes do segundo comando para plotar limpa a rea do grfico e
impede a superposio

www.rodolfocosta.pro.br 33
Scilab como calculadora
Grficos no Scilab

Para grficos bidimensionais:


title (titulo): apresenta o ttulo do grfico
legend(legenda1, legenda2,)
Exemplo:
t = 0:0.1:10;
S = 5 + 10*t + 0.5*2*t.*t;
V = 10 + 2*t;
plot2d(t,S,-1);
plot2d(t,V,-3);
title("Cinemtica")
legend('Posio', 'Velocidade')

www.rodolfocosta.pro.br 34
Scilab como calculadora
Grficos no Scilab
Para grficos bidimensionais:
O comando subplot permite a diviso de uma janela grfica
Exemplo:
x = [0:0.1:2*%pi];
subplot(221)
plot2d(x,sin(x))
subplot(222)
plot2d(x,cos(x))
subplot(223)
plot2d(x,tan(x))
subplot(224)
plot2d(x,sin(x).*cos(x))

www.rodolfocosta.pro.br 35
Aplicaes em Engenharia
Sistemas de engenharia que, em regime permanente ou estado estacionrio,
podem ser modelados com equaes algbricas lineares.

www.rodolfocosta.pro.br 36
Aplicaes em Engenharia

Representando sistemas de equaes lineares na forma matricial.

Matrizes fornecem uma notao concisa para representar equaes lineares


simultneas. Por exemplo, um conjunto de equaes lineares 3 3,

www.rodolfocosta.pro.br 37
Aplicaes em Engenharia

Representando sistemas de equaes lineares na forma matricial.

Pode ser expresso ainda como:

= {}

Onde [A] a matriz formada pelos coeficientes :

www.rodolfocosta.pro.br 38
Aplicaes em Engenharia

Representando sistemas de equaes lineares na forma matricial.

{b} o vetor coluna das constantes


= 1 2 3

e {x} o vetor coluna de incgnitas

= 1 2 3

www.rodolfocosta.pro.br 39
Aplicaes em Engenharia

Representando sistemas de equaes lineares na forma matricial.

Uma maneira formal de obter a soluo usando lgebra matricial e multiplicar cada lado
da equao pela inversa de [A] para obter

1 = 1 {}

Como 1 a matriz identidade, podemos reescrever a equao como

= 1 {}

www.rodolfocosta.pro.br 40
Aplicaes em Engenharia

Exemplo 1

www.rodolfocosta.pro.br 41
Aplicaes em Engenharia

Para o n 1, temos:
= 0 = 1 cos 30 + 3 cos 60 + 1,

= 0 = 1 sin 30 3 sin 60 + 1,
para o n 2:
= 0 = 2 + 1 cos 30 + 2

= 0 = 1 sin 30 + 2

e para o n 3:
= 0 = 2 3 cos 60

= 0 = 3 sin 60 + 3

www.rodolfocosta.pro.br 42
Aplicaes em Engenharia

Soluo:

www.rodolfocosta.pro.br 43
Aplicaes em Engenharia

Soluo:
A=[0.866025 0 -0.5 0 0 0;0.5 0 0.866025 0 0 0;-0.866025 -1 0 -1 0 0;-0.5 0 0 0 -
1 0;0 1 0.5 0 0 0;0 0 -0.866025 0 0 -1];
b = [0 -2000 0 0 0 0];
F=A\b'

www.rodolfocosta.pro.br 44
Aplicaes em Engenharia

Soluo:
F =
-1000.0007
866.02561
-1732.0512
0.
500.00035
1499.9997

www.rodolfocosta.pro.br 45
Aplicaes em Engenharia

Exemplo 2:
Quais so as correntes no circuito?

www.rodolfocosta.pro.br 46
Aplicaes em Engenharia

Exemplo 2:

www.rodolfocosta.pro.br 47
Aplicaes em Engenharia

Exemplo 2:
Dadas essas consideraes, a lei de Kirchhoff das correntes e aplicada a cada no para
produzir

i12 + i52 + i32 = 0

i65 i52 i54 = 0

i43 i32 = 0

i54 i43 = 0

www.rodolfocosta.pro.br 48
Aplicaes em Engenharia

Exemplo 2:
A aplicao da lei das tenses a cada um dos dois laos fornece

15i54 5i43 10i32 + 10i52 = 0

20i65 10i52 + 5i12 = 200

www.rodolfocosta.pro.br 49
Aplicaes em Engenharia

Exemplo 2:
Organizando as equaes e colocando na forma matricial, temos:

www.rodolfocosta.pro.br 50
Aplicaes em Engenharia

Exemplo 2:
Soluo:

www.rodolfocosta.pro.br 51
Aplicaes em Engenharia

Exemplo 2:
Soluo:

www.rodolfocosta.pro.br 52