Ask Your Question
1

crash on integral attempt

asked 10 years ago

beeson gravatar image

updated 10 years ago

vdelecroix gravatar image

Sage version 6.5 app on Mac OS 10.95. Following code tries to evaluate the total curvature of a certain space curve. The answer should be given as a complete elliptic integral of the second kind (which I then hoped to numerically evaluate for a range of values of r). But I get "Error executing code in Maxima".

r,t = var('r,t')
assume(r > 0)
X = vector((r * cos(t) - (1/3)* r^3 * cos(3*t), 
             - r * sin(t) - (1/3) *r^3 * sin(3*t),
             r^2 *cos(2*t)))
Xtheta = X.diff(t)
AbsXtheta = abs(Xtheta)
T = (1/AbsXtheta) * Xtheta    ## unit tangent
kappa = abs(T.diff(t))
kappa = kappa.expand().trig_simplify().canonicalize_radical()
print(kappa)
Curvature = integral(kappa,t,0,2*pi)
Preview: (hide)

2 Answers

Sort by » oldest newest most voted
1

answered 10 years ago

tmonteil gravatar image

updated 10 years ago

If you final aim is to numerically evaluate for a range of values of r, you can do the following:

sage: Curvature = lambda r : numerical_integral(kappa(r=r),0,2*pi)

This defines Curvature as a function of r that computes the integral numerically. Then you can do:

sage: Curvature(2)
(16.716333138156095, 4.079736172387635e-10)
sage: Curvature(10)
(18.745787025936806, 2.081200437091458e-13)

The second value is an estimation of the error, if you just want the approximated value of the integral, you can do:

sage: Curvature = lambda r : numerical_integral(kappa(r=r),0,2*pi)[0]
sage: Curvature(2)
16.716333138156095
Preview: (hide)
link
0

answered 10 years ago

nbruin gravatar image

It doesn't help resolving the question immediately, but it seems the problem here is maxima's "abs_integrate" package. In maxima:

(%i1) display2d:false;
(%o1) false
(%i2) integrate(sqrt(16*r^2*sin(t)^4 + 9*r^4 - 16*r^2*sin(t)^2 + 10*r^2 + 1)/(r^2 + 1),t,0,2*%pi);
(%o2) ('integrate(sqrt(16*r^2*sin(t)^4-16*r^2*sin(t)^2+9*r^4+10*r^2+1),t,0,2*%pi)) /(r^2+1)
(%i3) load(abs_integrate);
(%o3) "/usr/local/sage/sage-git/local/share/maxima/5.34.1/share/contrib/integration/abs_integrate.mac"
(%i4) integrate(sqrt(16*r^2*sin(t)^4 + 9*r^4 - 16*r^2*sin(t)^2 + 10*r^2 + 1)/(r^2 + 1),t,0,2*%pi);
sign: argument cannot be imaginary; found %i
#0: intfudu(exp=sqrt(9*r^4*%e^-(4*%i*t)+8*r^2*%e^-(4*%i*t)+%e^-(4*%i*t)+r^2*%e^-(8*%i*t)+r^2)*%e^(2*%i*t),%voi=t (partition.mac line 95)
#1: extra_integrate(q=sqrt(9*r^4*%e^-(4*%i*t)+8*r^2*%e^-(4*%i*t)+%e^-(4*%i*t)+r^2*%e^(8*%i*t)+r^2)*%e^(2*%i*t),x=t)
 -- an error. To debug this try: debugmode(true);

so, it doesn't seem within maxima's current capabilities to express this integral into functions that allow for more efficient approximation methods.

Preview: (hide)
link

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 10 years ago

Seen: 896 times

Last updated: Mar 28 '15