On Friday, September 4, 2015 at 5:39:18 PM UTC+2, Aaron Meurer wrote:
>
> On Fri, Sep 4, 2015 at 4:16 AM, Francesco Bonazzi 
> <[email protected] <javascript:>> wrote: 
> > You may assume variables to be positive/negative, for now. 
> > 
> > Sage uses a lot of backends. In case of assume(zeta > 1), I believe it 
> > relies on Maxima, which can handle that kind of assumptions. 
> > 
> > SymPy's aim, on the other hand, is to implement all the algorithms on 
> its 
> > own. 
> > 
> > Assumptions with inequalities look like they are not yet supported, but 
> I 
> > suppose they will be supported by a syntax similar to this one, as soon 
> as 
> > the algorithm handling them will be finished: 
> > 
> > from sympy.assumptions.assume import global_assumptions 
> > global_assumptions.add(Q.positive(zeta - 1)) 
> > 
> > (Note: this code doesn't currently work as expected) 
> > 
> > 
> > On Thursday, 3 September 2015 18:19:38 UTC+2, Carl Sandrock wrote: 
> >> 
> >> I am trying to build a workbook to illustrate the effect of various 
> >> parameters of second order transfer functions. The full workbook is on 
> >> GitHub, but here is a minimal example of the problem: 
> >> 
> >> import sympy 
> >> 
> >> tau, zeta, t, w, K = sympy.symbols('tau, zeta, t, w, K', real=True, 
> >> positive=True) 
> >> s = sympy.Symbol('s') 
> >> 
> >> 
> >> G = K/(tau**2*s**2 + 2*tau*zeta*s + 1) 
> >> 
> >> 
> >> The impulse response of the second order system is simply the inverse 
> >> Laplace of G. However, the nature of the inverse depends on the 
> parameter ζ. 
> >> TAttempting directly to calculate the inverse results in 
> >> 
> >> 
> >> TypeError: cannot determine truth value of 
>
> This error usually indicates a bug in library code. Can you open an 
> issue with a full reproducing example and a full traceback? 
>
> Aaron Meurer 
>
>
I have created an issue: https://github.com/sympy/sympy/issues/9900
 
It appears that this is a regression - the inverse is calculated 
appropriately in 0.7.5

>> 
> >> -zeta/tau - sqrt(zeta + 1)*cos(atan2(0, zeta - 1)/2)*sqrt(Abs(zeta - 
> >> 1))/tau < oo 
> >> 
> >> 
> >> There are three cases of interest, ζ>1, ζ=1 and 0<ζ<1 
> >> 
> >> In Sage, I would be able to use assume(zeta > 1) before calculating the 
> >> inverse to obtain the correct version of the inverse, but I have not 
> found a 
> >> way to impose such constraints in SymPy. So, first question is whether 
> I can 
> >> find nice solutions for these cases to the inverse. 
> >> 
> >> 
> >> Failing that, I want at least to be able to calculate the inverse with 
> >> known values of all the parameters so that I can animate the response 
> using 
> >> IPython notebook widgets. Here I have also been out of luck, as some 
> cases 
> >> result in special values which are not cleanly evaluated to 
> >> 
> >> 
> >> knownbadvalues = [{K: 5.05, tau: 5., zeta: 1.}, 
> >>                   {K: 5.05, tau: 5.05, zeta: 1.05} 
> >>                   ] 
> >> for values in knownbadvalues: 
> >>     print sympy.inverse_laplace_transform(G.subs(values), s, t, 
> >> noconds=True) 
> >> 
> >> (0.202*t - 0.404*EulerGamma - 0.404*polygamma(0, 1.0))*exp(-0.2*t) 
> >> 0.198019801980198*meijerg(((0.728681938243239, 0.855476477598345), ()), 
> >> ((), (-0.271318061756761, -0.144523522401655)), exp(t)) 
> >> 
> >> ts = numpy.linspace(0, tmax, 100) 
> >> 
> >> sympy.lambdify(t, invL(G.subs(values)), ['numpy', 'sympy'])(ts).n() 
> >> 
> >> 
> >> fails with "ValueError: sequence too large; must be smaller than 32" 
> >> Any advice on getting either getting the closed forms or just finding a 
> >> version which can be evaluated cleanly? 
> > 
> > -- 
> > 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] <javascript:>. 
> > To post to this group, send email to [email protected] 
> <javascript:>. 
> > 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/c731194a-56ad-4385-ab6a-b0e5514d74e0%40googlegroups.com.
>  
>
> > 
> > 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/1fbcfa93-c487-42ef-86d3-0a2e9e586503%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to