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.
>

-- 
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/CANzav4F6yjJyBnJEvf5yAHcc_NPM862oMh147Y%2B_A66QwsYomw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to