2022-23

Avaliação

A avaliação terá duas componentes : trabalhos práticos e exame final.

Os trabalhos são individuais e diferentes de aluno para aluno. Cada aluno deverá escolher (duma lista) trabalhos cujo valor somado deve estar entre 5 e 15. Os trabalhos devem ser entregues até ao dia do exame de primeira data.

O exame final vai focar sobre a parte teórica, valerá entre 5 e 15 valores, em função da escolha dos trabalhos.

Exemplo : o aluno A escolhe trabalhos no valor total 9, mas o professor considera o resultado insatisfatório e o aluno fica com a nota 5. O aluno B escolhe trabalhos no valor total 13, o professor avalia esses trabalhos em 11. O aluno A faz o exame para 11 valores, o aluno B faz o mesmo exame para 7 valores.

No exame de segunda data, o aluno poderá escolher entre manter a nota dos trabalhos práticos ou fazer exame para 20 valores.

No exame é permitido o uso de calculadoras gráficas. Cada aluno pode ter uma folha A4 com apontamentos, escrita de ambos os lados.

Perguntas modelo para exame : 
contracção : 1 2 3

Trabalhos práticos

Geometria computacional (ver também o projecto maniFEM)

trabalho 1.1 (5v) Dados três vértices A, B e C e um inteiro n, construir uma lista de triângulos (uma malha sobre ABC). Atribuído a Nuno Morgado

trabalho 1.2 (5v) Adaptar o trabalho 1.1 para arestas curvas (fornecidas como listas de segmentos). Atribuído a Nuno Morgado

trabalho 1.3 (5v) Dados quatro vértices A, B, C e D e dois inteiros m e n, construir uma lista de quadriláteros (uma malha sobre ABCD). Atribuído a António Simões

trabalho 1.4 (5v) Adaptar o trabalho 1.3 para arestas curvas (fornecidas como listas de segmentos).

trabalho 1.5 (7v) Dada uma curva fechada (como lista de pontos), preencher o interior com triângulos, mantendo o tamanho dos segmentos quase constante. Atribuído a Joana Conde e Ricardo Sousa

trabalho 1.6 (7v) Generalizar o algoritmo do trabalho 1.5 para domínios com buracos

trabalho 1.7 (5v) Implementar uma função que crie, a partir duma lista de triângulos ou de quadriláteros, uma representação gráfica, usando a biblioteca matplotlib. Atribuído a Maria Silva.

trabalho 1.8 (5v) Implementar uma função que crie, a partir duma lista de triângulos ou de quadriláteros, uma representação gráfica, usando a biblioteca plotly. Atribuído a Nuno Morgado

trabalho 1.9 (6v) Implementar uma função que crie, a partir duma lista de triângulos ou de quadriláteros, um ficheiro msh formato 2. Atribuído a António Simões

Sistemas de equações lineares

Métodos directos

trabalho 2.1 (4v) Implementar o método de eliminação de Gauss para resolver um sistema de equações lineares. A matriz é assumida quadrada e invertível. Atribuído a Sofia Costa

trabalho 2.2 (4v) Acrescentar ao trabalho 2.1 procura de pivôt (troca de linhas). Atribuído a Sofia Costa

trabalho 2.3 (4v) Acrescentar ao trabalho 2.1 procura total de pivôt (troca de linhas e de colunas). Atribuído a Sofia Costa

trabalho 2.4 (4v) Adaptar o trabalho 2.1 para resolver muitos sistemas com a mesma matriz mas com vectores diferentes. Atribuído a Hao Wang

trabalho 2.5 (4v) Adaptar o trabalho 2.2 para resolver muitos sistemas com a mesma matriz mas com vectores diferentes. Atribuído a Hao Wang

trabalho 2.6 (4v) Adaptar o trabalho 2.3 para resolver muitos sistemas com a mesma matriz mas com vectores diferentes. Atribuído a Hao Wang

trabalho 2.7 (5v) Adaptar o trabalho 2.1 para matrizes com estrutura de banda. Atribuído a Joana Conde e Ricardo Sousa

trabalho 2.8 (6v) Adaptar o trabalho 2.4 para matrizes com estrutura de banda. Atribuído a Célia Simão

Métodos iterativos

trabalho 3.1 (4v) Implementar o método de Gauss-Seidel. Atribuído a Gabriela Martins

trabalho 3.2 (4v) Implementar o método de Gauss-Seidel com troca de linhas. Atribuído a Gabriela Martins

trabalho 3.3 (4v) Implementar o método de Gauss-Seidel com troca de linhas e de colunas. Atribuído a Gabriela Martins

trabalho 3.4 (3v) Implementar o método de Gauss-Seidel com relaxação. Atribuído a Ana Coutinho

trabalho 3.5 (4v) Adaptar o trabalho 3.1 para matrizes com estrutura de banda. Atribuído a Ana Coutinho

trabalho 3.6 (4v) Adaptar o trabalho 3.4 para matrizes com estrutura de banda. Atribuído a Ana Coutinho

trabalho 3.7 (7v) Dada uma matriz quadrada invertível A, produzir um conjunto de vectores "teste" v1, v2, ..., calcular w1, w2, ... tais que Aw1 = v1, Aw2 = v2, ... e reconstruir parcialmente a inversa da matriz A. Atribuído a Célia Simão

Valores e vectores próprios

trabalho 4.1 (6v) Implementar o método da potência. Atribuído a Pablo Manrique

trabalho 4.2 (3v) Acrescentar ao trabalho 4.1 uma translação de modo a obter o valor próprio no outro extremo do espectro. Atribuído a Pablo Manrique

trabalho 4.3 (5v) Implementar o método da potência inversa, resolvendo a cada passo o sistema linear através de eliminação de Gauss. Tendo em vista que o processo será repetido muitas vezes, deve ser usada a técnica descrita no trabalho 2.4. Atribuído a Pablo Manrique

trabalho 4.4 (5v) Implementar o método da potência inversa, resolvendo a cada passo o sistema linear através de eliminação de Gauss com troca de linhas. Tendo em vista que o processo será repetido muitas vezes, deve ser usada a técnica descrita no trabalho 2.5.

trabalho 4.5 (5v) Implementar o método da potência inversa, resolvendo a cada passo o sistema linear através de eliminação de Gauss com troca de linhas e de colunas. Tendo em vista que o processo será repetido muitas vezes, deve ser usada a técnica descrita no trabalho 2.6.

trabalho 4.6 (5v) Implementar o método da potência inversa, resolvendo a cada passo o sistema linear usando o método de Gauss-Seidel. Aproveitar o vector da iteração anterior para inicializar o algoritmo de Gauss-Seidel. Atribuído a Tiago Magrinho

trabalho 4.7 (5v) Implementar o método da potência inversa, resolvendo a cada passo o sistema linear usando o método de Gauss-Seidel com relaxação. Aproveitar o vector da iteração anterior para inicializar o algoritmo de Gauss-Seidel com relaxação. Atribuído a Tiago Magrinho

trabalho 4.8 (6v) Implementar o método da potência inversa, reconstruindo gradualmente a matriz inversa. Atribuído a José Rato

trabalho 4.9 (5v) Acrescentar ao trabalho 4.3 uma translação de modo a obter um valor próprio numa vizinhança fornecida pelo utilizador.

trabalho 4.10 (5v) Acrescentar ao trabalho 4.4 uma translação de modo a obter um valor próprio numa vizinhança fornecida pelo utilizador.

trabalho 4.11 (5v) Acrescentar ao trabalho 4.5 uma translação de modo a obter um valor próprio numa vizinhança fornecida pelo utilizador.

trabalho 4.12 (5v) Acrescentar ao trabalho 4.6 uma translação de modo a obter um valor próprio numa vizinhança fornecida pelo utilizador.

trabalho 4.13 (5v) Acrescentar ao trabalho 4.7 uma translação de modo a obter um valor próprio numa vizinhança fornecida pelo utilizador.

trabalho 4.14 (6v) Acrescentar ao trabalho 4.8 uma translação de modo a obter um valor próprio numa vizinhança fornecida pelo utilizador.

trabalho 4.15 (5v) Considere uma matriz simétrica e um vector próprio v previamente conhecido. Escolhendo, no método da potência, um vector inicial ortogonal a v, procurar o valor próprio dominante seguinte.

trabalho 4.16 (5v) Considere uma matriz simétrica e um vector próprio v previamente conhecido. Acrescentando, em cada passo do método da potência, uma projecção sobre o espaço ortogonal a v, procurar o valor próprio dominante seguinte.

Equações não lineares numa incógnita

trabalho 5.1 (4v) Implemente o método da bissecção. Atribuído a Inês Albino

trabalho 5.2 (4v) Implemente o método do ponto fixo. Atribuído a Pedro Ramos

trabalho 5.3 (4v) Implemente o método de Newton-Raphson. Atribuído a Hugo Pereira

trabalho 5.4 (4v) Implemente o método da secante. Atribuído a Manuel Teixeira

trabalho 5.5 (4v) Implemente o método da falsa posição. Atribuído a Solange Ribeiro

trabalho 5.6 (4v) Implemente o método que alterna "falsa posição" com "bissecção". Atribuído a Solange Ribeiro

Optimização numa variável

trabalho 6.1 (4v) Implemente o método do gradiente. Atribuído a Pedro Ramos

trabalho 6.2 (4v) Implemente o método da bissecção para procurar pontos extremos duma função duma variável. Atribuído a Maria Silva

trabalho 6.3 (4v) Implemente o método do ponto fixo para procurar pontos extremos duma função duma variável. Atribuído a António Simões

trabalho 6.4 (4v) Implemente o método de Newton-Raphson para procurar pontos extremos duma função duma variável.  Atribuído a Hugo Pereira

trabalho 6.5 (4v) Implemente o método da secante para procurar pontos extremos duma função duma variável. Atribuído a Miguel Roque

trabalho 6.6 (4v) Implemente o método da falsa posição para procurar pontos extremos duma função duma variável. Atribuído a Miguel Roque

trabalho 6.7 (4v) Implemente o método que alterna "falsa posição" com "bissecção", para procurar pontos extremos duma função duma variável. Atribuído a Miguel Roque

Resolução de sistemas de equações não lineares

trabalho 7.1 (4v) Implemente o método do ponto fixo. Atribuído a Leonor Canuto

trabalho 7.2 (5v) Implemente o método de Newton. Em cada passo deverá resolver um sistema de equações lineares através de eliminação de Gauss. Atribuído a Pedro Ramos

trabalho 7.3 (5v) Implemente o método de Newton. Em cada passo deverá resolver um sistema de equações lineares através de eliminação de Gauss com troca de linhas. Atribuído a Inês Albino

trabalho 7.4 (5v) Implemente o método de Newton. Em cada passo deverá resolver um sistema de equações lineares através de eliminação de Gauss com troca de linhas e de colunas. Atribuído a Manuel Teixeira

trabalho 7.5 (5v) Implemente o método de Newton. Em cada passo deverá resolver um sistema de equações lineares através do método de Gauss-Seidel. Deve aproveitar informação do passo anterior para inicializar o método de Gauss-Seidel. Atribuído a Tiago Magrinho

trabalho 7.6 (5v) Implemente o método de Newton. Em cada passo deverá resolver um sistema de equações lineares através do método de Gauss-Seidel com relaxação. Deve aproveitar informação do passo anterior para inicializar o método de Gauss-Seidel com relaxação

trabalho 7.7 (8v) Implemente o método BFGS (reconstrução da matriz Jacobiana). Atribuído a Joana Conde e Ricardo Sousa

trabalho 7.8 (8v) Implemente o método BFGS (reconstrução da inversa da matriz Jacobiana). Atribuído a Joana Conde e Ricardo Sousa

Optimização em várias variáveis

trabalho 8.1 (4v) Implemente o método do gradiente com passo fixo. Atribuído a Manuel Teixeira

trabalho 8.2 (4v) Implemente o método de Newton para procurar pontos de extremo. Atribuído a Leonor Canuto

trabalho 8.3 (4v) Implemente o método BFGS (reconstrução da matriz Jacobiana) para procurar pontos de extremo

trabalho 8.4 (4v) Implemente o método BFGS (reconstrução da inversa da matriz Jacobiana) para procurar pontos de extremo

trabalho 8.5 (4v) Implemente o método da relaxação. Para a procura linear, use o método do gradiente com passo fixo. Atribuído a Solange Ribeiro

trabalho 8.6 (4v) Implemente o método da relaxação. Para a procura linear, use o método de Newton. Atribuído a Solange Ribeiro

trabalho 8.7 (4v) Implemente o método do gradiente com procura linear. Para a procura linear, use o método do gradiente com passo fixo. Atribuído a José Rato

trabalho 8.8 (4v) Implemente o método do gradiente com procura linear. Para a procura linear, use o método de Newton. Atribuído a José Rato

trabalho 8.9 (6v) Implemente o método dos gradientes conjugados. Atribuído a Inês Albino

Optimização com constrangimentos

trabalho 9.1 (4v) Implemente o método da bissecção para minimizar uma função sujeita a constrangimentos a <= x <= b. Atribuído a Maria Silva

trabalho 9.2 (3v) Implemente o método do gradiente com passo fixo para minimizar uma função sujeita a constrangimentos a <= x <= b. Atribuído a Hugo Pereira

trabalho 9.3 (4v) Implemente o método de Newton para minimizar uma função sujeita a constrangimentos a <= x <= b. Atribuído a Hugo Pereira

trabalho 9.4 (4v) Implemente o método da relaxação para minimizar uma função sujeita a constrangimentos do tipo caixa. Para a parte da procura linear, use o método da bissecção  (trabalho 9.1)

trabalho 9.5 (4v) Implemente o método da relaxação para minimizar uma função sujeita a constrangimentos do tipo caixa. Para a parte da procura linear, use o método do gradiente com passo fixo  (trabalho 9.2)

trabalho 9.6 (4v) Implemente o método da relaxação para minimizar uma função sujeita a constrangimentos do tipo caixa. Para a parte da procura linear, use o método de Newton (trabalho 9.3)

trabalho 9.7 (4v) Implemente o método da relaxação para minimizar uma função sujeita a constrangimento numa bola. Para a parte da procura linear, use o método da bissecção  (trabalho 9.1)

trabalho 9.8 (4v) Implemente o método da relaxação para minimizar uma função sujeita a constrangimento numa bola. Para a parte da procura linear, use o método do gradiente com passo fixo  (trabalho 9.2)

trabalho 9.9 (4v) Implemente o método da relaxação para minimizar uma função sujeita a constrangimento numa bola. Para a parte da procura linear, use o método de Newton (trabalho 9.3)

trabalho 9.10 (4v) Implemente o método da relaxação para minimizar uma função sujeita a constrangimento num semi-espaço. Para a parte da procura linear, use o método da bissecção  (trabalho 9.1)

trabalho 9.11 (4v) Implemente o método da relaxação para minimizar uma função sujeita a constrangimento num semi-espaço. Para a parte da procura linear, use o método do gradiente com passo fixo  (trabalho 9.2)

trabalho 9.12 (4v) Implemente o método da relaxação para minimizar uma função sujeita a constrangimento num semi-espaço. Para a parte da procura linear, use o método de Newton (trabalho 9.3)

trabalho 9.13 (4v) Implemente o método do gradiente com procura linear para minimizar uma função sujeita a constrangimentos do tipo caixa. Para a parte da procura linear, use o método da bissecção  (trabalho 9.1)

trabalho 9.14 (4v) Implemente o método do gradiente com procura linear para minimizar uma função sujeita a constrangimentos do tipo caixa. Para a parte da procura linear, use o método do gradiente com passo fixo  (trabalho 9.2)

trabalho 9.15 (4v) Implemente o método do gradiente com procura linear para minimizar uma função sujeita a constrangimentos do tipo caixa. Para a parte da procura linear, use o método de Newton (trabalho 9.3)

trabalho 9.16 (4v) Implemente o método do gradiente com procura linear para minimizar uma função sujeita a constrangimento numa bola. Para a parte da procura linear, use o método da bissecção  (trabalho 9.1)

trabalho 9.17 (4v) Implemente o método do gradiente com procura linear para minimizar uma função sujeita a constrangimento numa bola. Para a parte da procura linear, use o método do gradiente com passo fixo  (trabalho 9.2)

trabalho 9.18 (4v) Implemente o método do gradiente com procura linear para minimizar uma função sujeita a constrangimento numa bola. Para a parte da procura linear, use o método de Newton (trabalho 9.3)

trabalho 9.19 (4v) Implemente o método do gradiente com procura linear para minimizar uma função sujeita a constrangimento num semi-espaço. Para a parte da procura linear, use o método da bissecção  (trabalho 9.1)

trabalho 9.20 (4v) Implemente o método do gradiente com procura linear para minimizar uma função sujeita a constrangimento num semi-espaço. Para a parte da procura linear, use o método do gradiente com passo fixo  (trabalho 9.2)

trabalho 9.21 (4v) Implemente o método do gradiente com procura linear para minimizar uma função sujeita a constrangimento num semi-espaço. Para a parte da procura linear, use o método de Newton (trabalho 9.3)

trabalho 9.22 (4v) Implemente o método do gradiente com passo fixo e projecção para minimizar uma função sujeita a constrangimento do tipo caixa

trabalho 9.23 (4v) Implemente o método do gradiente com passo fixo e projecção para minimizar uma função sujeita a constrangimento numa bola

trabalho 9.24 (4v) Implemente o método do gradiente com passo fixo e projecção para minimizar uma função sujeita a constrangimento num plano

trabalho 9.25 (4v) Implemente o método do gradiente com passo fixo e projecção para minimizar uma função sujeita a constrangimento numa casca esférica

trabalho 9.26 (8v) Implemente o método do simplex para minimizar uma função linear com constrangimentos lineares. Atribuído a Romain Pereira