def __init__(self, equations, *args, **kwargsForOpenOptSLEconstructor): if len(args) > 0: FuncDesignerException('incorrect sle definition, too many args are obtained') if type(equations) not in [list, tuple, set]: raise FuncDesignerException('argument of sle constructor should be Python tuple or list of equations or oofuns') self.equations = equations try: from openopt import SLE except: s = "Currently to solve SLEs via FuncDesigner you should have OpenOpt installed; maybe in future the dependence will be ceased" raise FuncDesignerException(s) self.decodeArgs(*args, **kwargsForOpenOptSLEconstructor) if 'iprint' not in kwargsForOpenOptSLEconstructor.keys(): kwargsForOpenOptSLEconstructor['iprint'] = -1 self.p = SLE(self.equations, self.startPoint, **kwargsForOpenOptSLEconstructor) self.p._Prepare() self.A, self.b = self.p.C, self.p.d self.n = self.p.C.shape[0] self.decode = lambda x: self.p._vector2point(x)
__docformat__ = "restructuredtext en" from numpy import * from openopt import SLE N = 1000 C = empty((N,N)) d = 1.5+80*sin(arange(N)) for j in xrange(N): C[j] = 8*sin(4.0+arange(j, N+j)**2) + 15*cos(j) p = SLE(C, d) #r = p.solve('defaultSLEsolver'), or just r = p.solve() print('max residual: %e' % r.ff) #print('solution: %s' % r.xf)