220 likes | 316 Views
Explore the historical evolution of numerical computing systems, basic concepts, examples, and critical comparison between Matlab and R12. Learn about programming languages, basic functionalities, graphics, complex operations, and graphical representation of functions. Discover essential commands, libraries, and work environment in Matlab. Enhance your understanding of scripting, m-files, and various programming techniques in Matlab. Engage with practical examples and improve your skills in numerical computing.
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