Integral of 1/cos(x) in CAS
10-09-2016, 08:01 PM
Post: #1
 Nigel (UK) Senior Member Posts: 456 Joined: Dec 2013
Integral of 1/cos(x) in CAS
I have been trying to evaluate the symbolic definite integral
$\int_{l_1}^{l_2}\!{1\over\cos\theta}\,{\rm d}\theta$
using the Prime CAS. Using my default setting of no simplification I get a rather complicated but correct answer. My TI-Nspire CAS (which I only switched on to see what it would do with this same integral, honest!) gives a simpler but equivalent result.

This isn't the problem - I understand that there is no good way to define the "simplest" form of an expression, and that different software will give different results. The issue is that using the Prime to simplify the result of the definite integral causes the calculator to hang. Sometimes I can interrupt this; sometimes I can't, and a reset is needed.

Is this a bug? I am using the latest firmware.

Nigel (UK)
10-10-2016, 05:53 AM (This post was last modified: 10-10-2016 06:38 AM by parisse.)
Post: #2
 parisse Senior Member Posts: 1,243 Joined: Dec 2013
RE: Integral of 1/cos(x) in CAS
I will investigate, note that
a:=int(1/cos(x)); simplify(a)
returns almost immediatly ln((sin(x)^2+2*sin(x)+1)/(sin(x)^2-2*sin(x)+1))/4
If you are computing an integral with symbolic boundaries that are disjoints, then you should compute the antiderivative and rewrite it at this step then make the difference at the boundaries. This is way more efficient than rewriting the difference of the antiderivatives at the boundaries because you have one less variable and an expression that is twice smaller (there is nothing in simplify that checks for the difference of a same expression at two different points).
10-10-2016, 07:50 PM
Post: #3
 Nigel (UK) Senior Member Posts: 456 Joined: Dec 2013
RE: Integral of 1/cos(x) in CAS
(10-10-2016 05:53 AM)parisse Wrote:  I will investigate, note that
a:=int(1/cos(x)); simplify(a)
returns almost immediatly ln((sin(x)^2+2*sin(x)+1)/(sin(x)^2-2*sin(x)+1))/4
If you are computing an integral with symbolic boundaries that are disjoints, then you should compute the antiderivative and rewrite it at this step then make the difference at the boundaries. This is way more efficient than rewriting the difference of the antiderivatives at the boundaries because you have one less variable and an expression that is twice smaller (there is nothing in simplify that checks for the difference of a same expression at two different points).

Thank you; that's a helpful and practical suggestion. As I've said, it is the crash that worries me rather than the exact form of the answer.

Nigel (UK)
10-11-2016, 05:55 AM
Post: #4
 parisse Senior Member Posts: 1,243 Joined: Dec 2013
RE: Integral of 1/cos(x) in CAS
I did not observe a crash but it runs forever. It's a well known problem that it's sometimes difficult to interrupt a CAS computation on the Prime, because the CAS kernel was designed to run on a desktop OS. The best I can do is to commit a workaround each time a user reports a problem, for example here in geogebra SVN
https://dev.geogebra.org/trac/changeset/49639/
10-12-2016, 08:16 AM
Post: #5
 Nigel (UK) Senior Member Posts: 456 Joined: Dec 2013
RE: Integral of 1/cos(x) in CAS
(10-11-2016 05:55 AM)parisse Wrote:  I did not observe a crash but it runs forever. It's a well known problem that it's sometimes difficult to interrupt a CAS computation on the Prime, because the CAS kernel was designed to run on a desktop OS. The best I can do is to commit a workaround each time a user reports a problem, for example here in geogebra SVN
https://dev.geogebra.org/trac/changeset/49639/
Thank you once again for your help. From now on I shall approach symbolic definite integrals as you suggest!

Nigel (UK)
10-12-2016, 02:47 PM
Post: #6
 John P Member Posts: 209 Joined: Dec 2013
RE: Integral of 1/cos(x) in CAS
(10-10-2016 05:53 AM)parisse Wrote:  I will investigate, note that
a:=int(1/cos(x)); simplify(a)
returns almost immediatly ln((sin(x)^2+2*sin(x)+1)/(sin(x)^2-2*sin(x)+1))/4
If you are computing an integral with symbolic boundaries that are disjoints, then you should compute the antiderivative and rewrite it at this step then make the difference at the boundaries. This is way more efficient than rewriting the difference of the antiderivatives at the boundaries because you have one less variable and an expression that is twice smaller (there is nothing in simplify that checks for the difference of a same expression at two different points).

Why the XCAS doesn't use the same approach as you described. Wouldn't that be more efficient and simple?
10-12-2016, 06:44 PM
Post: #7
 parisse Senior Member Posts: 1,243 Joined: Dec 2013
RE: Integral of 1/cos(x) in CAS
The problem is not to compute the integral, it's when the user calls simplify after that. The simplify command has no way to know that the answer is made of 2 independant parts.
 « Next Oldest | Next Newest »

User(s) browsing this thread: 1 Guest(s)