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?

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");

Cordialmente.