On Tue, Jul 10, 2012 at 12:27:59PM +0200, Fabien Lafont wrote: > Hello everyone, > > I try to plot the digamma function of (1/2 + 1/x) but I'm not sure that I'm > plotting the good one. > > I've tried: > > special.polygamma(0, (1/2 + 1/x)) > > and > > special.polygamma(1, (1/2 + 1/x))
You want special.polygamma(0, (1/2 + 1/x)). See http://docs.scipy.org/doc/scipy/reference/generated/scipy.special.polygamma.html The number specifies which derivative of the digamma function you want. Surely you want the 0th derivative? > But It returns zero division error even when x is in ]0,1] I think it blows up at x = 0. What is the type of x in your usecase? Is it an array? If x contains the element 0, you will get a zero division error. You could try plotting the points explicitly: from numpy import linspace from pylab import * x = linspace(0.5, 2, num=100, endpoint=True) y = special.polygamma(0, (1/2 + 1/x)) plot(x, y) show() You can compare output against this: http://www.wolframalpha.com/input/?i=digamma%281%2F2+%2B+1%2Fx%29+between+0.5+and+2 Hope this helps. -- Damon McDougall http://damon-is-a-geek.com B2.39 Mathematics Institute University of Warwick Coventry West Midlands CV4 7AL United Kingdom ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Matplotlib-users mailing list Matplotlib-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/matplotlib-users