Ciao e buona domenica, ho realizzato questo algoritmo per il calcolo del minimo di una f(x).
Mi domando se è efficiente.
In caso negativo, come potrei migliorarlo?
Cordialmente.codice:long dt; long timeBegin = System.currentTimeMillis(); double min = Double.MAX_VALUE; double result = min; double dominioX = 10; double dx = 0.01, x = dx; double X = Math.random()*dominioX+1; double x0 = 0; String fx = "2*x^4-3*x^(1.25/x)+1"; while(Math.abs(X-x)>dx) { result = ValuteExpression.solveExp(fx, new String[] {"x"}, newdouble[] {x}); if(result<min) { min=result; x0=x; } if(X<x) x-=dx; elsex+=dx; System.out.println(result); } System.out.println("Minimo: " + min + " in: x = "+x0); long timeEnd = System.currentTimeMillis(); dt = timeEnd-timeBegin; System.out.println("Tempo impiegato: " + dt + "ms");