/src/main/java/net/finmath/finitedifference/solvers/FDMThetaMethod.java
final RealMatrix U2 = b.scalarMultiply( 1 < theta).add( b2.scalarMultiply( theta) ) ;
final RealMatrix U2 = b.scalarMultiply ( 1 - theta ) .add ( b2.scalarMultiply ( theta ) ) ;
0.5 * deltaTau * Su * (vu * Su + model.getRiskFreeRate()) * timeReversedUpperBoundary(maximumStockPriceOnGrid, tau[m])); b2.setEntry(0, 0, 0.5 * deltaTau * Sl * (vl2 * Sl - model.getRiskFreeRate()) * timeReversedLowerBoundary(minimumStockPriceOnGrid, tau[m + 1])); b2.setEntry(spaceLength - 1, 0, 0.5 * deltaTau * Su * (vu2 * Su + model.getRiskFreeRate()) * timeReversedUpperBoundary(maximumStockPriceOnGrid, tau[m + 1])); final RealMatrix U1 = (F.scalarMultiply(1 - theta).add(eye.scalarMultiply(theta))).multiply(U); <extra_id_0> U = solver.solve(U1.add(U2)); } final double[] optionPrice = U.getColumn(0); final double[][] stockAndOptionPrice = new double[2][spaceLength]; stockAndOptionPrice[0] = stock; stockAndOptionPrice[1] = optionPrice;