220 likes | 316 Views
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.
E N D
Folha da Cálculo - Conclusão Jorge Cruz DI/FCT/UNL Programação para as Ciências Experimentais 1º Semestre 2005/2006 Folha de Cálculo - Conclusão
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 Folha de Cálculo - Conclusão
f(a) hmax dmax a Apresentação do Problema y • 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: v0 y0 (0,0) x • Problema:determinar a distância máxima (dmax) e a altura máxima (hmax) atingidas pelo projéctil. Folha de Cálculo - Conclusão
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. Folha de Cálculo - Conclusão
^ (x6,f(x6)) y (x2,f(x2)) (x1,f(x1)) ^ hmax dmax (x0,y0) x (x11,f(x11)) 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) • 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. Folha de Cálculo - Conclusão
Programa Octave % Inicialização de Variáveis g = 9.8; % aceleração da gravidade y0 = 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ória hmax = 0; % altura máxima da trajectória % Ciclo de Simulação x = 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 Resultados dmax = x; disp("Distância maxima da trajectoria (m):"); disp(dmax); disp("Altura maxima da trajectoria (m):"); disp(hmax); Folha de Cálculo - Conclusão
Folha de Cálculo Folha de Cálculo - Conclusão
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. Folha de Cálculo - Conclusão
f(a) hmax dmax a Variante c/ Modelo Diferencial y • 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 y0 (0,0) x 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 Folha de Cálculo - Conclusão
Folha de Cálculo Folha de Cálculo - Conclusão
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!!! Folha de Cálculo - Conclusão
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. Folha de Cálculo - Conclusão
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). Folha de Cálculo - Conclusão
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. Folha de Cálculo - Conclusão
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. Folha de Cálculo - Conclusão
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. Folha de Cálculo - Conclusão
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”. Folha de Cálculo - Conclusão
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. Folha de Cálculo - Conclusão
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. Folha de Cálculo - Conclusão
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). Folha de Cálculo - Conclusão
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. Folha de Cálculo - Conclusão
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! Folha de Cálculo - Conclusão