170 likes | 286 Views
Conclusão. DI/FCT/UNL 1º Semestre 2004/2005. 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
E N D
Conclusão DI/FCT/UNL 1º Semestre 2004/2005
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
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.
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!!!
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 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.
Tratamento de Dados 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).
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.
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 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).
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.
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”.
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.
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.
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).
Algoritmos Polinomiais • Outros algoritmos são polinomiais. Tal é o caso da ordenação de um vector A com n valores, pelo método bubblesort: para k = n-1 até 1 (passo -1) para i de 1 a k se A(i+1) < A(i)então trocar (A(i+1),A(i)) fimse fimpara; fimpara; • O número de trocas máximo é de (n-1)+(n-2)+(n-3)+...+1 = n * ((n-1)+1)/2 = ½ n2 pelo que o algoritmo é polinomial (quadrático) em n – dimensão do vector.
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!