<s> """<STR_LIT>""" <EOL> """<STR_LIT>""" <EOL> import numpy as np <EOL> from FiniteDifferences import FiniteDifferences <EOL> class FDExplicitEu ( FiniteDifferences ) : <EOL> def _setup_boundary_conditions_ ( self ) : <EOL> if self . is_call : <EOL> self . grid [ : , - <NUM_LIT:1> ] = np . maximum ( <EOL> self . boundary_conds - self . K , <NUM_LIT:0> ) <EOL> self . grid [ - <NUM_LIT:1> , : - <NUM_LIT:1> ] = ( self . Smax - self . K ) * np . exp ( - self . r * <EOL> self . dt * <EOL> ( self . N - self . j_values ) ) <EOL> else : <EOL> self . grid [ : , - <NUM_LIT:1> ] = np . maximum ( self . K - self . boundary_conds , <NUM_LIT:0> ) <EOL> self . grid [ <NUM_LIT:0> , : - <NUM_LIT:1> ] = ( self . K - self . Smax ) * np . exp ( - self . r * <EOL> self . dt * <EOL> ( self . N - self . j_values ) ) <EOL> def _setup_coefficients_ ( self ) : <EOL> self . a = <NUM_LIT:0.5> * self . dt * ( ( self . sigma ** <NUM_LIT:2> ) * <EOL> ( self . i_values ** <NUM_LIT:2> ) - <EOL> self . r * self . i_values ) <EOL> self . b = <NUM_LIT:1> - self . dt * ( ( self . sigma ** <NUM_LIT:2> ) * <EOL> ( self . i_values ** <NUM_LIT:2> ) + <EOL> self . r ) <EOL> self . c = <NUM_LIT:0.5> * self . dt * ( ( self . sigma ** <NUM_LIT:2> ) * <EOL> ( self . i_values ** <NUM_LIT:2> ) + <EOL> self . r * self . i_values ) <EOL> def _traverse_grid_ ( self ) : <EOL> for j in reversed ( self . j_values ) : <EOL> for i in range ( self . M ) [ <NUM_LIT:2> : ] : <EOL> self . grid [ i , j ] = self . a [ i ] * self . grid [ i - <NUM_LIT:1> , j + <NUM_LIT:1> ] + self . b [ i ] * self . grid [ i , j + <NUM_LIT:1> ] + self . c [ i ] * self . grid [ i + <NUM_LIT:1> , j + <NUM_LIT:1> ] <EOL> if __name__ == "<STR_LIT:__main__>" : <EOL> from FDExplicitEu import FDExplicitEu <EOL> option = FDExplicitEu ( <NUM_LIT:50> , <NUM_LIT:50> , <NUM_LIT:0.1> , <NUM_LIT> / <NUM_LIT> , <NUM_LIT> , <NUM_LIT:100> , <NUM_LIT:100> , <EOL> <NUM_LIT:1000> , False ) <EOL> print option . price ( ) <EOL> option = FDExplicitEu ( <NUM_LIT:50> , <NUM_LIT:50> , <NUM_LIT:0.1> , <NUM_LIT> / <NUM_LIT> , <NUM_LIT> , <NUM_LIT:100> , <NUM_LIT:100> , <EOL> <NUM_LIT:100> , False ) <EOL> print option . price ( ) </s>
