2 de Junho de 2005Conclusão1 Pedro Barahona DI/FCT/UNL Junho 2005.
Transcript of 2 de Junho de 2005Conclusão1 Pedro Barahona DI/FCT/UNL Junho 2005.
2 de Junho de 2005 Conclusão 1
Conclusão
Pedro BarahonaDI/FCT/UNL
Junho 2005
2 de Junho de 2005 Conclusão 2
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 3
Exemplo: Trajectória 2 dimensõesg = 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 disparot = 0x = 0y = 0;vx = vi*cos(alfa*pi/180)vy = vi*sin(alfa*pi/180);ax = - ka * vxay = -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 4
Exemplo: Trajectória 2 dimensões
dt vi alfa k g0.01 40 30 1 9.8t x y vx vy ax ay0 0 0 34.641 20 -34.64 -29.8
0.010 0.346 0.200 34.295 19.702 -34.641 -29.8000.020 0.689 0.397 33.948 19.404 -34.295 -29.5020.030 1.029 0.591 33.605 19.109 -33.948 -29.2040.040 1.365 0.782 33.266 18.817 -33.605 -28.909... ... ... ... ... ... ...
2.840 32.376 0.020 1.938 -8.133 -1.958 -1.6842.850 32.396 -0.062 1.918 -8.150 -1.938 -1.667
2 de Junho de 2005 Conclusão 5
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.
-2
0
2
4
6
8
10
0 5 10 15 20 25 30 35
2 de Junho de 2005 Conclusão 6
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 7
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 8
Tratamento de Dadosm b r2.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).
2 de Junho de 2005 Conclusão 9
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 10
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 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
2 de Junho de 2005 Conclusão 11
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
2 de Junho de 2005 Conclusão 12
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
2 de Junho de 2005 Conclusão 13
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 14
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, requerem o desenvolvimento de algoritmos especializados.
• 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 15
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).
2 de Junho de 2005 Conclusão 16
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
2 de Junho de 2005 Conclusão 17
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