User defined function

asked 2021-11-19 17:39:20 +0200

Liang gravatar image

I'm working with beta distribution and its integral. A straightforward integral of beta distribution would return the hypergeometric form of the incomplete beta function. This makes my results very messy and difficult to work with. I have been able to define a function class IncBeta as

def D_t(self, t, z, w, **kwds):
    return t^(z-1)*(1-t)^(w-1)#/beta(z, w)

IncBeta=function('IncBeta', nargs=3, derivative_func=D_t, latex_name='I_x')

Is there a way that I can define an inverse function class of the above and tell Sage the integral of that inverse function leads to IncBeta?

edit retag flag offensive close merge delete



What you seek is a way to define some integrate_func ; as far as I know, there is no easy way to do that.

It should be noted that, even if Maxima "knows" that :

(%i21) diff(beta_incomplete(a, b, z), z);
(%o21) (1-z)^(b-1)*z^(a-1)

it won't use it to compute :

(%i22) integrate(x^(a-1)*(1-x)^(b-1), x);
(%o22) 'integrate((1-x)^(b-1)*x^(a-1),x)

Your problem is not limited to Sage...

Emmanuel Charpentier gravatar imageEmmanuel Charpentier ( 2021-11-19 21:20:38 +0200 )edit