Odp: Calculating Derivatives?

Tomek Lisowski Lisowski.Tomasz at sssa.nospam.pl
Mon Mar 27 01:41:48 EST 2000


U¿ytkownik carbon <prodos8 at yahoo.com> w wiadomooci do grup dyskusyjnych
napisa³:260320001926276702%prodos8 at yahoo.com...
> Is there any python source that relates to calculating derivatives?
> I'd like to try writing software that does this (for polynomials), but
> I don't know where to start.  any resources or help would be greatly
> appreciated.  thanks.

At least for polynomials there is an analytic solution:

Let's take a coefficient list coeff, whose elements coeff[n] just stand by
the term x**n

Then the function (assumes, that coeff is not en empty list):

def PolyDerivative(coeff, x):
  clen = len(coeff)
  if clen == 1:
    return 0.0
  else:
    n = clen-1
    sum = n*coeff[n]
    while n>1:
      n = n-1
      sum = sum*x +n*coeff[n]
  return sum

or perhaps better yet:

def DerivativeCoeffs(coeff):
  dcoeff, n = [], 1
  if len(coeff) == 1: return [0]
  else:
    for c in coeff[1:]:
      dcoeff.append(n*c)
      n = n+1
    return dcoeff

which is called once, and then use many times the normal polynomial value
calculation algorithm:

def PolyValue(coeff, x):
  n = len(coeff)-1
  sum = coeff[n]
  if n>0:
    for i in range(n-1,-1,-1):
      sum = sum*x + coeff[i]
  return sum

I have heard about some Polynomial class module, but I don't have it, so
these functions are simply my training in numerical methods :-)

Tomasz Lisowski




More information about the Python-list mailing list