Matemática Discreta LEIC IST-Tagus 2015/2016 Lista de exercícios 6

Documentos relacionados
O sistema Mathematica

Resolução de sistemas de equações lineares: Método de eliminação de Gauss - estratégias de pivotamento

Agenda do Dia Aula 14 (19/10/15) Sistemas Lineares: Introdução Classificação

ESTRUTURA DE DADOS CIÊNCIA E TECNOLOGIA DO RIO. Curso de Tecnologia em Sistemas para Internet

Lista 1 - PMR2300. Fabio G. Cozman 3 de abril de 2013

Medida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Resolução de Sistemas Lineares. Ana Paula

Resolução de sistemas de equações lineares: Método de eliminação de Gauss - estratégias de pivotamento

decomposição de Cholesky.

Cálculo Numérico BCC760

Métodos Numéricos - Notas de Aula

Lista 2 - PMR2300/3200

Resolução de sistemas de equações lineares: Fatorações de matrizes

Parte 0: Normas de Vetor e Matriz

1 a LISTA DE EXERCÍCIOS Sistemas de Equações Lineares e Matrizes Álgebra Linear - 1 o Semestre /2018 Engenharia Aeroespacial

COMPLEXIDADE DE ALGORITMOS

Introdução aos Métodos Numéricos. Instituto de Computação UFF

a complexidade no desempenho de algoritmos

Cálculo Diferencial e Integral I

Álgebra Linear. Professor Alessandro Monteiro. 1º Sábado - Matrizes - 11/03/2017

Avaliação e programa de Álgebra Linear

Vetores e Geometria Analítica

Noções de algoritmos - Aula 1

Álgebra Linear e Geometria Anaĺıtica. Matrizes e Sistemas de Equações Lineares

SISTEMAS LINEARES PROF. EDÉZIO

UFPR - Universidade Federal do Paraná Setor de Ciências Exatas Departamento de Matemática MA12 - Matemática Discreta - PROFMAT Prof.

2. Complexidade de Algoritmos

Resolução de Sistemas Lineares. Ana Paula

Resolução de sistemas de equações lineares: Fatorações de matrizes

Matemática A - 10 o Ano

Resolução de sistemas de equações lineares: Fatorações de matrizes

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

Planificação anual 2018/19

Matemática II /06 - Matrizes 1. Matrizes

Capítulo 5 - Interpolação Polinomial

AGRUPAMENTO DE ESCOLAS DE MIRA Escola Sec/3 Drª. Maria Cândida. PLANIFICAÇÃO ANUAL MATEMÁTICA 8º Ano Ano Letivo 2016/2017. Objetivos específicos

Análise de Algoritmos Estrutura de Dados II

Noções de algoritmos - Aula 1

Sistemas de Equações Lineares Algébricas

Técnicas de análise de algoritmos

Introdução aos Métodos Numéricos

Resolução de Sistemas Lineares. Ana Paula

Métodos Numéricos. Turma CI-202-X. Josiney de Souza.

INSTITUTO SUPERIOR TÉCNICO Mestrado Integrado em Engenharia Física Tecnológica Ano Lectivo: 2007/2008 Semestre: 1 o

Cálculo Numérico Noções básicas sobre erros

Unidade I MATEMÁTICA. Prof. Celso Ribeiro Campos

COMPLEXIDADE DE ALGORITMOS COMPLEXIDADE DE ALGORITMOS

MATEMÁTICA PLANEJAMENTO 2º BIMESTRE º B - 11 Anos

INSTITUTO SUPERIOR TÉCNICO Licenciatura em Engenharia Física Tecnológica Licenciatura em Engenharia e Gestão Industrial Ano Lectivo: 2002/

Programa Combinatória Aritmética Racional MATEMÁTICA DISCRETA. Patrícia Ribeiro. Departamento de Matemática, ESTSetúbal 2018/ / 52

4 ÁLGEBRA ELEMENTAR. 4.1 Monômios e polinômios: valor numérico e operações.

Introdução aos Métodos Numéricos

INSTITUTO POLITÉCNICO DE SETÚBAL ESCOLA SUPERIOR DE TECNOLOGIA DEPARTAMENTO DE MATEMÁTICA. Exercícios sobre Sistemas de Equações Lineares.

ALGA - Eng. Civil e Eng. Topográ ca - ISE / Matrizes 1. Matrizes

P L A N I F I C A Ç Ã 0 3 º C I C L O

Sistemas Lineares - Eliminação de Gauss

Álgebra Linear. Curso: Engenharia Electrotécnica e de Computadores 1 ō ano/1 ō S 2006/07

5 a Lista de Exercícios de Introdução à Álgebra Linear IMPA - Verão Encontre os autovalores, os autovetores e a exponencial e At para

x 1 + b a 2 a 2 : declive da recta ;

Centro Federal de Educação Tecnológica de Minas Gerais Programa de Pós-Graduação em Modelagem Matemática e Computacional

Sistemas de Equações Lineares Algébricas

3. Matrizes e Sistemas de Equações Lineares 3.1. Conceito Elementar de Matriz. Definição 1 Sejam m e n dois números naturais.

Métodos Matemáticos II

PLANIFICAÇÃO ANUAL MATEMÁTICA 4º ANO

FLEXIBILIZAÇÃO CURRICULAR. Planificação Anual 7ºano Disciplina/Área disciplinar: MATEMÁTICA

Capítulo 6 Análise de Algoritmos Capítulo 6

Calendarização da Componente Letiva Ano Letivo 2016/2017

Introdução à Análise Algoritmos

INSTITUTO SUPERIOR TÉCNICO LEFT LEBL LQ LEAM LEMAT Ano Lectivo: 2006/2007 Semestre: 2 o

Algoritmos Numéricos 2 a edição

Introdução à Ciência da Computação II

em valores singulares ALGA 2007/2008 Mest. Int. Eng. Electrotécnica e de Computadores Decomposição por valores singulares 1 / 14

Capítulo 4 - Interpolação Polinomial

Hewlett-Packard CONJUNTOS NUMÉRICOS. Aulas 01 a 08. Elson Rodrigues, Gabriel Carvalho e Paulo Luiz Ramos

DEPARTAMENTO DE MATEMÁTICA E INFORMÁTICA DISCIPLINA: Matemática (8º Ano) METAS CURRICULARES/CONTEÚDOS ANO LETIVO 2016/

Notas para o Curso de Algebra Linear Il Dayse Haime Pastore 20 de fevereiro de 2009

Álgebra Linear e Geometria Anaĺıtica

MATEMÁTICA - 8.º Ano. Ana Soares ) Catarina Coimbra

Teoria da Computação Aula 9 Noções de Complexidade

Quadro de conteúdos MATEMÁTICA

Resolução de Sistemas Lineares. Método de Gauss. O algoritimo conhecido como Método de Gauss é desenvolvido a partir de dois ingredientes básicos:

Método de eliminação de Gauss

Revisão: Matrizes e Sistemas lineares. Parte 01

Análise de algoritmos

Aulas práticas de Álgebra Linear

ALGA - Eng.Civil e Eng.Topográ ca-ise-2011/2012- Determinantes 32. Determinantes

Matemática Discreta. Universidade de Lisboa NOME NÚMERO. Instituto Superior Técnico 2015/16 TESTE 2 A. Grupo I. Grupo II. Grupo III. Grupo IV.

DISCIPLINA: MATEMÁTICA ANO: 8º ANO LETIVO 2012/2013 ATIVIDADES ESTRATÉGIAS. Atividades de diagnóstico. Atividades de revisão e recuperação.

ENSINO BÁSICO. ESCOLA: Secundária Dr. Solano de Abreu DISCIPLINA: Matemática ANO: 8º ANO LETIVO 2013/2014 CONTEÚDOS PROGRAMÁTICOS

Análise de algoritmos. Parte I

Álgebra Linear e Geometria Anaĺıtica. Espaços Vetoriais Reais

Aulas práticas de Álgebra Linear

Algoritmo. Exemplo. Definição. Programação de Computadores Comparando Algoritmos. Alan de Freitas

Matemática Computacional - Exercícios

Lista de exercícios sobre contagem de operações Prof. João B. Oliveira

Solução de sistemas de equações lineares

Transcrição:

Matemática Discreta LEIC IST-Tagus 205/206 Lista de exercícios 6. Recorde a forma fechada obtida para somatórios do tipo n k r, r N 2 e p, n N com p n, isto é, somatórios cujo termo geral é um monómio fatorial potência cadente de expoente negativo menor que. Use-a para calcular formas fechadas para a n b c n+ d g k= 2 k+k+2k+3 k+3k+4k+5 4 k 2 e n h k 2 +3k+2 k+4 k+k+2k+3 4 k+k+3 k=p k= f n i 5 k 2 +k 2k+5 k+k+2k+3 k+2k+5 2. Recorde a forma fechada obtida para somatórios do tipo n ak + b r, r N 2, a, b R e p, n N com p n, isto é, somatórios cujo termo geral é a potência fatorial de expoente negativo de uma progressão aritmética. Use-a para calcular formas fechadas para a c 2k+2k+3 b n k=p 2k+2k+32k+5 2n+8 3n+23n+53n+8 3. No exercício 2 da lista de exercícios 5 recorreu-se à derivada finita de sucessões e ao teorema fundamental do cálculo finito para obter formas fechadas de somatórios k r a k com a R\{} e n, p, r N com p n. Formas fechadas para este tipo de somatórios podem também ser obtidas através do chamado método das perturbações que a seguir se ilustra para o caso particular da alínea a que corresponde ao caso p = 0, r = 0 e a = 5. Os outros casos são semelhantes. Pode obter-se uma forma fechada para o somatório Passo : considera-se n+ n k=p 5 k procedendo como se segue: 5 k e reescreve-se este novo somatório de duas formas distintas tentando fazer aparecer em 2 o somatório para o qual se pretende obter uma forma fechada: n+ 5 k = 5 k + 5 n+ 2 n+ n+ 5 k = 5 0 + 5 k = + k= n+ k= 5 k+ = + 5 k+ = + 5 5 k Passo 2: igualam-se as expressões mais à direita em e 2 e resolve-se em ordem ou seja, em ordem ao somatório inicial, obtendo-se uma forma fechada para esse somatório: 5 k + 5 n+ = + 5 5 k 5 k = 5n+ 4 * Notar que este novo somatório corresponde ao somatório inicial com uma parcela adicional, pois o limite superior passa agora a ser n+, e daí a designação de método das perturbações da soma; a reescrita que se efetua usa as propriedades dos somatórios. n 5 k, Use o método das perturbações ilustrado acima para encontrar uma forma fechada para a 5 k b 0 k c 2 k d k2 k e k k

4. Encontre uma forma fechada para cada uma das expressões seguintes a e i 0 k + 3 b n+3 3+k j= 2 2 k + 6 c 7 f 2 i + i 4 + i 2 g 6i + n 2 j i= j= i=4 i 3 k i= j=0 n+2 k= 6 4 k+3 + 2 i= m+ 4k+k3 i 2 i=0 d k= 2k+5 3 i 2 +i + i 3 h j j + j l j= i= j=n i j 5. No contexto da análise de algoritmos é usual recorrer-se a diversos conceitos relativos ao comportamento assimptótico de funções. Um exemplo é a notação O: dadas f, g : N R + 0, diz-se que f é Og ou fn é Ogn se existem p N e c R + tais que fn < cgn para qualquer n p. a Sejam f, g : N R + 0. Mostre que se lim fn gn = r, com r R, então f é Og. b Mostre que se f : N R + 0 é um polinómio a kn k +... + a n + a 0 de grau k então f é On k, para qualquer k N tal que k k. 6. A análise de algoritmos/programas é o estudo dos recursos necessários à sua execução em termos de tempo e/ou espaço memória. Quando se estuda o recurso tempo pode associar-se um custo c i a cada tipo i de operação considerado relevante, e contar-se o número n i de operações de tipo i que são executadas. O custo está relacionado com o tempo de execução da operação. O tempo de execução obtém-se somando os valores n i c i obtidos. Não se considera aqui a questão dos custos que dependem das características da computador usado. O objectivo é ilustrar a contagem do número de operações executadas, dando ênfase a certos tipos operações, designadamente, operações aritméticas relevantes em algoritmos numéricos, como por exemplo o algoritmo de eliminação de Gauss e operações de comparação relevantes em casos de algoritmos de pesquisa e ordenação, por exemplo. Esta contagem do número de operações é uma aplicação das noções de somatório e forma fechada de somatório, quando se trata de algoritmos imperativos. Os programas/algoritmos apresentados nos exercícios seguintes são funções Mathematica 2. a A função 3 Mathematica f recebe um inteiro positivo n e devolve uma lista 4 s de comprimento n com os factoriais dos inteiros de até n por exemplo, avaliando a expressão f[5] obtém-se a lista {,2,6,24,20}: f=function[{n}, s={}; k=; While[k<=n, s=append[s,factorial[k]]; k=k+]; s] Escreva, sob forma de um somatório, uma expressão que represente o número de multiplicações realizadas quando se avalia a expressão f[n] n inteiro positivo, assumindo que quando se O caso dos algoritmos recursivos será estudado mais adiante e envolve a noção de sucessão definida por recorrência. 2 O Mathematica www.wolfram.com é o ambiente computacional no qual se baseia, por exemplo, a aplicação Wolfram Alpha. Está disponível para alunos do IST a partir de http://dsi.ist.utl.pt/software. Uma breve introdução ao Mathematica está disponível a partir da página desta disciplina no Fénix, mas não é essencial para resolver os exercícios que se seguem, pois os detalhes relevantes para a sua compreensão serão aqui apresentados. 3 O significado das diferentes expressões é fácil de perceber. Em particular, a semântica de While[cond,exp] é a esperada: enquanto a condição cond for verdadeira é avaliada a expressão exp. O valor que uma função devolve é sempre o valor da última expressão que é avaliada, que neste caso é s. 4 Em Mathematica, uma lista cujos elementos são, por exemplo, 4, 2, 5 e 0 é representada com os seus elementos entre chavetas e separados por vírgulas: {4,2,5,0}. A lista vazia é {}. Estão disponíveis várias operações sobre listas, como por exemplo Append, com o significado esperado Append[{4,2,5,0},9] é a lista {4,2,5,0,9}.

avalia Factorial[k] se realizam k multiplicações 5 se k > 0 e 0 caso contrário. Obtenha depois uma forma fechada para esse somatório, e, a partir, dela, conclua que esse número de multiplicações é On 2. resposta: n k = nn b A função Mathematica f recebe um inteiro positivo m e devolve uma lista v de comprimento m na qual o elemento na posição k é k k+ por exemplo, avaliando f[4] obtém-se a lista {,8,8,024}, correspondente a { 2, 2 3, 3 4, 4 5 }: f=function[{m}, v={}; k=; While[k<=m, v=append[v,power[k,k+]]; k=k+]; v] Escreva, sob forma de um somatório, uma expressão que represente o número de multiplicações realizadas quando se avalia a expressão f[m] m inteiro positivo assumindo que quando se avalia Power[x,y] se realizam y multiplicações. Obtenha depois uma forma fechada para esse somatório, e, a partir, dela, conclua que esse número de multiplicações é Om 2. c A função Mathematica f recebe um inteiro n maior que e devolve uma lista s de comprimento n- que na posição k tem o número n A k de arranjos sem repetição de n, k a k por exemplo, avaliando a expressão f[5] obtém-se a lista {5,20,60,20} que corresponde a { 5 A, 5 A 2, 5 A 3, 5 A 4 }: f=function[{n}, s={}; k=; While[k<n, s=append[s,factorial[n]/factorial[n-k]]; k=k+]; s] Calcule o número de multiplicações e divisões realizadas quando se avalia f[n], n inteiro maior que, assumindo que quando se avalia Factorial[k] se realizam k multiplicações se k > 0 e 0 caso contrário. Conclua que esse valor é On 2. d A função Mathematica f recebe um inteiro n maior que e devolve uma lista s de comprimento n- que na posição k tem o número n A k de arranjos sem repetição de n, k a k por exemplo, avaliando f[5] obtém-se a lista {5,20,60,20} que corresponde a { 5 A, 5 A 2, 5 A 3, 5 A 4 }: f=function[{n}, s={}; k=; While[k<n, a=n; i=; While[i<=k-, a=a*n-i; s=append[s,a]; k=k+]; s] 5 Em Mathematica, é usado o símbolo * para a operação multiplicação, e portanto, neste caso, as únicas multiplicações realizadas quando se avalia f[n] são as que resultam da avaliação da função Factorial. k= 2

Calcule o número de multiplicações e divisões realizadas quando se avalia f[n] n inteiro maior que. Conclua que esse valor é On 2. resposta: n k = nn 2 n e A função Mathematica g recebe um inteiro positivo n e devolve uma matriz 6 m quadrada de dimensão n na qual o elemento m ij é 2 i+j por exemplo, avaliando a expressão g[3] obtém-se o resultado {{4, 8, 6},{8, 6, 32},{6, 32, 64}}: g = Function[{n}, m={}; i=; While[i<= n, lin={}; j=; While[j<= n, lin = Append[lin,Power[2,i+j]]; m = Append[m,lin]; m] Calcule o número de multiplicações realizadas quando se avalia a expressão g[n] n inteiro positivo, assumindo que quando se avalia Power[x,y] se realizam y multiplicações. Conclua que esse valor é On 3. f A função 7 Mathematica g recebe um inteiro positivo n e devolve uma matriz m quadrada de dimensão n, triangular superior, na qual o elemento m ij i j é j i+ por exemplo, avaliando a expressão g[3] obtém-se {{, 4, 9},{0, 8, 27},{0, 0, 8}}: g = Function[{n}, m ={}; i= ; While[i<=n, lin={}; j=; If[j<i, lin=append[lin,0], lin=append[lin,power[j,i+]]]; m=append[m,lin]; m] Calcule o número de multiplicações realizadas quando se avalia a expressão g[n] n inteiro positivo, assumindo que quando se avalia Power[x,y] se realizam y multiplicações. Conclua que esse valor é On 3. resposta: n n i = n3 +3n 2 +2n 6 k= i= i= j=i g A função Mathematica g recebe um inteiro positivo n e devolve uma matriz m quadrada de dimensão n, triangular inferior, na qual o elemento m ij i j é j i+ por exemplo, avaliando a expressão g[3] obtém-se {{, 0, 0},{, 8, 0},{, 6, 8}}: 6 Em Mathematica, uma matriz é representada por uma lista de listas isto é, a lista das linhas da matriz. Por exemplo, {{4, 8},{8, 0},{6,-32}} representa uma matriz com 3 linhas e 2 colunas em que os elementos da primeira linha são 4 e 8, os elementos da segunda linha são 8 e 0 e os elementos da terceira linha são 6 e 32. 7 A semântica de If[cond,exp,exp2] é a esperada: se condição cond for verdadeira é avaliada a expressão exp e, em caso contrário, é avaliada a expressão exp2.

g = Function[{n}, m={}; i=; While[i <= n, lin={}; j=; If[j>i, lin=append[lin,0], lin=append[lin,power[j,i+]]]; m=append[m,lin]; m] Calcule o número de multiplicações realizadas quando se avalia a expressão g[n] n inteiro positivo, assumindo que quando se avalia Power[x,y] se realizam y multiplicações. h A função Mathematica f recebe uma matriz w e devolve um número u, recorrendo a uma função p que se assume previamente definida: f = Function[{w}, {m,n}=dimensions[w]; u=0; i=; While[i<=m, j=i+; u=u+p[w,j]; u] Calcule o número de multiplicações realizadas quando se avalia f[w] w matriz de dimensão m n, sabendo que a avaliação de p[w,j] realiza j multiplicações. Calcule depois o número de operações aritméticas realizadas na mesma situação incluindo as que modificam i e j, sabendo que a avaliação de p[w,j] realiza j + 2 somas e não realiza subtrações ou divisões. resposta: m i= j=i+ j = 3mn2 +3mn m 3 2m 2 2m 6 ; m 2 + n 2j + 4 = 6mn2 +24mn 2m 3 5m 2 m i A função Mathematica f recebe uma matriz m e devolve um número r, usando uma função g que se assume previamente definida: f = Function[{m}, {nl,nc}=dimensions[m]; r=; j=; While[j<=nc, i=; While[i<nl, r=r*g[m,i,j]; r] i= j=i+ Calcule o número de multiplicações realizadas quando se avalia f[m] m matriz de dimensão nl nc, sabendo que a avaliação de g[m,i,j] realiza i j multiplicações. Calcule depois o número total de operações aritméticas realizadas na mesma situação, assumindo que a avaliação de g[m,i,j] não realiza subtrações, mas realiza j somas e 4 divisões. 6

j A função Mathematica GaussElimination recebe uma matriz n n invertível A e uma matriz n b, e, recorrendo ao algoritmo de eliminação de Gauss, devolve uma matriz n n triangular Aux e uma matriz n baux tais que os sistemas de equações AX= b e Aux X = baux são equivalentes X é a matriz n das variáveis. Assume-se ainda que A é tal que os diferentes denominadores envolvidos no algoritmo de eliminação são sempre não nulos. GaussElimination= Function[{A,b}, Aux=A; baux=b; n=length[b]; k=; While[k<=n-, i=k+; While[i<=n, m=aux[[i,k]]/aux[[k,k]]; Aux[[i,k]]=0; j=k+; Aux[[i,j]]=Aux[[i,j]]-m*Aux[[k,j]]; baux[[i]]=baux[[i]]-m*baux[[k]]; k=k+]; {Aux,baux}] Calcule o número de somas e subtracções envolvendo elementos das matrizes 8 que são realizadas quando se avalia GaussElimination[A,b]. Calcule depois o número de multiplicações e divisões na mesma situação. Calcule por fim, o número de operações aritméticas na situação indicada. Conclua que todos estes valores são On 3. k A função Mathematica f recebe uma matriz m de números inteiros e um inteiro x e calcula o número r de elementos m que são menores que x, assumindo que as linhas da matriz estão ordenadas por ordem crescente: f=function[{m,x} {nl,nc}=dimensions[m]; i=; r=0; While[i<=nl, j=; b=false; While[Not[b]&&j<=nc, If[m[[i,j]]<x,r=r+,b=True]; r] Calcule o número de comparações m[[i,j]]<x realizadas quando se avalia a expressão f[m,x], no pior caso e no melhor caso. Conclua que se a matriz m é uma matriz quadrada de dimensão n, então, no pior caso, esse valor é On 2. resposta: No melhor caso, o número de comparações é nl só se faz uma comparação em cada linha; no pior caso, o número de comparações é nl nc em cada linha, fazem-se tantas comparações quantas os número de colunas. 8 Em Mathematica, se m é uma matriz então m[[i,j]] é o elemento que se encontra na linha i e coluna j de m.