Hi Ondrej, thank you for your response.

ore_algebra in Sage has implemented `annihilator_of_composition` which 
finds annihilator of a holonomic function after application with an 
algebraic function but doesn't support initial conditions.

Do we want to get initial conditions of the resulting function when we will 
implement this operation or just the annihilator?

For instance, we have a holonomic function `sin(x)` defined by diff. eq. 
and we want to apply this with the function  z(x) = x**2 - 4

f(x) = holonomic(diff(diff(f)) + f, f(0) = 0, f'(0) = 1, x)
g(x) = f(z(x)) = f(x**2 - 4)
g'(x) = f'(z(x))*z'(x)                                            -(1)

Now, as we have value of f(x) at the point 0, we find the point where z(x) 
is 0 which is x = 2 or -2, if we take x=2 we have g(2) = 0, for finding 
g'(2) we put x = 2 in equation(1) so g'(2) = (1)*(2*2) = 4, and the 
annihilator of g will be obtained by the algorithm which we will be 
implemented.

Is this method decent enough for implementing, if we need the initial 
conditions?

I had some other problems, if you can please take a look at my previous 
post in this same thread that'd be very helpful.

I thought about the API and liked the way gfun does it in maple. I thought 
of something like this, initial condition will be given as a list [ f(x0), 
f'(x0), ... ]. 

In []: holonomic(diffeq, x, initial_condition, x0 = 0)
Out[]:holonomic(diffeq, x, f(x0) = f1, .... )
 
Is it possible to provide initial conditions like this way:

In []:holonomic(diffeq, x, f(x0) = f1, f(x1) = f2 .... )
Out[]:holonomic(diffeq, x, f(x0) = f1, .... )

where we can provide initial conditions as f(x0) = x1. We can also provide 
annihilators instead of differential equation as in sage. Which way will be 
more preferred for it's use in SymPy?

On Monday, March 7, 2016 at 9:49:09 PM UTC+5:30, Ondřej Čertík wrote:

> On Sun, Mar 6, 2016 at 12:42 AM, shubham tibra <[email protected] 
> <javascript:>> wrote: 
> > Regarding the initial conditions in multiplication and addition when 
> they 
> > are not at the same point: 
> > 
> > I think the best is(already discussed at ideas page) first to check if 
> both 
> > the given holonomic functions are elementary function and calculate the 
> > initial conditions at a same point symbolically, where both the 
> functions 
> > doesn't have a pole. So for the resulting function the initial condition 
> > would be addition/multiplication of calculated conditions at that point. 
> > 
> > In case when one or both can't be converted to elementary we will 
> calculate 
> > numerical value at a point and add/multiply them. 
>
> Right. The numerical initial condition is the last resort, as at that 
> point, we can't really convert it back to a symbolic form. But I think 
> it's still useful, since if you know the holonomic function, but not 
> the initial condition (or only numerically), this still restricts what 
> the function looks like. For example the differential equation f''(x) 
> + f(x) = 0 always has a solution of the form sin(a*x+b), so you know 
> that the function is a sinusoid, you just don't know the exact 
> parameters "a" and "b" without the initial condition, or only know 
> them numerically, so you can't convert it to, say, sin(x), but the 
> result is still useful. 
>
> > 
> > How are we gonna do this in INTEGRATION and DIFFERENTIATION? 
> > 
> > In application with a algebraic function, let's say we have initial 
> > condition at x0, then if it's possible we can get the point where the 
> > algebraic function is equals to x0, let it be x1 ,and now we have the 
> > initial condition of resulting function at the point x1. For derivatives 
> we 
> > will multiply the given initial condition with the corresponding 
> derivative 
> > of algebraic function at x1. Is this method suitable enough? 
>
> I don't understand your question. Can you formulate it on a particular 
> example? 
>
> Ondrej 
>
> > 
> > I'd appreciate to know your views on it. 
> > 
> > Thanks 
> > 
> > -- 
> > 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 https://groups.google.com/group/sympy. 
> > To view this discussion on the web visit 
> > 
> https://groups.google.com/d/msgid/sympy/21859ab1-f780-4d91-9e22-7f7303a47ad4%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 https://groups.google.com/group/sympy.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/9e3ec6ba-2e02-448e-b3c0-784fb2cc408e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to