public double exactSolution(double asset, double time) { setup(asset, time); return -asset * Math.exp(-dividend * (maturityTime - time)) * SpecialFunctions.normalCdf(-d[0]) + strike * Math.exp(-interestRate * (maturityTime - time)) * SpecialFunctions.normalCdf(-d[1]); }
public double exactDelta(double asset, double time) { setup(asset, time); return Math.exp(-dividend * dt) * (SpecialFunctions.normalCdf(d[0]) - 1); }
public double exactTheta(double asset, double time) { setup(asset, time); return -volatility * asset * Math.exp(-dividend * dt) * nPrime(-d[0]) / (2 * Math.sqrt(dt)) - dividend * asset * SpecialFunctions.normalCdf(-d[0]) * Math.exp(-dividend * dt) + interestRate * strike * Math.exp(-interestRate * dt) * SpecialFunctions.normalCdf(-d[1]); }