6 de mar de 2018

Visualizando gráficos de funções matemáticas com JavaFX

Já falamos nesse blog sobre os gráficos da API do JavaFX. Nessa postagem iremos compartilhar uma pequena aplicação que permite plotar qualquer função matemática de N, ou seja, um uso prático dos gráficos. A ideia é ter uma classe que permite você definir funções com nome e um lambda que contém a operação matemática. A aplicação irá de 1 até N (um número que você fornece) executando a função e coletando os dados para colocar no gráfico. O código é muito simples, veja:


Com esse código podemos plotar, por exemplo, as funções utilizadas em análise de algoritmos, que são:



Veja abaixo:


Podemos selecionar quais funções serão mostradas no momento e ajustar os valores mínimos:


Para rodar o código você só precisa de Java 8, baixar o arquivo, salvar em PlotarFuncao.java e executar:

$ javac PlotarFuncao.java
$ java PlotarFuncao

Você pode modificar o código e adicionar mais funções. Modifiquei a lista functions para isso:

static List<NamedFunction> functions = Arrays.asList(
NamedFunction.of("1", n -> 1d),
NamedFunction.of("log n", n -> log2(n)), 
NamedFunction.of("n", n -> n),
NamedFunction.of("n log n", n -> n * log2(n)), 
NamedFunction.of("n^2", n -> Math.pow(n, 2)),
NamedFunction.of("n^3", n -> Math.pow(n, 3)),
NamedFunction.of("2^n", n -> Math.pow(2, n))
);

Esse post foi mais um rapidinho para compartilhar essa pequena aplicação que, inclusive, já me foi util :-)