Universidade Federal de Ouro Preto
Instituto de Ciências Exatas e Biológicas
Departamento de Computação
Cálculo Numérico
P...
Sumário
1 Denição do Problema 1
2 Modelagem Matemática 1
3 Solução Numérica 1
4 Obtenção dos Resultados 1
4.1 Primeira Ord...
1 Denição do Problema
Realizando testes com o método de ordenação BubbleSort obteve-se o seguinte
resultado de tempo, em s...
Sabe-se que:
Dr
Yi =
Dr−1
Yi+1 − Dr−1
Yi
Xi+r − Xi
;
i = 0, 1, 2, ..., n
r = 0, 1, 2, ..., n − r
(1)
Sendo
D0
Yi = Yi ; i ...
4.3 Terceira Ordem
D3
Yi =
D2
Yi+1 − D2
Yi
Xi+3 − Xi
, i = 0, 1, 2, ..., n − 3 (14)
D3
Y0 =
D2
Y1 − D2
Y0
X3 − X0
= −1, 3x...
Portanto:
p(x) = 77, 80+(x−80000)(0, 00213)+(x−80000)(x−100000)(0, 000000009) (23)
p(95000) = 77, 80+(95000−80000)(0, 0021...
frequentemente, em computação, utiliza-se o método QuickSort. O QuickSort é o
algoritmo de ordenação interna (Memória RAM)...
Próximos SlideShares
Carregando em…5
×

Cálculo Numérico: Interpolação Polinomial com Bubble Sort

1.019 visualizações

Publicada em

Trabalho com a finalidade de estimar o tempo de execução do algoritmo de ordenação interna bubble sort utilizando conceitos de cálculo numérico.

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
1.019
No SlideShare
0
A partir de incorporações
0
Número de incorporações
4
Ações
Compartilhamentos
0
Downloads
8
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Cálculo Numérico: Interpolação Polinomial com Bubble Sort

  1. 1. Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Biológicas Departamento de Computação Cálculo Numérico Primeiro Trabalho Prático Johnnatan Messias P. Afonso Professor - José Álvaro Tadeu Ferreira Ouro Preto 5 de maio de 2010
  2. 2. Sumário 1 Denição do Problema 1 2 Modelagem Matemática 1 3 Solução Numérica 1 4 Obtenção dos Resultados 1 4.1 Primeira Ordem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 4.2 Segunda Ordem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 4.3 Terceira Ordem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4.4 Quarta Ordem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4.5 Quinta Ordem . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4.6 O Resultado . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 5 Análise dos Resultados 4 6 Bubble Sort 4 Lista de Figuras 1 Tabela . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 Tabela dos Resultados . . . . . . . . . . . . . . . . . . . . . . . . . . 1 3 Pontos escolhidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Lista de Programas 1 Algoritmo BubbleSort . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2
  3. 3. 1 Denição do Problema Realizando testes com o método de ordenação BubbleSort obteve-se o seguinte resultado de tempo, em segundos, para as quantidades de elementos a serem orde- nados: Figura 1: Tabela Através dessa tabela de resultados deseja-se obter uma estimativa de tempo para que o algoritmo ordene 95.000 elementos. 2 Modelagem Matemática A função é crescente no intervalo x = [25000;150000], logo podemos resolver esse problema utilizando interpolação polinomial. 3 Solução Numérica Utilizarei o Método das Diferenças Divididas para estimar o tempo para ordenar 95000 (noventa e cinco mil) elementos de um vetor, uma vez que esse método realiza menos operações aritméticas quando comparado ao Método de Lagrange. 4 Obtenção dos Resultados Figura 2: Tabela dos Resultados O polinômio interpolador é: p(x) = y0 + (x−x0)DY0 + (x−x0)(x−x1)D2 Y0 + (x−x0)(x−x1)(x−x2)D3 Y0 + (x−x0)(x−x1)(x−x2)(x−x3)D4 Y0 + (x−x0)(x−x1)(x−x2)(x−x3)(x−x4)D5 Y0 1
  4. 4. Sabe-se que: Dr Yi = Dr−1 Yi+1 − Dr−1 Yi Xi+r − Xi ; i = 0, 1, 2, ..., n r = 0, 1, 2, ..., n − r (1) Sendo D0 Yi = Yi ; i = 0, 1, 2, ..., n (2) Então podemos calcular as diferenças divididas de ordem 1, 2, 3, 4 e 5 nesse caso: 4.1 Primeira Ordem DYi = Yi+1 − Yi Xi+1 − Xi , i = 0, 1, 2, ..., n − 1 (3) DY0 = Y1 − Y0 X1 − X0 = 0, 000773 (4) DY1 = Y2 − Y1 X2 − X1 = 0, 00147 (5) DY2 = Y3 − Y2 X3 − X2 = 0, 00213 (6) DY3 = Y4 − Y3 X4 − X3 = 0, 00252 (7) DY4 = Y5 − Y4 X5 − X4 = 0, 00358 (8) 4.2 Segunda Ordem D2 Yi = DYi+1 − DYi Xi+2 − Xi , i = 0, 1, 2, ..., n − 2 (9) D2 Y0 = DY1 − DY0 X2 − X0 = 0, 000000012 (10) D2 Y1 = DY2 − DY1 X3 − X1 = 0, 000000011 (11) D2 Y2 = DY3 − DY2 X4 − X2 = 0, 000000009 (12) D2 Y3 = DY4 − DY3 X5 − X3 = 0, 000000021 (13) 2
  5. 5. 4.3 Terceira Ordem D3 Yi = D2 Yi+1 − D2 Yi Xi+3 − Xi , i = 0, 1, 2, ..., n − 3 (14) D3 Y0 = D2 Y1 − D2 Y0 X3 − X0 = −1, 3x10−14 (15) D3 Y1 = D2 Y2 − D2 Y1 X4 − X1 = −2, 5x10−14 (16) D3 Y2 = D2 Y3 − D2 Y2 X5 − X2 = 1, 714x10−13 (17) 4.4 Quarta Ordem D4 Yi = D3 Yi+1 − D3 Yi Xi+4 − Xi , i = 0, 1, 2, ..., n − 4 (18) D4 Y0 = D3 Y1 − D3 Y0 X4 − X0 = −1, 26x10−19 (19) D4 Y1 = D3 Y2 − D3 Y1 X5 − X1 = 1, 785x10−18 (20) 4.5 Quinta Ordem D5 Yi = D4 Yi+1 − D4 Yi Xi+5 − Xi , i = 0, 1, 2, ..., n − 5 (21) D5 Y0 = D4 Y1 − D4 Y0 X5 − X0 = −1, 528x10−23 (22) 4.6 O Resultado Para calcular a estimativa de tempo foram escolhidos os pontos: (80000;77,80),(100000;120,40),(120000;170,90). Figura 3: Pontos escolhidos 3
  6. 6. Portanto: p(x) = 77, 80+(x−80000)(0, 00213)+(x−80000)(x−100000)(0, 000000009) (23) p(95000) = 77, 80+(95000−80000)(0, 00213)+(95000−80000)(95000−100000)(0, 000000009) (24) p(95000) = 109,075 ∼= 109 segundos 5 Análise dos Resultados O resultado obtido é coerente com o polinômio do problema, uma vez que 95000 ∈ [80000; 100000] e ainda, de forma correspondente, 109 ∈ [77, 80; 120, 40]. 6 Bubble Sort BubbleSort é um simples método de ordenação que verica todas as posições do vetor a m de ordená-lo, comparando todos os elementos. Para esse trabalho utilizou-se o seguinte algoritmo em C: void BubbleSort ( TArray∗ pA) { int i , j ; TItem aux ; 5 for ( i =0; i pA−Size −1; i ++) { for ( j =1; jpA−Size −i ; j++) { if (pA−P o s i t i o n s [ j ] . keypA−P o s i t i o n s [ j −1]. key ) 10 { aux = pA−P o s i t i o n s [ j ] ; pA−P o s i t i o n s [ j ]=pA−P o s i t i o n s [ j −1]; pA−P o s i t i o n s [ j −1]=aux ; } 15 } } } Programa 1: Algoritmo BubbleSort Ainda é possível otimizá-lo bastando-se incluir uma variável trocaque veri- que se houve uma troca de posições dos elementos do vetor, diminuindo o tempo necessário para a execução do algoritmo bem como o número de comparações. Possui ordem de complexidade em número de comparações On2 , isto é: O(n) = n−2 i=0 n − i − 1 = n−2 i=0 n − n−2 i=0 i − n−2 i=0 1 = n2 − n 2 (25) [1] Na prática esse algoritmo não é comumente utilizado para ordenação de uma grande quantidade de elementos, uma vez que é muito lento para execução, por isso 4
  7. 7. frequentemente, em computação, utiliza-se o método QuickSort. O QuickSort é o algoritmo de ordenação interna (Memória RAM) mais rápido que se conhece e em seu melhor caso possui ordem de complexidade n log(n), ou seja, O(n log(n)). [2] Referências [1] David Menotti. Algoritmos e Estruturas de Dados I: Ordenação I SelectSort, InsertSort, BubbleSort. 2009. [2] David Menotti. Algoritmos e Estruturas de Dados I: Ordenação III QuickSort. 2009. 5

×