MATLAB Answers

Vahid

How does the MATLAB calculate the arctan?

Asked by Vahid
on 9 Feb 2012
Latest activity Edited by Marc
on 7 Oct 2013

Hello all,

I have solved an initial value problem and I have gotten the following equation for that:

theta=(c_0/c_1)- (2/c_1)*atan( exp(-a*c_1*t)*tan((c_0-c_1*theta_0)/2) ) 

where

 c_0=7*pi/6; c_1=0.3; a=0.055; theta_0=0;

and

t=[0:0.01:100];

I do expect the MATLAB returns theta=0 for t=0. In other words what I expect to see is:

theta(1)=0

because for t=0, the first equation can be simplified and as a result we have: theta=theta_0 : independent of c_0,c_1(~=0),and a.

but MATLAB returns something else:

theta(1)=20.9440

I would be grateful if somebody could explain me how I can get what I expect to get?

thanks a lot, Vahid

  0 Comments

Tags

Products

No products are associated with this question.

2 Answers

Answer by Matt Tearle
on 9 Feb 2012
 Accepted answer

All inverse trigonometry functions return to a specific limited range, because trig functions are periodic. Hence, if x = 9*pi/2, then sin(x) will be 1, so asin(sin(x)) will be pi/2, not 9*pi/2. That's what's happening here -- atan returns values between -pi/2 and pi/2 (see doc atan):

(c_0-c_1*theta_0)/2  % ans = 1.8326 > pi/2
tan((c_0-c_1*theta_0)/2)
atan(tan((c_0-c_1*theta_0)/2))
atan(tan((c_0-c_1*theta_0)/2)) + pi

  0 Comments


Answer by Wayne King
on 9 Feb 2012

Why do you think it simplifies like that?

for t=0 and theta_0= 0, your expression evaluates to

(c_0/c_1)- (2/c_1)*atan(tan(c_0/2)) 

which is 20.9440

  3 Comments

Matt Tearle
on 9 Feb 2012

I think the point is that Vahid expects atan(tan(x)) to return x, in which case this simplifies to c0/c1 - (2/c1)*(c0/2) = c0/c1 - c0/c1 = 0.

Vahid
on 9 Feb 2012

Since we have: atan(tan(arg))=arg and because of that I think the answer should be

(c_0/c_1)- (2/c_1)*(c_0/2)
which is equal to 0!

Wayne King
on 9 Feb 2012

Oh, I see :), yes, then what Matt said.


Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply today