Sorry, for not being clear the first time. x needs to be real. Symbol('x',
real=True) should also work.

On 25 March 2016 at 02:54, SAMPAD SAHA <[email protected]> wrote:

> Thank you Sartaj for the explanation.
>
> But why is it so that only after appling : *x = Symbol('x',
> nonnegative=True) *the above statement works.
>
> If we dont use *x = Symbol('x', nonnegative=True) *it gives :
>
> In [35]: Heaviside(x).rewrite(Piecewise)
> Out[35]: Heaviside(x)
>
>
>
>
>
> Regards
> Sampad Kumar Saha
> Mathematics and Computing
> I.I.T. Kharagpur
>
> On Fri, Mar 25, 2016 at 2:42 AM, Sartaj Singh <[email protected]>
> wrote:
>
>> In [20]: x = Symbol('x', nonnegative=True)
>>
>> In [21]: Heaviside(x).rewrite(Piecewise)
>> Out[21]:
>> ⎧ 1   for x > 0
>> ⎪
>> ⎨1/2  for x = 0
>> ⎪
>> ⎩ 0   otherwise
>>
>>
>>
>>
>> On Friday, 25 March 2016 02:15:34 UTC+5:30, SAMPAD SAHA wrote:
>>>
>>>
>>> We have this *_eval_rewrite_as_Piecewise()  *method defined in
>>> *Heaviside* Class.
>>> But How can we call it or use this implemented functionality from
>>> terminal?
>>>
>>>
>>>
>>> Regards
>>> Sampad Kumar Saha
>>> Mathematics and Computing
>>> I.I.T. Kharagpur
>>>
>>> On Fri, Mar 25, 2016 at 2:00 AM, SAMPAD SAHA <[email protected]> wrote:
>>>
>>> Hi Aaron,
>>>
>>> Pardon Please. I am bit confused. Are you taking about the "*Piecewise
>>> Representation*" that I have mentioned in Phase I ?
>>>
>>>
>>>
>>>
>>>
>>> Regards
>>> Sampad Kumar Saha
>>> Mathematics and Computing
>>> I.I.T. Kharagpur
>>>
>>> On Fri, Mar 25, 2016 at 12:00 AM, Aaron Meurer <[email protected]>
>>> wrote:
>>>
>>> You should call the method _eval_rewrite_Piecewise. Then you can call it
>>> with expr.rewrite(Piecewise). The advantage here is that this will
>>> automatically work even if it's a subexpression of some larger expression.
>>>
>>> Aaron Meurer
>>>
>>> On Fri, Mar 18, 2016 at 9:37 PM, Jason Moore <[email protected]> wrote:
>>>
>>> Simplification means something very specific in SymPy, see the
>>> simplify() function. I think you need to choose a different method name for
>>> converting to piecewise continuous. Maybe: .to_piecewise()?
>>>
>>> You will need to implement some method for dealing with the constants of
>>> integration and boundary conditions. Maybe you should have a look at the
>>> ordinary differential equations package in SymPy to get some ideas about
>>> that.
>>>
>>>
>>> Jason
>>> moorepants.info
>>> +01 530-601-9791
>>>
>>> On Fri, Mar 18, 2016 at 4:04 PM, SAMPAD SAHA <[email protected]> wrote:
>>>
>>> Thank You Jason for the appreciation.
>>>
>>> Yah, that *Simplify  * method would convert  into continous piecewise.
>>> Like this :-
>>>
>>> In    [ ] : F = singularityFunc(x, 0, 1) +  singularityFunc(x, 3, 2)
>>>
>>> In    [ ] : F
>>> Out [ ] :
>>>                     2
>>> <x> + <x - 3>
>>>
>>> In [ ] : F.simplify()
>>> Out [ ] :
>>>
>>> 0                   for x < 0
>>> x                   for 0 <= x < 3
>>> x + (x-3)^2    for x  >= 3
>>>
>>>
>>> As you have suggested earlier, I have solved some examples by hand and
>>> then tried to implement a desired api. From that I came to this conclusion
>>> that if we implement Addition, Substraction, Integration,
>>> Differentiation, Simplify on Singularity Functions then we can successfully
>>> solve out the beam problems.
>>>
>>> But i got doubt while implementing the boundary constants. I mean to say
>>> that sympy dont gives constant of integration while doing indefinite
>>> integration. We can take boundary conditions as input from users that is
>>> not a problem, but we cant use it since there will be no constant of
>>> integration.
>>>
>>>
>>>
>>> Regards
>>> Sampad Kumar Saha
>>> Mathematics and Computing
>>> I.I.T. Kharagpur
>>>
>>> On Sat, Mar 19, 2016 at 4:07 AM, Jason Moore <[email protected]> wrote:
>>>
>>> Sounds like a good start. How about a method to convert to continuous
>>> piecewise?
>>>
>>> Like I said earlier, you should pick some examples that you want the
>>> software to be able to solve and then implement methods and functionality
>>> based on those examples. It's hard to think of all the needed functionality
>>> and API without motivating examples first.
>>>
>>>
>>> Jason
>>> moorepants.info
>>> +01 530-601-9791
>>>
>>> On Fri, Mar 18, 2016 at 10:27 AM, SAMPAD SAHA <[email protected]>
>>> wrote:
>>>
>>> Jason,
>>>
>>> I have thought of implementing Addition, Substraction, Integration,
>>> Differentiation, Simplify on Singularity Functions.
>>>
>>> What are the other functionalities we should implement?
>>>
>>>
>>>
>>>
>>> Regards
>>> Sampad Kumar Saha
>>> Mathematics and Computing
>>> I.I.T. Kharagpur
>>>
>>> On Fri, Mar 18, 2016 at 8:16 PM, SAMPAD SAHA <[email protected]> wrote:
>>>
>>> Yah you are correct. Differentiation of heaviside and diracdelta also
>>> exists.
>>>
>>> It was my mistake. Thanks for rectifying me.
>>>
>>>
>>>
>>>
>>> Regards
>>> Sampad Kumar Saha
>>> Mathematics and Computing
>>> I.I.T. Kharagpur
>>>
>>> On Fri, Mar 18, 2016 at 8:02 PM, Tim Lahey <[email protected]> wrote:
>>>
>>> For differentiation you’re missing a case,
>>>
>>> if n = 0 or n = -1
>>>    return Singularity(x, a, n-1)
>>> else if n < -1
>>>    return error
>>>
>>> In other words, you can still differentiate for the n = 0 and n = -1
>>> cases.
>>>
>>> Cheers,
>>>
>>> Tim.
>>>
>>> > On Mar 18, 2016, at 10:22 AM, SAMPAD SAHA <[email protected]> wrote:
>>> >
>>> > And what about the pseudocode of integration and differentiation i
>>> have posted earlier , is it alright?
>>> >
>>> >
>>> >
>>> >
>>> >
>>> > Regards
>>> > Sampad Kumar Saha
>>> > Mathematics and Computing
>>> > I.I.T. Kharagpur
>>> >
>>> > On Fri, Mar 18, 2016 at 7:51 PM, SAMPAD SAHA <[email protected]>
>>> wrote:
>>> > Thanks Tim,
>>> >
>>> > It is really a nice and effective solution.
>>> >
>>> >
>>> >
>>> >
>>> >
>>> > Regards
>>> > Sampad Kumar Saha
>>> > Mathematics and Computing
>>> > I.I.T. Kharagpur
>>> >
>>> > On Fri, Mar 18, 2016 at 7:46 PM, Tim Lahey <[email protected]> wrote:
>>> > Add the constants when you integrate in your beam class.
>>> >
>>> >
>>> > On 2016-03-18, at 10:12 AM, SAMPAD SAHA <[email protected]> wrote:
>>> >
>>> >> Thanks TIm,
>>> >>
>>> >> Integration and Differentiation are really very straight forward that
>>> is why i am thinking to add diff and integrate method to the Singularity
>>> function class itself.
>>> >>
>>> >> For integrate the pseuesocode will be :-
>>> >>
>>> >> if(n<0)
>>> >>     return SingularityFunction(x , a, n+1)
>>> >> else
>>> >>     return (1/n+1 * SingularityFunction(x , a, n+1))
>>> >>
>>> >> Similarly for differentiation:
>>> >>
>>> >> if (n>0)
>>> >>    return n * SingularityFunction(x , a, n - 1)
>>> >> else
>>> >>    Error message
>>> >>
>>> >>
>>> >> My doubt regarding Boundary condition was actually was that since
>>> sympy don't provide constant of integration while performing indefinite
>>> integration on any expression, how to use the boundary conditions to find
>>> the exact values of constant of integration?
>>> >>
>>> >>
>>> >>
>>> >>
>>> >>
>>> >> Regards
>>> >> Sampad Kumar Saha
>>> >> Mathematics and Computing
>>> >> I.I.T. Kharagpur
>>> >>
>>> >> On Fri, Mar 18, 2016 at 6:09 PM, Tim Lahey <[email protected]> wrote:
>>> >> Hi,
>>> >>
>>> >> Do you know the integration and differentiation rules for singularity
>>> functions? They’re pretty straightforward.
>>> >>
>>> >> As for boundary conditions, the beam will have supports (or a free
>>> end) at each end of the beam and as part of the beam creation each end type
>>> is specified. Each type corresponds to a specific set of conditions on that
>>> end (either at x=0 or x=L). You substitute those conditions in the
>>> appropriate equation and solve for the integration constant as necessary.
>>> All of the conditions should be in any decent mechanics of deformable
>>> solids text book.
>>> >>
>>> >> You’ll want to do sums of forces and moments as well to solve for
>>> reaction forces as well.
>>> >>
>>> >> The only trick is making sure you don’t double count things. If you
>>> have a step function due to a reaction force at the start of the beam and
>>> assume it’s zero at x=0 (effectively the limit at x=0^-) you can get a
>>> non-zero integration constant that can be double counting that reaction
>>> since at x=0^+ that reaction force is non-zero. Note that you can get a
>>> non-zero integration constant (even when including reaction forces in the
>>> loading function) for shear and moment equations if you have non-polynomial
>>> loads (e.g., sine and cosine). You’ll also have to think about the other
>>> end as well. I leave it up to you to reason that out. Make sure you
>>> completely document how you’ve implemented it for the user (and why).
>>> >>
>>> >> Beam coordinate systems must start at the left end and increase to
>>> the right. The definition of the singularity functions require this.
>>> >>
>>> >> I hope this helps.
>>> >>
>>> >> Cheers,
>>> >>
>>> >> Tim.
>>> >>
>>> >> > On Mar 18, 2016, at 8:17 AM, SAMPAD SAHA <[email protected]>
>>> wrote:
>>> >> >
>>> >> > I am also confused about implementing the boundary conditions for
>>> getting the deflection curve.
>>> >> >
>>> >> > Any suggestions on how to implement it.
>>> >> >
>>> >> >
>>> >> >
>>> >> >
>>> >> >
>>> >> > Regards
>>> >> > Sampad Kumar Saha
>>> >> > Mathematics and Computing
>>> >> > I.I.T. Kharagpur
>>> >> >
>>> >> > On Fri, Mar 18, 2016 at 5:36 PM, SAMPAD SAHA <[email protected]>
>>> wrote:
>>> >> > Yah, you are right multiplication of singularity functions are not
>>> needed for solving beam problems. Mathematically, it is also not used that
>>> much. So lets leave this multiplication and powers part.
>>> >> >
>>> >> > I was thinking about the integrate and diff methods. I feel that we
>>> should define instance methods diff and  integrate  in the singularity
>>> function module which would internally use the existing diff and integrate
>>> function for Differentiation and Integration respectively.
>>> >> >
>>> >> > I need your suggestions.
>>> >> >
>>> >> >
>>> >> >
>>> >> >
>>> >> >
>>> >> >
>>> >> >
>>> >> > Regards
>>> >> > Sampad Kumar Saha
>>> >> > Mathematics and Computing
>>> >> > I.I.T. Kharagpur
>>> >> >
>>> >> > On Fri, Mar 18, 2016 at 3:14 AM, Jason Moore <[email protected]>
>>> wrote:
>>> >> > I think you need to override the operators. I'm not sure if
>>> multiplying singularity functions is needed (at least for beam problems),
>>> even if it is mathematically correct, you don't have to implement it. If it
>>> is easy to implement then, sure, do so.
>>> >> >
>>> >> >
>>> >> > Jason
>>> >> > moorepants.info
>>> >> > +01 530-601-9791
>>> >> >
>>> >> > On Thu, Mar 17, 2016 at 1:34 PM, SAMPAD SAHA <[email protected]>
>>> wrote:
>>> >> >
>>> >> > Jason,
>>> >> >
>>> >> > For implementing Additon , Multiplication Do we need to over ride
>>> __mul__ , __add__  these methods inside the class SingularityFunction or we
>>> can just use simplify for getting the results.
>>> >> >
>>> >> > I am really confused.
>>> >> >
>>> >> >
>>> >> >
>>> >> >
>>> >> > Regards
>>> >> > Sampad Kumar Saha
>>> >> > Mathematics and Computing
>>> >> > I.I.T. Kharagpur
>>> >> >
>>> >> > On Fri, Mar 18, 2016 at 1:59 AM, SAMPAD SAHA <[email protected]>
>>> wrote:
>>> >> >
>>> >> > I was thinking about multiplication of two singularity functions.
>>> It is possible and it is mathematically significant. We can implement this
>>> too in Sympy. Similarly with powers.
>>> >> >
>>> >> > I need your suggestions.
>>> >> >
>>> >> >
>>> >> >
>>> >> >
>>> >> >
>>> >> > Regards
>>> >> > Sampad Kumar Saha
>>> >> > Mathematics and Computing
>>> >> > I.I.T. Kharagpur
>>> >> >
>>> >> > On Wed, Mar 16, 2016 at 9:41 PM, SAMPAD SAHA <[email protected]>
>>> wrote:
>>> >> > Yah , You are right . A software having good documentations about
>>> all the functionality is preffered more over the others by the users. I
>>> will be spending a good amount of time in preparing the documentation
>>> citing plenty of examples and tutorials.
>>> >> >
>>> >> > Here is link to my proposal. I have almost added all the things
>>> which we have disscussed. I still need to add the example and many more
>>> "TODO"s are left. I am working on those.
>>> >> >
>>> >> >
>>> >> > Suggestions are welcomed.
>>> >> >
>>> >> >
>>> >> >
>>> >> >
>>> >> >
>>> >> >
>>> >> > Regards
>>> >> > Sampad Kumar Saha
>>> >> > Mathematics and Computing
>>> >> > I.I.T. Kharagpur
>>> >> >
>>> >> > On Wed, Mar 16, 2016 at 6:18 AM, Jason Moore <[email protected]>
>>> wrote:
>>> >> > Looks good. I think you should have plenty of examples in the docs.
>>> People tend to use software more if the docs are top notch. So plenty of
>>> examples and tutorials will really help.
>>> >> >
>>> >> >
>>> >> > Jason
>>> >> > moorepants.info
>>> >> > +01 530-601-9791
>>> >> >
>>> >> > On Tue, Mar 15, 2016 at 5:25 PM, SAMPAD SAHA <[email protected]>
>>> wrote:
>>> >> > You are right. delta_function.py needs to be improved. I will to be
>>> using only DiracDelta and Heaviside for generating almost all the
>>> Singularity Functions.
>>> >> >
>>> >> > I was also thinking to complete this project in four phases:
>>> >> >       • Improving existiing Functions.
>>> >> >       • Creating Singularity Functions module
>>> >> >       • Creating beam Module
>>> >> >       • Documentation
>>> >> >
>>> >> >
>>> >> >
>>> >> >
>>> >> >
>>> >> > Regards
>>> >> > Sampad Kumar Saha
>>> >> > Mathematics and Computing
>>> >> > I.I.T. Kharagpur
>>> >> >
>>> >> > On Wed, Mar 16, 2016 at 5:44 AM, Jason Moore <[email protected]>
>>> wrote:
>>> >> > https://www.python.org/dev/peps/pep-0008/
>>> >> >
>>> >> > I think you will need a pure singularity function module and then
>>> you will need a beam module that utlizes the singularity function module.
>>> You will also likely need to improve the discontinuous functions that are
>>> already in sympy. There are at least three layers to this in my eyes.
>>> >> >
>>> >> >
>>> >> > Jason
>>> >> > moorepants.info
>>> >> > +01 530-601-9791
>>> >> >
>>> >
>>>
>>> ...
>>
>> --
>> 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/1271931a-6b6f-4352-8b21-82621cb06842%40googlegroups.com
>> <https://groups.google.com/d/msgid/sympy/1271931a-6b6f-4352-8b21-82621cb06842%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>


-- 
Regards
*Sartaj Singh*

*Mathematics and Computing*,
Indian Institute of Technology,
Varanasi - 221 005 INDIA

E-mail: [email protected], *[email protected]
<[email protected]>*

-- 
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/CAC%2BH8-FhmMG7C-0mhy2zDJgNSjC9uVcoOu4fwGn4Y%3DJBNJZFEg%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to