Post on 14-Jan-2016
description
Sistemas de cálculo numérico
• Perspectiva histórica
• Conceitos básicos- exemplos de utilização- comparação crítica
• Webliografiahttp://www.mathworks.com
MatlabVs. 6 R12
• 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ídeoIdeia de sistemas interactivos, conviviais
Perspectiva histórica
Conceitos básicos (parte I)...
• Programa completo• Etapas de edição,
compilação, execução…• Guarda-se o ‘processo’
(algoritmo) e, às vezes, os valores iniciais
• Instrução a instrução• Tudo misturado, aos
poucos…• Guardam-se os valores
‘no momento’
1) Tradicionais (Basic, Fortran, C, Cobol, etc...)
Linguagens de Programação1) Sistemas de cálculo Numérico
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’
a=4a=4;A=[3 4 5]B=[4 5 6 ]’C = A+BC=A*B
Exemplos
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 datasO que é uma “data” ?
Vector:[ano, mês, dia, hora, minuto, segundo]
help -> help timefund1=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()
• b2=dec2bin(565)
• a=1220• b5=dec2base(a, 5)
• 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 mn
Chave de Totobola ?
rand(1,13)rand(1,13)*3
floor(rand(1,13)*3)
… agora com arrays :-)
r=dec2base([1:35],36)'V=[1:20]
v=[0:2:20]
t=[-50:10:20]’
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)
sum(v)
min(v)
max(v)
mean(v)
plot(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 + Bdet(B)
P = A*BAi = 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 trabalhoJanela de comandos
Launch padworkspace
Histórico de comandosdirectoria 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
• Comentários ?
• Input / output ?
• Tipos de variáveis ?
• (Processamento)
• Pausa ?
Por onde se começa ?
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