Programa que encontra as raízes de qualquer função dada por meio de métodos numéricos.
Dependências:
- python
- numpy
- sympy
Instalar pacotes python
pip install -r requirements.txt
Para executar o programa:
python main.py
O programa foi implementado usando uma arquitetura orientada a objetos e usando conceitos de desenvolvimento orientado a testes. A implementação dos métodos está na pasta "zero_da_funcao/metodos/". Cada método é uma classe que herda da classe pai "MetodoEncontrarRaiz". Os métodos de aproximação possuem um nome, um método para calcular a condição, um método para calcular a raíz e alguns parâmetros extras (qualquer coisa além da função e da tolerância) que o método de aproximação pode vir a utilizar.
Dessa forma, a implementação ficou declarativa, de forma que, digamos que o software seja utilizado por mais pessoas, elas possam adicionar novos métodos de aproximação apenas criando um arquivo novo na pasta "zero_da_funcao/metodos/" e implementando uma classe que herde de "MetodoEncontrarRaiz". Para implementar essa classe, basta declarar o atributo "nome", e implementar o método _calcular_raiz. Caso necessário, pode-se sobrescrever o método "condicoes", para definir sob quais funções o método é válido, e pode-se definir o atributo "parametros_extra" caso a função necessite de mais parâmetros (como o método da bisseção que necessita também de um intervalo inicial).
Infelizmente, também é necessário adicionar na lista de métodos salvos, no arquivo ui.py, o seu novo método "instalado", o sistema não reconhece novos métodos sozinho.
link do github do projeto: https://github.com/Sevenings/Zero-Da-Funcao.git
- Inspiração do nome "Jornada ao Zero da função": https://www.youtube.com/watch?v=qIZL5qeEKj0
- Original: https://www.youtube.com/watch?v=v_oZ9Pe0yRg
Implementar:
- processar.py
- parsing.py
- Função de Parsing
- ui.py
- Fazer o parsing
- metodos/
- bissecao.py
- método
- condições
- newton.py
- método
- condições
- ponto_fixo.py
- método
- condições
- secante.py
- método
- condições
- bissecao.py