Trabalhos de Programação Não Linear
Ano Lectivo 1999/00
2º Semestre, 4º Ano
Licenciatura em Matemática
Ramo Científico; Especialização em Matemática Aplicada
Os exercícios mencionados são os descritos no livro:
J. Nocedal e S. J. Wright,
Numerical
Optimization, Springer, 1999.
(Errata em PostScript.)
Os exemplos computacionais são testados em Matlab
(marca registada
pela The MathWorks, Inc.).
Os códigos disponíveis em baixo foram escritos pelo professor da disciplina, em Matlab,
e com uma finalidade pedagógica no âmbito da disciplina de Programação
Não Linear.
Disponibilizam-se instruções para instalar os códigos.
- 1º Trabalho
- Resolver os Exercícios 2.1-2.3, 2.6-2.8, 2.12-2.14.
- Ler, compreender e executar os
códigos Rosenbrock escritos em Matlab
para a minimização da função de Rosenbrock (Exercícios 2.1 e 3.1).
Utilizar o comando diary para registar os resultados e os enviar
por correio electrónico para o professor da disciplina.
Comentar os resultados para os dois pontos iniciais dados.
- Ler, compreender e executar os
códigos mqnl escritos em Matlab
para a minimização de uma função de mínimos quadrados não lineares (exemplo 2.1).
Utilizar o comando diary para registar os resultados e os enviar
por correio electrónico para o professor da disciplina.
Comentar os resultados para os dois pontos iniciais dados e para as duas escolhas
do vector de tempos t.
Testar o método de Newton e o método de Newton com procura unidireccional,
ambos implementados no código.
- 2º Trabalho:
- Resolver os Exercícios 3.2 (graficamente) e 3.5-3.8 (não é necessário demonstrar a
desigualdade que aparece no Exercício 3.8).
- Demonstrar, para uma função quadrática estritamente convexa, que o passo de
Newton satisfaz as condições de Wolfe com c1 real em (0,1/2] e
c2 real positivo.
- 3º Trabalho:
- Resolver o seguinte exercício,
um resultado conhecido por lema de perturbação de Banach:
em formato DVI,
em formato PDF,
em formato PS.
- Estudar as Secções 3.4 e 5.1.
- 4º Trabalho:
- Resolver os Exercícios 4.6, 4.8 e 4.9. No caso do Exercício 4.9, basta
escrever o problema de região de confiança em duas variáveis e mostrar, sem efectuar
os cálculos, a forma da sua solução.
- 5º Trabalho:
- Resolver o seguinte exercício correspondente à demonstração dos Teoremas 6.1 e 6.2:
em formato DVI,
em formato PDF,
em formato PS.
- Estudar a Secção 6.3.
- 6º Trabalho:
- Ler, compreender e executar os
códigos e4ponto3 escritos em Matlab
para a minimização da função do Exercício 4.3.
Testar o método de Newton e o método de Newton com procura unidireccional,
ambos implementados no código.
Testar o método BFGS e o método BFGS com procura unidireccional,
ambos implementados no código.
Fazer estes testes para n=10, n=100 e n=200
e explicar os resultados obtidos.
Para n=10, correr o método BFGS e o método BFGS com procura unidireccional,
com e sem a alteração (8.20), e explicar os resultados obtidos.
- Resolver os Exercícios 8.3, 8.4 e 8.9.
- 7º Trabalho:
- Estudar a Secção 12.1 (páginas 315-327).
- Resolver o Exercício 12.4.
Resolver o Exercício 12.18 (considerar apenas as condições necessárias
de primeira ordem).
- 8º Trabalho:
- Resolver os três seguintes exercícios:
em formato DVI,
em formato PDF,
em formato PS.
- Resolver os Exercícios 12.10 e 12.13.
Acabar de resolver o Exercício 12.18 (considerando agora as condições de segunda ordem).
- 9º Trabalho:
- Resolver os Exercícios 17.3, 17.5 e 17.7.
- Ler, compreender e executar os
códigos e17ponto1 escritos em Matlab
para a resolução do programa não linear do Exemplo 17.1 através do
método de penalização quadrática e do
método da função Lagrangeana aumentada.
Correr os dois métodos e comentar os resultados obtidos.
Fazer um novo teste utilizando o sistema linear (17.18) para obter a
direcção de Newton para o método de penalização quadrática e explicar
a diferença nos resultados obtidos.