Este repositório contém implementações simples de gradiente (descida e subida) para três funções: f, g e h. É utilizado para o exercício APS2.
Arquivos principais
-
functions.py— define as derivadas parciais e gradientes:- f:
dfx,dfy— derivadas parciais da função f;f_grad(x,y)retorna (dfx, dfy). - g:
dgx,dgy— derivadas parciais da função g;g_grad(x,y)retorna (dgx, dgy). - h:
dhx,dhy— derivadas parciais da função h;h_grad(x,y)retorna (dhx, dhy).
- f:
-
main.py— implementa os algoritmos de gradient descent e gradient ascent. É chamado pela linha de comando para minimizar (f ou g) ou maximizar (h).
Como executar
- Executar minimização de
f(descida de gradiente):
python3 main.py f <x0> <y0> <learning_rate> <precision>Exemplo:
python3 main.py f 0 0 0.1 1e-6- Executar minimização de
g(descida de gradiente):
python3 main.py g 0 0 0.01 1e-6- Executar maximização de
h(subida de gradiente):
python3 main.py h 0 0 0.01 1e-6Opção debug: se adicionada como último argumento e definida como true, imprime iterações.
Exemplo com debug:
python3 main.py f 0 0 0.1 1e-6 trueReferência do exercício
- Veja o relatório da atividade com mais detalhes:
APS2.md(ouAPS2.pdf). Ele contém enunciado, requisitos e informações adicionais sobre as tarefas.
Notas
- O módulo
functions.pyusamath.exppara exponenciais. main.pydetecta automaticamente se deve usar descendente (f e g) ou ascendente (h).