>
> Can you post here your whole code? Someone maybe figures something out
> to make it faster.
>
I am posting the relevant section of my code below. It seems to bog
down in Poly._decompose().
#!/usr/bin/env python
from sympy import *
h = Symbol("h")
f = Symbol("f")
def kill_high_order_terms(expr, order, x):
low_poly = 0
p = polys.Poly(expr, x)
for i in range(order+1):
low_poly += x**i * p.coeff(i)
return low_poly
def build_xy_taylor(f, order, dx, dy):
s = 0
for n in range(order+1):
for k in range(n+1):
term = binomial(n,k) * dx**(n-k) * dy**k * f[(n-k,k)] /
factorial(n)
term = kill_high_order_terms(term, order, h)
s += term
return s
fx, fxx, fxxx, fxxxx = symbols("f_x f_xx f_xxx f_xxxx")
fy, fyy, fyyy, fyyyy = symbols("f_y f_yy f_yyy f_yyyy")
fxy, fxyy, fxyyy = symbols("f_xy f_xyy f_xyyy")
fxxy, fxxyy, fxxxy = symbols("f_xyy f_xxyy f_xxxy")
pf = {(0,0) : f,
(1,0) : fx,
(2,0) : fxx,
(3,0) : fxxx,
(4,0) : fxxxx,
(1,1) : fxy,
(1,2) : fxyy,
(1,3) : fxyyy,
(2,1) : fxxy,
(2,2) : fxxyy,
(3,1) : fxxxy,
(0,1) : fy,
(0,2) : fyy,
(0,3) : fyyy,
(0,4) : fyyyy}
half = Rational(1,2)
order = 4
k1 = f
print "Starting k2..."
k2 = build_xy_taylor(pf, order, half*h, half*h*k1)
print "Starting k3..."
k3 = build_xy_taylor(pf, order, half*h, half*h*k2)
print "Starting k3 chopping..."
k3 = kill_high_order_terms(k3, order, h)
print "Starting k4..."
k4 = build_xy_taylor(pf, order, h, h*k3)
print "Starting k4 chopping..."
k4 = kill_high_order_terms(k4, order, h)
--
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.