def test_add(self): binomial_one = Binomial(.4, 20) binomial_two = Binomial(.4, 60) binomial_sum = binomial_one + binomial_two self.assertEqual(binomial_sum.p, .4) self.assertEqual(binomial_sum.n, 80)
def estimate(): K = float(request.form['k']) T = float(request.form['t']) S0 = float(request.form['s0']) sigma = float(request.form['sigma']) r = float(request.form['r']) q = float(request.form['q']) N = int(request.form['n']) Option = "P" if len(request.form.getlist('option')) != 0: Option = "C" Exercise = "E" if len(request.form.getlist('exercise')) != 0: Exercise = "A" price = round(Binomial(Option, K, T, S0, sigma, r, q, N, Exercise), 2) return render_template("options.html", price=price)
def to_binomial(self): return Binomial(n=1, p=self.p)
from binomial import Binomial from exponential import Exponential from geometric import Geometric from poisson import Poisson from discrete import Discrete from continuous import Continuous user = '' while (user != 'q' and user != 'quit'): problem = input("What type of random variable\n") prompt = "Preform what operation: expected, variance" if problem == 'q': break elif (problem == "binomial"): probability = float(input("What is the probability?\n")) problem = Binomial(probability) prompt += ", probablityofsuccess(n,k)" prompt += ", printTable" elif problem == "exponential": probability = float(input("What is the lambda?\n")) problem = Exponential(1 / 2) elif problem == "poisson": probability = float(input("What is the lambda?\n")) problem = Poisson(probability) prompt += ", probablityofsuccess(n,k)" prompt += ", printTable" elif problem == "discrete": probability = float(input("What is the probability?\n")) problem = Discrete(probability) elif problem == "geometric": probability = float(input("What is the probability?\n"))
def setUp(self): self.binomial = Binomial(0.4, 20) self.binomial.read_data_file('numbers_binomial.txt')
self.short = "Joint" self.inp = [] self.parameters = [] for i, pmf in enumerate(self.pmfs): # TODO add indexes to repeats self.inp += [inp + str(i + 1) for inp in pmf.inp] self.parameters += [ parameter + str(i + 1) for parameter in pmf.parameters ] def distribution(self, *args): if len(args) != self.dim: raise TypeError(f"expected {self.dim} arguments, got {len(args)}") accum = 1 i = 0 for pmf in self.pmfs: accum *= pmf.distribution(*(args[i:i + pmf.dim])) i += pmf.dim return accum if __name__ == "__main__": from binomial import Binomial X = Binomial(10, 0.5) Y = Binomial(10, 0.3) #J = JointPMF(X, Y) J = X * Y J.plot()