Folha da Cálculo - Conclusão

22
16 Dezembro 2005 Folha de Cálculo - Conc lusão 1 Folha da Cálculo - Conclusão Jorge Cruz DI/FCT/UNL Programação para as Ciências Experimentais 1º Semestre 2005/2006

description

Folha da Cálculo - Conclusão. Jorge Cruz DI/FCT/UNL Programação para as Ciências Experimentais 1º Semestre 2005/2006. Ciclos de Simulação – Trajectória de um Projéctil. A técnica usada no exemplo da simulação da trajectória de um projéctil pode ser adaptada para uma folha de cálculo. - PowerPoint PPT Presentation

Transcript of Folha da Cálculo - Conclusão

Page 1: Folha da Cálculo - Conclusão

16 Dezembro 2005 Folha de Cálculo - Conclusão 1

Folha da Cálculo - Conclusão

Jorge CruzDI/FCT/UNL

Programação para as Ciências Experimentais

1º Semestre 2005/2006

Page 2: Folha da Cálculo - Conclusão

16 Dezembro 2005 Folha de Cálculo - Conclusão 2

Ciclos de Simulação – Trajectória de um Projéctil• A técnica usada no exemplo da simulação da trajectória de um

projéctil pode ser adaptada para uma folha de cálculo.

• Em geral, é necessário

– Utilizar uma coluna (ou linha) para as variáveis que estão a ser simuladas

– Inicializar as “linhas de cima” com as constantes do modelo e com os valores iniciais das variáveis

– Na linha seguinte obter os valores das variáveis a partir dos valores anteriores (i.e. da linha anterior) e das constantes.

– Tendo em atenção as referências relativas e/ou absolutas (constantes), copiar a 2ª linha para as linhas seguintes.

– Copiar tantas linhas quantas as necessárias

Page 3: Folha da Cálculo - Conclusão

16 Dezembro 2005 Folha de Cálculo - Conclusão 3

Apresentação do Problema• Um projéctil é lançado de uma altura de y0 metros, com um ângulo inicial de

lançamento de radianos e com uma velocidade inicial de v0 metros por segundo.

• A trajectória do projéctil em coordenadas (x,y) pode ser modelada através da seguinte equação:

02

2202

yx)θ(cosv

g)θtan(x)x(fy

v0

(0,0)x

y

y0

a

f(a)

• Problema: determinar a distância máxima (dmax) e a altura máxima (hmax) atingidas pelo projéctil.

dmax

hmax

Page 4: Folha da Cálculo - Conclusão

16 Dezembro 2005 Folha de Cálculo - Conclusão 4

Resolução Informal• Problema: determinar a distância máxima (dmax) e a altura

máxima (hmax) atingidas pelo projéctil.

• Pode-se simular a trajectória do projéctil usando a função f para calcular o valor de y correspondente a cada valor de x.

– Considera-se o ponto inicial da trajectória x0=0: (x0,y0)

– Considera-se uma sequência de valores de x (x1,x2,…) para os quais se calcula o respectivo valor de y usando a função f: (x1,f(x1)), (x2,f(x2)), …

– Termina-se o cálculo quando aparecer o primeiro ponto da trajectória com o valor de y negativo.

• Os valores da distância máxima e da altura máxima podem ser aproximados respectivamente pelos valores maximos de x e y obtidos nos pontos calculados da trajectória.

Page 5: Folha da Cálculo - Conclusão

16 Dezembro 2005 Folha de Cálculo - Conclusão 5

Resolução Informal• Graficamente a simulação da trajectória do projéctil corresponde a:

• O último ponto considerado é o x11 uma vez que é o primeiro a aparecer com y negativo: f(x11)<0

• A distância máxima (dmax) é aproximada pelo maior valor de x: dmax x11

• A altura máxima (hmax) é aproximada pelo maior valor de y: hmax f(x6)

(x0,y0)

x

y

(x1,f(x1))

(x2,f(x2))

(x11,f(x11))

(x6,f(x6))hmax^

dmax^

• A precisão das aproximações depende dos pontos da trajectória calculados: se a distância (em x) entre cada dois pontos consecutivos for dx então, em geral, a precisão aumenta quando dx diminui.

Page 6: Folha da Cálculo - Conclusão

16 Dezembro 2005 Folha de Cálculo - Conclusão 6

Programa Octave% Inicialização de Variáveis

g = 9.8; % aceleração da gravidadey0 = input(" Qual a altura inicial (m)? ");v0 = input(" Qual a velocidade inicial (m/s)? ");

tet = input(" Qual o angulo inicial (rad)? ");dx = input(" Qual a precisao (m)? ");dmax = 0; % distância máxima da trajectóriahmax = 0; % altura máxima da trajectória

% Ciclo de Simulaçãox = 0;y = y0;while y > 0

x = x + dx; y = x*tan(tet)-(g*x^2)/(2*v0^2*cos(tet)^2)+y0;

hmax = max(hmax,y);endwhile

% Apresentação de Resultadosdmax = x;disp("Distância maxima da trajectoria (m):"); disp(dmax);disp("Altura maxima da trajectoria (m):"); disp(hmax);

Page 7: Folha da Cálculo - Conclusão

16 Dezembro 2005 Folha de Cálculo - Conclusão 7

Constantes e Parâmetros do Modelog = 9.8 aceleração da gravidade y0 = 10 altura inicial (m) v0 = 5 velocidade inicial (m/s) tet = 1 angulo inicial (rad)dx = 0.1 precisao (m)

Resultados da Simulaçãodmax = 5.2 distância máxima da trajectória hmax = 10.9 altura máxima da trajectória

x y Aux0 100.1 10.10.2 10.30.3 10.4

Simulação

=MAX(C20:C200)

=MAX(E21:E200)

=C4

=B21*TAN(C$6)-(C$3*B21^2)/ (2*C$5^2*COS(C$6)^2)+C$4

=B20+C$7

=IF(AND(C20>0,C21<=0),B21,"")

Folha de Cálculo

Page 8: Folha da Cálculo - Conclusão

16 Dezembro 2005 Folha de Cálculo - Conclusão 8

Gráficos da Simulação

• Uma vez obtidas as tabelas de simulação, podem obter-se gráficos, seleccionando as colunas apropriadas e inserindo um gráfico (insert graph) com base nessa tabela.

Trajectória de um Projéctil

-10

0

10

20

0 5 10

x (m)

y (m

)

Page 9: Folha da Cálculo - Conclusão

16 Dezembro 2005 Folha de Cálculo - Conclusão 9

Variante c/ Modelo Diferencial• Um projéctil é lançado de uma altura de y0 metros, com um ângulo inicial de

lançamento de radianos e com uma velocidade inicial de v0 metros por segundo.

• A trajectória do projéctil pode ser modelada através do seguinte sistema de equações diferenciais:

v0

(0,0)x

y

y0

a

f(a)

onde: vx e vy são as componentes horizontal e vertical da velocidade;ax e ay são as componentes horizontal e vertical da aceleração;

Se considerarmos o atrito então: ax=-kvx e ay=-kvy-g

dmax

hmax

xvdt

dx

yvdt

dy x

x adt

dv

yy a

dt

dv

Page 10: Folha da Cálculo - Conclusão

16 Dezembro 2005 Folha de Cálculo - Conclusão 10

Folha de Cálculo

g = 9.8 aceleração da gravidade y0 = 10 altura inicial (m) v0 = 5 velocidade inicial (m/s)

tet = 1 angulo inicial (rad)k = 0 coeficiente de atrito

dt = 0.1 precisao (m)

dmax = 5.403 distância máxima da trajectória hmax = 11.12 altura máxima da trajectória

t x y vx vy Aux0 0 10 2.702 4.207

0.1 0.27 10.42 2.702 3.2270.2 0.54 10.74 2.702 2.2470.3 0.81 10.97 2.702 1.2670.4 1.081 11.09 2.702 0.2870.5 1.351 11.12 2.702 -0.690.6 1.621 11.05 2.702 -1.670.7 1.891 10.89 2.702 -2.650.8 2.161 10.62 2.702 -3.630.9 2.431 10.26 2.702 -4.611 2.702 9.797 2.702 -5.59

Constantes e Parâmetros do Modelo

Resultados da Simulação

Simulação=C20+E20*C$8

=D20+F20*C$8=C4

=IF(AND(D20>0,D21<=0),C21,"")

=MAX(H21:H200)

=MAX(D20:D200)

=C5*COS(C6)

=C5*SIN(C6)

=E20-C$7*E20*C$8

=F20+(-C$7*F20-C$3)*C$8

Page 11: Folha da Cálculo - Conclusão

16 Dezembro 2005 Folha de Cálculo - Conclusão 11

Ajuste de Parâmetros• Em geral, se forem dados os parâmetros de um modelo físico

pode ser simulado o seu comportamento. Mas se se pretender determinar os parâmetros que conduzem a um certo comportamento a situação não é em geral simples.

• Em muitos casos, a melhor solução é tentar as várias alternativas (em um ou mais ciclos encadeados) e verificar qual a adequada. Por exemplo o maior alcance pode ser tentado variando o ângulo, a velocidade inicial e a altura inicial.

• Nestas situações uma folha de cálculo não é muito adequada para resolver o problema pois exige que o utilizador tente (manualmente) os vários parâmetros.

• No caso do alcance podem existir 30 ângulos para testar (entre 31º e 60º com passo 1), 20 velocidades iniciais (de 11 a 20 com passo 0.5) e 10 alturas iniciais (de 0 a 10 com passo 1) o que dá um total de 30*20*10 = 6000 possibilidades!!!

Page 12: Folha da Cálculo - Conclusão

16 Dezembro 2005 Folha de Cálculo - Conclusão 12

Tratamento de Dados

• O tratamento de dados numéricos, nomeadamente por regressão linear entre duas variáveis X e Y, pode ser feito através da folha de cálculo.

• Para esse efeito deverão ser utilizadas duas colunas (uma para a variável) onde se guardam os valores X e Y observados

• Para se obter os parâmetros da recta que melhor aproxima os pontos observados podem calcular-se esses valores utilizando as funções slope e intercept.

• Pode depois construir-se uma nova coluna, com os valores dos Y esperados, baseados nos valores dos X e dos parâmetros da recta.

• Finalmente pode obter-se o gráfico dos valores dos Xs e Ys observados e dos Ys esperados.

Page 13: Folha da Cálculo - Conclusão

16 Dezembro 2005 Folha de Cálculo - Conclusão 13

Tratamento de Dadosm b r

2.75 43.83 0.93X

observado observado esperado188 606.4 561.140 161.4 153.9145 396.2 442.8113 445.7 354.788 248.6 285.957 209.7 200.6... ... ...

139 357.3 426.2

Y

0.0

100.0

200.0

300.0

400.0

500.0

600.0

700.0

800.0

0 50 100 150 200 250

Nota: O Excel permite obter uma ideia qualitativa da recta através da utilização da tendência no desenho do gráfico (opção add trendline).

Page 14: Folha da Cálculo - Conclusão

16 Dezembro 2005 Folha de Cálculo - Conclusão 14

Tratamento da Informação

• A informação não numérica ou mista, como a que se pode organizar em tabelas (listas de estruturas), pode igualmente ser tratada por folhas de cálculo.

• Por exemplo, para cada elemento da tabela podem fazer-se cálculos a partir dos dados individuais (eventualmente através de fórmulas condicionais) ou obterem-se medidas de agregação (totais, médias, etc.).

• Podem ainda encontrar-se os valores máximos e mínimos de vectores e tabelas.

• Para todas estas operações podem ser utilizadas funções predefinidas das folhas de cálculo, algumas das quais condicionais.

Page 15: Folha da Cálculo - Conclusão

16 Dezembro 2005 Folha de Cálculo - Conclusão 15

Tratamento da Informação• A tabela abaixo calcula a nota final dos alunos, obtida por 2 testes e um

exame: – Um aluno tem frequência se a soma dos testes for maior ou igual a 9.5. A nota de

frequência é a média dos testes.

– A nota final é obtida pela média ponderada da nota de frequência (peso 5) e do exame (peso 15).

• São ainda calculados os alunos com notas positivas e as médias da turma e dos alunos com nota positiva.

num nome t1 t2 exame final freq aux610 Paulo Fernandes Lopes 12 14 16 15.25 13 15.25825 Pedro Vieira 13 9 11 11 11 11316 Marta Costa Martins 10 9 8 F 9.5 8.37534 Rui Vasco Pereira 7 5 0 R R #VALUE!723 Jorge Barata 11 15 14 13.75 13 13.75

alunos 5 5 5 5média 10.60 10.40 9.80 8.00alunos com positiva 4 2 3 3média das positivas 11.50 14.50 13.67 13.33

Page 16: Folha da Cálculo - Conclusão

16 Dezembro 2005 Folha de Cálculo - Conclusão 16

Tratamento da Informação• As tabelas podem ser ordenadas por alguns dos campos (pelo

nome dos alunos, pelo número dos alunos, pela nota, etc...).

• A mesma tabela anterior, ordenada por ordem (crescente) do nome dos alunos é mostrada abaixo.

• É igualmente determinada a nota máxima e nota mínima.

num nome t1 t2 exame final freq aux723 Jorge Barata 11 15 14 13.75 13 13.75316 Marta Costa Martins 10 9 8 F 9.5 8.375610 Paulo Fernandes Lopes 12 14 16 15.25 13 15.25825 Pedro Vieira 13 9 11 11 11 1134 Rui Vasco Pereira 7 5 0 R R #VALUE!

alunos 5 5 5 5média 10.60 10.40 9.80 8.00alunos com positiva 4 2 3 3média das positivas 11.50 14.50 13.67 13.33nota máxima 13 15 16 15.25nota mínima 7 5 0 11

Page 17: Folha da Cálculo - Conclusão

16 Dezembro 2005 Folha de Cálculo - Conclusão 17

Tratamento da Informação• Existem outras operações que envolvem operações de selecção e

que não são tão fáceis de implementar com uma folha de cálculo. Por exemplo, escrever uma tabela apenas com os alunos passados. Numa folha de cálculo podem ordenar-se por notas, mas a selecção tem de ser feita “manualmente”.

num nome t1 t2 exame final freq aux34 Rui Vasco Pereira 7 5 0 R R #VALUE!316 Marta Costa Martins 10 9 8 F 9.5 8.375610 Paulo Fernandes Lopes 12 14 16 15.25 13 15.25723 Jorge Barata 11 15 14 13.75 13 13.75825 Pedro Vieira 13 9 11 11 11 11

alunos 5 5 5 5média 10.60 10.40 9.80 8.00alunos com positiva 4 2 3 3média das positivas 11.50 14.50 13.67 13.33

Page 18: Folha da Cálculo - Conclusão

16 Dezembro 2005 Folha de Cálculo - Conclusão 18

Tratamento da Informação• Operações deste tipo podem ser executadas através de

programas apropriados, que leiam os ficheiros de entrada e produzam os ficheiros de saída.

• Em situações mais complexas, a informação pode estar distribuída por várias tabelas e os programas podem tornar-se muito complexos.

• É para estes casos que são criados os sistemas de bases de dados (relacionais), em que

– Se estabelecem metodologias para organizar os dados em tabelas (normalização)

– Se utilizam linguagens de acesso (ex. SQL) para tornar as questões (queries) mais simples.

Page 19: Folha da Cálculo - Conclusão

16 Dezembro 2005 Folha de Cálculo - Conclusão 19

Algoritmos e Complexidade• Os modernos sistemas informáticos (folhas de cálculo, bases de

dados) e linguagens de programação (funções e classes pré-definidas), disponibilizam facilidades em que procuram acomodar as necessidades mais comuns dos utilizadores.

• Outras necessidades específicas, requerem o desenvolvimento de algoritmos (em programas, funções, etc.) especializados (special-purpose).

• Ao desenvolver um algoritmo, e não obstante a rapidez dos modernos computadores, há que ter em atenção a sua complexidade, que mede os recursos (tempo e espaço) requeridos pelo algoritmo para terminar.

• Informalmente os algoritmos podem ser divididos em duas grandes classes: polinomiais ou exponenciais.

Page 20: Folha da Cálculo - Conclusão

16 Dezembro 2005 Folha de Cálculo - Conclusão 20

Algoritmos Exponenciais• Um algoritmo que para n variáveis com d valores procure um

valor adequado, pode no pior caso ter de ser implementado com ciclos encadeados:

para X1 de 1 a dpara X2 de 1 a d

para X3 de 1 a d ... para Xn de 1 a d

testar (X1, X2, X3, ..., Xn) fimpara;

...fimpara;

• Como é fácil de calcular, o teste é executado d*d* *d = dn vezes, pelo que um algoritmo deste tipo é exponencial em n (número de variáveis).

Page 21: Folha da Cálculo - Conclusão

16 Dezembro 2005 Folha de Cálculo - Conclusão 21

Algoritmos Polinomiais• Muitos outros algoritmos são

polinomiais. Tal é o caso da ordenação de um vector V com n valores, pelo método da bolha (bubble sort).

• O número de trocas máximo é de

(n-1)+(n-2)+...+1 = (n-1) ((n-1)+1)/2 ≈ ½ n2

pelo que o algoritmo é polinomial (quadrático) na dimensão, n, do vector.

Comparações

9 7 5 3 1 1-2

7 9 5 3 1 2-3

7 5 9 3 1 3-4

7 5 3 9 1 4-5

7 5 3 1 9 1-2

5 7 3 1 9 2-3

5 3 7 1 9 3-4

5 3 1 7 9 1-2

3 5 1 7 9 2-3

3 1 5 7 9 1-2

1 3 5 7 9 ok

Page 22: Folha da Cálculo - Conclusão

16 Dezembro 2005 Folha de Cálculo - Conclusão 22

Comparação da Complexidade• A diferença qualitativa entre estes algoritmos é importante. Se assumirmos que cada operação básica leva 1μs,

podemos escrever a seguinte tabela

... o que justifica que a maioria das funções predefinidas (tais como ordenações, máximo, etc.) sejam do tipo polinomial!

10 20 30 40 50 60 70

2n 1.02 ms 0.105 s 107.37 s 1.27 d 3.57 a 3 655.89 a 3.74 M 1 seg = 1E+07

3n 59.05 ms 348.68 s 238.3 d 38 551.7 a 2 276.44 M 134.42 T 2.5E+33 1 hora = 3.6E+10

5n 0.98 s 110.38 d 2.95 m 28.84 T 8.88E+34 8.67E+41 8.47E+48 1 dia = 8.6E+11

n2 0.1 ms 0.4 ms 0.9 ms 1.6 ms 2.5 ms 3.6 ms 4.9 ms 1 ano = 3.2E+14

n3 1.0 ms 8.0 ms 27.0 ms 64.0 ms 125.0 ms 216.0 ms 343.0 ms 1 M ano = 3.2E+20

n5 100.0 ms 3.20 s 24.30 s 102.40 s 312.50 s 777.60 s 1 680.70 s 1 T ano = 3.2E+26

n