Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from multiprocessing import Pool
- import numpy as np
- from scipy.optimize import newton
- NUM_OF_IRRAD = 100000
- IL = np.random.rand(NUM_OF_IRRAD) + 6.0
- def f_solarcell(i, v, il, io, rs, rsh, vt):
- vd = v + i * rs
- return il - io * (np.exp(vd / vt) - 1.0) - vd / rsh - i
- def fprime(i, v, il, io, rs, rsh, vt):
- return -io * np.exp((v + i * rs) / vt) * rs / vt - rs / rsh - 1
- def fprime2(i, v, il, io, rs, rsh, vt):
- return -io * np.exp((v + i * rs) / vt) * (rs / vt)**2
- def newton_array(args):
- """test newton with array"""
- return newton(f_solarcell, 7.0, fprime, args)
- def halley_array(args):
- """test newton with array"""
- return newton(f_solarcell, 7.0, fprime, args, fprime2=fprime2)
- def secant_array(args):
- """test newton with array"""
- return newton(f_solarcell, 7.0, args=args)
- def bench_mp_newton():
- p = Pool()
- return p.map(newton_array,
- ((5.25, il, 1e-09, 0.004, 10, 0.27456) for il in IL))
- def bench_mp_halley():
- p = Pool()
- return p.map(halley_array,
- ((5.25, il, 1e-09, 0.004, 10, 0.27456) for il in IL))
- def bench_mp_secant():
- p = Pool()
- return p.map(secant_array,
- ((5.25, il, 1e-09, 0.004, 10, 0.27456) for il in IL))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement