package symjava.examples; import symjava.matrix.ExprMatrix; import symjava.matrix.ExprVector; import symjava.numeric.NumMatrix; import symjava.numeric.NumVector; import symjava.relational.Eq; import symjava.symbolic.Expr; import symjava.symbolic.Symbol; import symjava.symbolic.utils.JIT; import Jama.Matrix; /** * Find root(s) for an equation or a system of equations * */ public class Newton { public static double[] solve(Expr eq) { return solve(new Eq[]{(Eq)eq}, new double[]{0.1}, new double[0], 30, 1e-8); } public static double[] solve(Expr eq, double init) { return solve(new Eq[]{(Eq)eq}, new double[]{init}, new double[0], 30, 1e-8); } public static double[] solve(Expr eq, double init, int maxIter, double eps) { return solve(new Expr[]{eq}, new double[]{init}, new double[0], maxIter, eps); } public static double[] solve(Expr[] eqs, double[] init, int maxIter, double eps) { return solve(eqs, init, new double[0], maxIter, eps); } public static double[] solve(Expr[] eqs, double[] init) { return solve(eqs, init, new double[0], 30, 1e-8); } public static double[] solve(Expr[] eqs, double[] init, double[] params, int maxIter, double eps) { Eq[] tmp = new Eq[eqs.length]; for(int i=0; i