Importjava.util.ArrayList;Importjava.util.Collection;ImportOrg.apache.commons.math3.optim.PointValuePair;ImportOrg.apache.commons.math3.optim.linear.LinearConstraint;ImportOrg.apache.commons.math3.optim.linear.LinearConstraintSet;Importorg.apache.commons.math3.optim.linear.LinearObjectiveFunction;Importorg.apache.commons.math3.optim.linear.Relationship;ImportOrg.apache.commons.math3.optim.linear.SimplexSolver;ImportOrg.apache.commons.math3.optim.nonlinear.scalar.GoalType; Public classMathtest { Public Static voidMain (string[] args) {//describe the optimization problemLinearobjectivefunction f =NewLinearobjectivefunction (New Double[] {3, 5}, 0); Collection<LinearConstraint> constraints =NewArraylist<linearconstraint>(); Constraints.add (NewLinearconstraint (New Double[] {2, 8}, Relationship.leq, 13)); Constraints.add (NewLinearconstraint (New Double[] {5,-1}, Relationship.leq, 11)); Constraints.add (NewLinearconstraint (New Double[] {1, 0}, Relationship.geq, 0)); Constraints.add (NewLinearconstraint (New Double[] {0, 1}, Relationship.geq, 0)); //Create and run SolverPointvaluepair solution =NULL; Solution=NewSimplexsolver (). Optimize (F,Newlinearconstraintset (constraints), goaltype.maximize); if(Solution! =NULL) { //Get Solution DoubleMax =Solution.getvalue (); System.out.println ("Opt:" +max); //Print decision variables for(inti = 0; I < 2; i++) {System.out.print (Solution.getpoint () [i]+ "\ T"); } } }}
Calling Commons.math3 in Java uses the least squares method.
Here is a record of how to use it.
Least squares Java