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
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
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
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.
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.
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);
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
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
)
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
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
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!!!
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.
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).
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.
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
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
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
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.
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.
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).
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
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
Top Related