Conclusão Pedro Barahona DI/FCT/UNL Junho 2005 2 de Junho de 2005 Conclusão 1 Ciclos de Simulação • A técnica usada no exemplo da queda livre pode ser utilizada para trajectórias a duas (ou três dimensões). • Em geral, para cada ciclo é necessário – Utilizar uma coluna (ou linha) para as variáveis que estão a ser simuladas – Inicializar a “linha de cima” – Na linha seguinte obter os valores das variáveis a partir dos valores anteriores (i.e. da linha anterior). – Tendo em atenção as referências relativas e/ou absolutas, copiar a 2ª linha para as linhas seguintes. – Copiar tantas linhas quantas as necessárias 2 de Junho de 2005 Conclusão 2 Exemplo: Trajectória 2 dimensões g = 9.8 aceleração da gravidade dt= % intervalo de tempo (em segs) vi = % velocidade inicial (em m/s) k = % coeficiente de atrito (1/s) alfa = % ângulo de disparo t = 0 x = 0 y = 0; vx = vi*cos(alfa*pi/180) vy = vi*sin(alfa*pi/180); ax = - ka * vx ay = -g - ka * vy; while Y(i) >= 0 t = t + dt; x = x + vx * dt; y = y + vy * dt; vx = vx + ax * dt; vy = vy + ay * dt; ax = 0 - ka * vx; ay = -g - ka * vy; endwhile; 2 de Junho de 2005 Conclusão 3 Exemplo: Trajectória 2 dimensões dt 0.01 t 0 0.010 0.020 0.030 0.040 ... 2.840 2.850 2 de Junho de 2005 vi 40 x y vx 0 0 34.641 0.346 0.200 34.295 0.689 0.397 33.948 1.029 0.591 33.605 1.365 0.782 33.266 ... ... ... 32.376 0.020 1.938 32.396 -0.062 1.918 Conclusão alfa 30 vy 20 19.702 19.404 19.109 18.817 ... -8.133 -8.150 k 1 ax -34.64 -34.641 -34.295 -33.948 -33.605 ... -1.958 -1.938 g 9.8 ay -29.8 -29.800 -29.502 -29.204 -28.909 ... -1.684 -1.667 4 Ciclos de 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. 10 8 6 4 2 0 0 5 10 15 20 25 30 35 -2 2 de Junho de 2005 Conclusão 5 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 a ângulo. • 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 31 ângulos para testar (entre 30º e 60º). No caso do tiro poderá haverá 30 (ângulos) * 21 (velocidades de 10 a 20) * 11 (coeficientes de atrito de 0 a 1) = 7161 possibilidades!!! 2 de Junho de 2005 Conclusão 6 Tratamento de Dados • O tratamento de dados numéricos, nomeadamente por regressão linear entre duas variáveis X e Y, pode igualmente 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 devem calcular-se esses valores de acordo com as fórmulas indicadas (ou utilizando as funções slope, intercept e correl). • 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. 2 de Junho de 2005 Conclusão 7 Tratamento de Dados m b r 2.75 43.83 0.93 X Y observado observado esperado 188 606.4 561.1 40 161.4 153.9 145 396.2 442.8 113 445.7 354.7 88 248.6 285.9 57 209.7 200.6 ... ... ... 139 357.3 426.2 2 de Junho de 2005 800.0 700.0 600.0 500.0 400.0 300.0 200.0 100.0 0.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). Conclusão 8 Tratamento da Informação • A informação não numérica ou mista, como a que se pode organizar em tabelas, 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. 2 de Junho de 2005 Conclusão 9 Tratamento da Informação • A tabela abaixo calcula a nota final dos alunos, obtida por 2 testes e exame. Um aluno tem frequência se a soma dos testes fôr 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 610 825 316 34 723 2 de Junho de 2005 nome Paulo Fernandes Lopes Pedro Vieira Marta Costa Martins Rui Vasco Pereira Jorge Barata alunos média alunos com positiva média das positivas t1 t2 exame 12 14 16 13 9 11 10 9 8 7 5 0 11 15 14 5 5 5 10.60 10.40 9.80 4 2 3 11.50 14.50 13.67 Conclusão final 15.25 11 F R 13.75 5 8.00 3 13.33 freq aux 13 15.25 11 11 9.5 8.375 R #VALUE! 13 13.75 10 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 723 316 610 825 34 2 de Junho de 2005 nome t1 t2 exame final Jorge Barata 11 15 14 13.75 Marta Costa Martins 10 9 8 F Paulo Fernandes Lopes 12 14 16 15.25 Pedro Vieira 13 9 11 11 Rui Vasco Pereira 7 5 0 R alunos 5 5 5 5 média 10.60 10.40 9.80 8.00 alunos com positiva 4 2 3 3 média das positivas 11.50 14.50 13.67 13.33 nota máxima 13 15 16 15.25 nota mínima 7 5 0 11 Conclusão freq aux 13 13.75 9.5 8.375 13 15.25 11 11 R #VALUE! 11 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 34 316 610 723 825 nome Rui Vasco Pereira Marta Costa Martins Paulo Fernandes Lopes Jorge Barata Pedro Vieira alunos média alunos com positiva média das positivas 2 de Junho de 2005 t1 t2 exame 7 5 0 10 9 8 12 14 16 11 15 14 13 9 11 5 5 5 10.60 10.40 9.80 4 2 3 11.50 14.50 13.67 Conclusão final R F 15.25 13.75 11 5 8.00 3 13.33 freq aux R #VALUE! 9.5 8.375 13 15.25 13 13.75 11 11 12 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 ficehiros 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. 2 de Junho de 2005 Conclusão 13 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, mais específicas, desenvolvimento de algoritmos especializados. requerem o • 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. 2 de Junho de 2005 Conclusão 14 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 d para 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). 2 de Junho de 2005 Conclusão 15 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. 2 de Junho de 2005 Conclusão 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 16 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 n 2 3 5 n n n 10 20 30 40 50 60 70 n 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 n 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 8.88E+34 8.67E+41 8.47E+48 1 dia = 8.6E+11 n 0.98 s 110.38 d 2.95 m 28.84 T 2 0.1 ms 0.4 ms 0.9 ms 1.6 ms 3 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 5 100.0 ms 3.20 s 24.30 s 102.40 s 312.50 s 1 T ano = 3.2E+26 2.5 ms 3.6 ms 4.9 ms 777.60 s 1 680.70 s 1 ano = 3.2E+14 ... o que justifica que a maioria das funções predefinidas (tais como ordenações, máximo, etc.) sejam do tipo polinomial! 2 de Junho de 2005 Conclusão 17