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
Download

Diapositivos