/src/main/java/net/finmath/functions/SABRModel.java
final double[] parameterInitialValues = { beta, rho, nu, displacement };
final double[] parameterInitialValues = { alpha, beta, rho, nu, displacement };
public static double[] sabrCalibrateParameterForImpliedNormalVols(final double underlying, final double maturity, final double[] givenStrikes, final double[] givenVolatilities, final double[] parameterLowerBound, final double[] parameterUpperBound) throws SolverException { final double alpha = 0.006; final double beta = 0.05; final double rho = 0.0; final double nu = 0.075; final double displacement = 0.02; <extra_id_0> final double[] parameterSteps = { 0.5/100.0/100.0, 1.0/100.0, 0.5/100.0, 0.5/100.0, 0.1/100.0 }; return sabrCalibrateParameterForImpliedNormalVols(underlying, maturity, givenStrikes, givenVolatilities, parameterInitialValues, parameterSteps, parameterLowerBound, parameterUpperBound); } public static double[] sabrCalibrateParameterForImpliedNormalVols(final double underlying, final double maturity, final double[] givenStrikes, final double[] givenVolatilities, final double[] parameterInitialValues, final double[] parameterSteps, final double[] parameterLowerBound, final double[] parameterUpperBound) throws SolverException { final double[] targetValues = givenVolatilities; final int maxIteration = 1000;