Hi,

This seems interesting and might be a bug. Could you please create an issue
here <https://github.com/sympy/sympy/issues> with your *equations* and
traceback.

Sudhanshu Mishra

On Fri, Apr 3, 2015 at 3:07 AM, G B <[email protected]> wrote:

> It looks like the root cause of this is that the Function doesn't have all
> the assumptions set.  I don't fully understand how assumptions are wired
> in, and I know the assumptions system is in flux, but it looks like None is
> a flag for "exists but not set".  Would it be better to have FactKB inherit
> from defaultdict, rather than dict, so that all unset assumptions return
> None?  That could prevent these types of exceptions...
>
>
> If I do:
>
> Qinit=symbols('Qinit')
> InitCond1.subs(Q(0),Qinit)
>
> then solve succeeds.
>
>
> Looking at Q(0)._assumptions:
> {'commutative': True, 'complex': True}
>
> And Qinit._assumptions:
> {'algebraic': None,
>  'antihermitian': None,
>  'commutative': True,
>  'complex': None,
>  'even': None,
>  'finite': None,
>  'hermitian': None,
>  'imaginary': None,
>  'infinite': None,
>  'integer': None,
>  'irrational': None,
>  'negative': None,
>  'nonnegative': None,
>  'nonpositive': None,
>  'odd': None,
>  'polar': None,
>  'positive': None,
>  'rational': None,
>  'real': None,
>  'zero': None}
>
>
>
>
>
> On Tuesday, March 31, 2015 at 7:44:52 PM UTC-7, G B wrote:
>
>> Hi--
>>
>> I'm trying to solve a system of 2 equations.  They are the result of
>> substituting initial conditions into the solution returned from dsolve are
>> of the form f(0)=expr, where f is a Function, and 0 is zero.
>>
>> I'm calling it with solve([InitCond1,InitCond2],(C1,C2))
>>
>> What is interesting is that it fails the first time, but succeeds when I
>> call it a second time and then succeeds every time after.  I haven't
>> verified the that the solution is accurate.
>>
>> The traceback follows:
>>
>> ---------------------------------------------------------------------------KeyError
>>                                   Traceback (most recent call 
>> last)//anaconda/lib/python3.4/site-packages/sympy/core/assumptions.py in 
>> getit(self)    216         try:--> 217             return 
>> self._assumptions[fact]    218         except KeyError:
>> KeyError: 'zero'
>>
>> During handling of the above exception, another exception occurred:
>> KeyError                                  Traceback (most recent call 
>> last)//anaconda/lib/python3.4/site-packages/sympy/core/assumptions.py in 
>> getit(self)    216         try:--> 217             return 
>> self._assumptions[fact]    218         except KeyError:
>> KeyError: 'zero'
>>
>> During handling of the above exception, another exception occurred:
>> KeyError                                  Traceback (most recent call 
>> last)//anaconda/lib/python3.4/site-packages/sympy/core/assumptions.py in 
>> getit(self)    216         try:--> 217             return 
>> self._assumptions[fact]    218         except KeyError:
>> KeyError: 'real'
>>
>> During handling of the above exception, another exception occurred:
>> TypeError                                 Traceback (most recent call 
>> last)<ipython-input-30-b2993472ce67> in <module>()----> 1 
>> initConds=solve([InitCond1,InitCond2],(C1,C2))      2 initConds
>> //anaconda/lib/python3.4/site-packages/sympy/solvers/solvers.py in solve(f, 
>> *symbols, **flags)    909         solution = _solve(f[0], *symbols, **flags) 
>>    910     else:--> 911         solution = _solve_system(f, symbols, 
>> **flags)    912     913     #
>> //anaconda/lib/python3.4/site-packages/sympy/solvers/solvers.py in 
>> _solve_system(exprs, symbols, **flags)   1446         i, d = _invert(g, 
>> *symbols)   1447         g = d - i-> 1448         g = g.as_numer_denom()[0]  
>>  1449         if manual:   1450             failed.append(g)
>> //anaconda/lib/python3.4/site-packages/sympy/core/add.py in 
>> as_numer_denom(self)    433         denoms, numers = [list(i) for i in 
>> zip(*iter(nd.items()))]    434         n, d = self.func(*[Mul(*(denoms[:i] + 
>> [numers[i]] + denoms[i + 1:]))--> 435                    for i in 
>> range(len(numers))]), Mul(*denoms)    436     437         return 
>> _keep_coeff(ncon, n), _keep_coeff(dcon, d)
>> //anaconda/lib/python3.4/site-packages/sympy/core/add.py in <listcomp>(.0)   
>>  433         denoms, numers = [list(i) for i in zip(*iter(nd.items()))]    
>> 434         n, d = self.func(*[Mul(*(denoms[:i] + [numers[i]] + denoms[i + 
>> 1:]))--> 435                    for i in range(len(numers))]), Mul(*denoms)  
>>   436     437         return _keep_coeff(ncon, n), _keep_coeff(dcon, d)
>> //anaconda/lib/python3.4/site-packages/sympy/core/operations.py in 
>> __new__(cls, *args, **options)     39             return args[0]     40 ---> 
>> 41         c_part, nc_part, order_symbols = cls.flatten(args)     42         
>> is_commutative = not nc_part     43         obj = cls._from_args(c_part + 
>> nc_part, is_commutative)
>> //anaconda/lib/python3.4/site-packages/sympy/core/mul.py in flatten(cls, 
>> seq)    181                 a, b = b, a    182             assert not a is 
>> S.One--> 183             if not a.is_zero and a.is_Rational:    184          
>>        r, b = b.as_coeff_Mul()    185                 if b.is_Add:
>> //anaconda/lib/python3.4/site-packages/sympy/core/assumptions.py in 
>> getit(self)    219             if self._assumptions is 
>> self.default_assumptions:    220                 self._assumptions = 
>> self.default_assumptions.copy()--> 221             return _ask(fact, self)   
>>  222     223     getit.func_name = as_property(fact)
>> //anaconda/lib/python3.4/site-packages/sympy/core/assumptions.py in 
>> _ask(fact, obj)    262         pass    263     else:--> 264         a = 
>> evaluate(obj)
>>
>> ...
>
>  --
> 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 http://groups.google.com/group/sympy.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sympy/3003cfc4-3c43-4cd1-917f-592cff17c7a3%40googlegroups.com
> <https://groups.google.com/d/msgid/sympy/3003cfc4-3c43-4cd1-917f-592cff17c7a3%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>
> For more options, visit https://groups.google.com/d/optout.
>

-- 
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 http://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/CAFW_KCSPQYDH%2BFig-wn3LaP%2BVEd63bjPdOVhO6bY0fBtdjkg5g%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to