Hello. I have the function binomCoeff defined (from Wikipedia) as:
def binomCoeff ( n, k ) :
if k < 0 or k > n : return 0
if k > n - k : k = n - k # take advantage of symmetry
c = 1
for i in range ( 1, k + 1 ) : # 1 to k
c = c * ( n - ( k - i ) )
c = c // i
return c
but when I try to use it as part of the definition of a symbolic
function, I get a TypeError:
from sympy import *
var('lamb mu')
l, i = symbols('l i',integer=True)
f=symbols('f',cls=Function)
f = lamb * ( 1 + (-mu)**(l+i) ) * binomCoeff ( l + i, i )
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-6-da625a708ef7> in <module>()
----> 1 f = lamb * ( 1 + (-mu)**(l+i) ) * binomCoeff ( l + i, i )
<ipython-input-2-f9467fac1a48> in binomCoeff(n, k)
3 if k > n - k : k = n - k # take advantage of symmetry
4 c = 1
----> 5 for i in range ( 1, k + 1 ) : # 1 to k
6 c = c * ( n - ( k - i ) )
7 c = c // i
TypeError: 'Add' object cannot be interpreted as an integer
Obviously it is trying to evaluate the function binomCoeff at the time
of defining of the function f, and I have to tell it to delay the
evaluation of binomCoeff because it is also a symbolic function, but
even if I do binomCoeff=symbols('binomCoeff',cls=Function) and then do
the def binomCoeff stuff, I still get the same error.
I would most appreciate it if anyone could advise me on what to do. Thanks!
--
Shriramana Sharma
--
You received this message because you are subscribed to the Google Groups
"sympy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sympy?hl=en.