Sistemas de cálculo numérico
• Perspectiva histórica
• Conceitos básicos
- exemplos de utilização
- comparação crítica
• Webliografia
http://www.mathworks.com
Matlab
Vs. 6 R12
Perspectiva histórica
• Até meados da década de ‘70:
Input por fita perfurada, por cartões
‘compilação’, processamento
‘processo’ lento
• Meados da década de ‘70:
Primeiros computadores teclado-…-vídeo
Ideia de sistemas interactivos, conviviais
Conceitos básicos (parte I)...
Linguagens de Programação1)
• Programa completo
• Etapas de edição,
compilação, execução…
• Guarda-se o ‘processo’
(algoritmo) e, às vezes,
os valores iniciais
1) Tradicionais
Sistemas de cálculo Numérico
• Instrução a instrução
• Tudo misturado, aos
poucos…
• Guardam-se os valores
‘no momento’
(Basic, Fortran, C, Cobol, etc...)
Funcionalidades básicas
• Uma janela de comandos
(instruções executadas assim que são escritas)
• Variáveis-base são ‘arrays’ (vectores e matrizes)
• As variáveis podem ser guardadas num
ficheiro e recuperadas posteriormente
• Funções pré-definidas
• Funcionalidades gráficas
Matlab - alguns comandos
•
•
•
•
•
•
•
•
•
•
•
help
clc
quit / exit
clear/clc (cuidado!)
who / whos
pwd
dir / ls
cd c:\pimenta\….
! (shell)
save ‘xpto’ (*.mat)
load ‘xpto’
Exemplos
a=4
a=4;
A=[3 4 5]
B=[4 5 6 ]’
C = A+B
C=A*B
Vectores, tempo decorrido
• Atenção ao cálculo
vectorial:
a=[3 4 5]
b=[1 0 2]
c=a*b’
c=a.*b
• Módulo:
a=8, b=3
mod(a,b)
• Operações com datas
O que é uma “data” ?
Vector:
[ano, mês, dia, hora, minuto, segundo]
help -> help timefun
d1=datevec('4/25/1974')
d2=datevec('4/16/2002')
segs = etime(d2,d1)
dias = ??? Anos ???
calendar (2002, 4)
Nºs complexos
v1= complex(2, 3)
v2= complex(-1, 2)
p=v1*v2
s=v1+v2
theta=angle(v1)
Forma alternativa:
p=v1*v2, s=v1+v2
r=sqrt(p)
Conversão de bases
• BIN2DEC(),
DEC2HEX(),
DEC2BASE()
• a=1220
• b5=dec2base(a, 5)
• b2=dec2bin(565)
• a=1220
• b26=dec2base(a, 26)
• a=1220
• b26=dec2base(a, 32)
Variáveis aleatórias
• Help rand:
rand -> um valor  ]0,
1[
• E o "int" ?
 floor() (help floor)
rand(m,n)
 gera uma matriz mn
Chave de Totobola ?
rand(1,13)
rand(1,13)*3
floor(rand(1,13)*3)
… agora com arrays :-)
V=[1:20]
v=[0:2:20]
t=[-50:10:20]’
r=dec2base([1:35],36)'
Sqrt(t)
A=[9 3 5 8 12]
B=[7 5 9 3 2 9]
mod(A,B)
Operações básicas com vectores
v=floor(rand(1,50)*100)
plot(v)
sum(v)
min(v)
max(v)
mean(v)
v = floor(rand(1,1000)*100)
r=sort(v)
plot(r)
Quanto tempo demora
a ordenação ?
Operações básicas com matrizes
A=[3 4 5; -1 2 0; 3 4 7]
B=[-1 2 1; -1 2 1; 1 5 -1]
S =A+ B
det(B)
P = A*B
Ai = inv(A)
Representação gráfica de funções
Y vs. X
x=[-10:.1:10]
y=x.^2-4*x+12
plot(x,y, ’go')
y2=x.^1.4+3*x-3;
plot(x,y, ‘r-’, x, y2, ‘b.’);
Z vs X, Y
x=[-3:.1:3]
y=[-3:.1:3]
[X,Y]=meshgrid(x,y);
Z=X.^2-Y.^2;
surf(X,Y,Z);
Z=-cos(1./(X.^2+Y.^2+2));
surf(X,Y,Z);
Comandos a explorar...
• ver
• demo
• bench
Conceitos básicos (parte II)
• Conceito de bibliotecas (help)
- para fins específicos
- para dinâmica e controlo de processos
- para cálculo financeiro
- para estatística e ajuste de funções
- ...
http://dmoz.org/Science/Math/Software/MATLAB/
Newsgroups: com.soft-sys.matlab
Ambiente de trabalho
Janela de comandos
Launch pad
workspace
Histórico de comandos
directoria actual
Linguagem de Programação
• Os comandos podem ser armazenados num
ficheiro (extensão *.m), constituindo
‘programas’ interpretados (batch files,
scripts, macros)
• Sim, podemos escrever funções !
Scripting, m-files
Por onde se começa ?
•
•
•
•
•
Comentários ?
Input / output ?
Tipos de variáveis ?
(Processamento)
Pausa ?
Editor ‘inteligente’
user-friendly,
context sensitive
Programação em Matlab
•
•
•
•
Input
Output
pausa
execução condicional
• controlo de ciclos
• paragem
•
•
•
•
•
•
•
•
Input ‘Texto ’
sprintf(), disp()
pause
if ()… else … end
while ()…end
switch…case…end
for … end
break; <Ctrl><C>
Exemplos
•
•
•
•
•
•
•
•
•
•
ddec - dias decorridos entre um dia e hoje
totobola - geração de uma chave de totobola
totoloto - geração de uma chave de totoloto
bolhasort - comparação de métodos de ordenação
mat1 - exemplos de operação com matrizes
Factorial - Matlab built-in
cnpp - Combinações de n p a p
Fib1 - Fibonacci, caso simples
Fibo - Fibonacci, função recursiva
grafs - Gráficos 2D e 3D
Bom trabalho !
Texto com cor diferente,
conforme a sua função
Download

Sistemas de cálculo numérico