with differential global optimization one of the roots is found:

In [10]: differential_evolution(f,((-2,2), (-2,2), (-2,2), (-2,2), (-2,2), 
(-2,2
   ....: ), (-2,2), (-2,2), (-2,2), (-2,2), (-2,2), (-2,2), (-2,2), (-2,2), 
(-2,
   ....: 2), (-2,2),(-2,2), (-2,2),(-2,2), (-2,2), (-2,2)))
Out[10]: 
     fun: 1.8444985066496224e-09
     jac: array([  8.23037829e-06,  -3.25546909e-05,  -1.20137119e-05,
        -3.40010940e-06,  -3.18740293e-05,  -3.19651128e-05,
         1.18561859e-05,  -5.92874802e-05,  -4.87322296e-05,
         1.17806110e-06,   2.53454759e-05,   6.31250916e-06,
        -1.75807827e-06,   1.92369061e-06,   6.78304593e-05,
         1.76279553e-05,   1.43592260e-05,   4.05940515e-05,
        -4.35746205e-05,  -2.54559468e-05,   3.37541106e-05])
 message: 'Maximum number of iterations has been exceeded.'
    nfev: 315667
     nit: 1000
 success: False
       x: array([ 0.62224365,  1.46881062, -1.47343122, -0.85611247,  
0.09195341,
        0.423449  , -0.20369088, -0.76820833, -0.41410515,  0.66288976,
       -1.01724249, -1.97129718,  0.63188554,  0.69403993,  0.91437698,
       -0.2956973 , -0.60242029,  0.74482681,  0.45377653,  0.19310465,
        0.98123914])


In [11]: res=_


In [12]: res.x
Out[12]: 
array([ 0.62224365,  1.46881062, -1.47343122, -0.85611247,  0.09195341,
        0.423449  , -0.20369088, -0.76820833, -0.41410515,  0.66288976,
       -1.01724249, -1.97129718,  0.63188554,  0.69403993,  0.91437698,
       -0.2956973 , -0.60242029,  0.74482681,  0.45377653,  0.19310465,
        0.98123914])


In [13]: equations(res.x)
Out[13]: 
(-2.8165037928157277e-06,
 -9.5617945984893815e-06,
 -1.4916310316442916e-05,
 -4.1531045657239307e-06,
 -5.3874567714773391e-06,
 -1.5715540758742819e-05,
 2.8150894887946087e-06,
 7.9860279372789833e-06,
 7.2868002708448287e-06,
 9.2345080527356238e-06,
 -2.9513712621720423e-05,
 -1.2176049990486604e-05)



On Friday, April 15, 2016 at 12:32:35 AM UTC-5, Denis Akhiyarov wrote:
>
> something like this:
>
> ~ $ ptipython
> Python 3.5.1 |Anaconda 4.0.0 (64-bit)| (default, Dec  7 2015, 11:16:01) 
> Type "copyright", "credits" or "license" for more information.
>
>
> IPython 4.1.2 -- An enhanced Interactive Python.
> ?         -> Introduction and overview of IPython's features.
> %quickref -> Quick reference.
> help      -> Python's own help system.
> object?   -> Details about 'object', use 'object??' for extra details.
>
>
> In [1]: def equations(p):
>    ...:     (a, b, c, d, e, f, 
>    ...:     g, h, i, j, k, l, 
>    ...:     m, n, o, p, q, r, s, t, u)=p
>    ...:     return (1 - a*j*p + d*l*q + g*n*r, 
>    ...:              0 - b*j*p + e*l*q + h*n*r, 
>    ...:              0 - c*j*p + f*l*q + i*n*r, 
>    ...:              0 - a*k*p + d*m*q + g*o*r, 
>    ...:              1 - b*k*p + e*m*q + h*o*r, 
>    ...:              0 - c*k*p + f*m*q + i*o*r, 
>    ...:              0 - a*j*s + d*l*t + g*n*u, 
>    ...:              1 - b*j*s + e*l*t + h*n*u, 
>    ...:              0 - c*j*s + f*l*t + i*n*u, 
>    ...:              0 - a*k*s + d*m*t + g*o*u, 
>    ...:              0 - b*k*s + e*m*t + h*o*u, 
>    ...:              1 - c*k*s + f*m*t + i*o*u)
>
>
> In [2]: from scipy.optimize import fmin
>
>
> In [3]: import numpy as np
>
>
> In [4]: def f(p):return np.abs(np.sum(np.array(equations(p))**2)-0)
>
>
> In [5]: fmin(f,(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
> , 1))
> Warning: Maximum number of function evaluations has been exceeded.
> Out[5]: 
> array([-0.89996132,  3.24921453,  2.05127943, -2.03527783,  1.69544993,
>         1.40438226,  1.92348097,  1.06625688,  0.24227183,  0.08901109,
>         0.09085688,  2.91819752,  0.6803978 ,  4.09234832,  1.90642669,
>         2.95941855,  0.17154083, -0.02346012,  1.44161738, -0.02367669,
>        -0.03451558])
>
>
> In [6]: from scipy.optimize import fmin_l_bfgs_b
>
>
> In [7]: fmin_l_bfgs_b(f,(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
> , 1, 1, 1, 1))
> ---------------------------------------------------------------------------
> IndexError                                Traceback (most recent call last
> )
> <ipython-input-7-b040792986e3> in <module>()
> ----> 1 fmin_l_bfgs_b(f,(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1
> , 1, 1, 1, 1))
>
>
> /home/dta/anaconda3/lib/python3.5/site-packages/scipy/optimize/lbfgsb.py 
> in fmin_l_bfgs_b(func, x0, fprime, args, approx_grad, bounds, m, factr, 
> pgtol, epsilon, iprint, maxfun, maxiter, disp, callback, maxls)
>     191 
>     192     res = _minimize_lbfgsb(fun, x0, args=args, jac=jac, bounds=
> bounds,
> --> 193                            **opts)
>     194     d = {'grad': res['jac'],
>     195          'task': res['message'],
>
>
> /home/dta/anaconda3/lib/python3.5/site-packages/scipy/optimize/lbfgsb.py 
> in _minimize_lbfgsb(fun, x0, args, jac, bounds, disp, maxcor, ftol, gtol, 
> eps, maxfun, maxiter, iprint, callback, maxls, **unknown_options)
>     328                 # minimization routine wants f and g at the 
> current x
>     329                 # Overwrite f and g:
> --> 330                 f, g = func_and_grad(x)
>     331         elif task_str.startswith(b'NEW_X'):
>     332             # new iteration
>
>
> /home/dta/anaconda3/lib/python3.5/site-packages/scipy/optimize/lbfgsb.py 
> in func_and_grad(x)
>     276     else:
>     277         def func_and_grad(x):
> --> 278             f = fun(x, *args)
>     279             g = jac(x, *args)
>     280             return f, g
>
>
> /home/dta/anaconda3/lib/python3.5/site-packages/scipy/optimize/optimize.py 
> in function_wrapper(*wrapper_args)
>     287     def function_wrapper(*wrapper_args):
>     288         ncalls[0] += 1
> --> 289         return function(*(wrapper_args + args))
>     290 
>     291     return ncalls, function_wrapper
>
>
> /home/dta/anaconda3/lib/python3.5/site-packages/scipy/optimize/optimize.py 
> in __call__(self, x, *args)
>      62         self.x = numpy.asarray(x).copy()
>      63         fg = self.fun(x, *args)
> ---> 64         self.jac = fg[1]
>      65         return fg[0]
>      66 
>
>
> IndexError: invalid index to scalar variable.
>
>
> In [8]: from scipy.optimize import fmin_bfgs
>
>
> In [9]: fmin_bfgs(f,(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 
> 1, 1, 1))
> Optimization terminated successfully.
>          Current function value: 2.500000
>          Iterations: 12
>          Function evaluations: 483
>          Gradient evaluations: 21
> Out[9]: 
> array([ 0.99750085,  1.13125434,  0.99750097,  0.84397729,  0.75589231,
>         0.84398644,  0.8439863 ,  0.75589223,  0.84397754,  1.07736067,
>         1.07736081,  0.73335887,  0.73335281,  0.73335274,  0.73335887,
>         1.07736068,  0.73335893,  0.73335289,  1.07736063,  0.73335281,
>         0.73335887])
>
>
>
> On Wednesday, April 13, 2016 at 11:26:48 PM UTC-5, Fmwyso null wrote:
>>
>> Sorry for the vagueness of "solution set", I should have specified that 
>> all I require is a unique numerical solution. 
>>
>> If optimization can provide this optimal solution (with minimized norm2), 
>> that would be great.
>>
>> Otherwise, if Sympy could provide a set of symbolic solutions, I could 
>> construct my own minimized norm2 solution.
>>
>> On Wednesday, April 13, 2016 at 8:31:12 PM UTC-7, Denis Akhiyarov wrote:
>>>
>>> Are you trying to find set of symbolic solutions by elimination or a 
>>> unique numerical solution by optimization, since it is indeterminate? 
>>>
>>>

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/c8e0ad4c-51cb-40a8-9274-7b77c0fd5129%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to