Sistemas de cálculo numérico

22
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

description

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. - PowerPoint PPT Presentation

Transcript of Sistemas de cálculo numérico

Page 1: Sistemas de cálculo numérico

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

Page 2: Sistemas de cálculo numérico

• 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

Page 3: Sistemas de cálculo numérico

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

Page 4: 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

Page 5: Sistemas de cálculo numérico

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

Page 6: Sistemas de cálculo numérico

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)

Page 7: Sistemas de cálculo numérico

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)

Page 8: Sistemas de cálculo numérico

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)

Page 9: Sistemas de cálculo numérico

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)

Page 10: Sistemas de cálculo numérico

… 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)

Page 11: Sistemas de cálculo numérico

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 ?

Page 12: Sistemas de cálculo numérico

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)

Page 13: Sistemas de cálculo numérico

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);

Page 14: Sistemas de cálculo numérico

Comandos a explorar...

• ver

• demo

• bench

Page 15: Sistemas de cálculo numérico

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

Page 16: Sistemas de cálculo numérico

Ambiente de trabalhoJanela de comandos

Launch padworkspace

Histórico de comandosdirectoria actual

Page 17: Sistemas de cálculo numérico

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 !

Page 18: Sistemas de cálculo numérico

Scripting, m-files

• Comentários ?

• Input / output ?

• Tipos de variáveis ?

• (Processamento)

• Pausa ?

Por onde se começa ?

Editor ‘inteligente’user-friendly,

context sensitive

Page 19: Sistemas de cálculo numérico

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>

Page 20: Sistemas de cálculo numérico

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

Page 21: Sistemas de cálculo numérico

Bom trabalho !

Page 22: Sistemas de cálculo numérico

Texto com cor diferente,conforme a sua função