220 likes | 314 Views
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.
E N D
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
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ídeoIdeia de sistemas interactivos, conviviais
Conceitos básicos (parte I)... Linguagens de Programação1) Sistemas de cálculo Numérico • 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...)
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
help clc quit / exit clear/clc (cuidado!) who / whos pwd dir / ls cd c:\pimenta\…. ! (shell) save ‘xpto’ (*.mat) load ‘xpto’ a=4 a=4; A=[3 4 5] B=[4 5 6 ]’ C = A+B C=A*B Matlab - alguns comandos Exemplos
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) Vectores, tempo decorrido
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) Nºs complexos
BIN2DEC(), DEC2HEX(), DEC2BASE() b2=dec2bin(565) a=1220 b5=dec2base(a, 5) a=1220 b26=dec2base(a, 26) a=1220 b26=dec2base(a, 32) Conversão de bases
Help rand: rand -> um valor ]0, 1[ E o "int" ? floor() (help floor) rand(m,n) gera uma matriz mn Variáveis aleatórias Chave de Totobola ? rand(1,13)rand(1,13)*3floor(rand(1,13)*3)
… agora com arrays :-) V=[1:20] v=[0:2:20] t=[-50:10:20]’ r=dec2base([1:35],36)' A=[9 3 5 8 12] B=[7 5 9 3 2 9] mod(A,B) Sqrt(t)
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
Launch padworkspace Histórico de comandosdirectoria actual Ambiente de trabalho Janela de comandos
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
Input Output pausa execução condicional controlo de ciclos paragem Programação em Matlab • Input ‘Texto ’ • sprintf(), disp() • pause • if ()… else … end • while ()…end • switch…case…end • for … end • break; <Ctrl><C>
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 Exemplos