I want to use atan2 in my equation. When I use atan2 , I get answer NaN. But when I use 'atan' , i didn't get NaN. Why?

clear all
clc
syms alpha1 alpha1_d alpha1_dd
a=3;
b=2;
th1=atan2(a*sin(alpha1),(b*cos(alpha1)));
l1=a*cos(alpha1)*sin(th1)-b*sin(alpha1)*cos(th1);
l1_d=diff(l1,alpha1)*alpha1_d; % fisrt derivative of l1
l1_dd=jacobian(l1_d,[alpha1,alpha1_d])*[alpha1_d;alpha1_dd];% Sencond derivative of l1
% subs alpha1=0.5236, alpha1_d=0.2, alpha1_dd=0.01
L_dd=subs(l1_dd,[alpha1,alpha1_d,alpha1_dd],[0.5236,0.2,0.01]);
% Ans L_dd=NaN
%%%% when I replace atan2 by atan
clear all
clc
syms alpha1 alpha1_d alpha1_dd
a=3;
b=2;
th1=atan(a*sin(alpha1)/(b*cos(alpha1)));
l1=a*cos(alpha1)*sin(th1)-b*sin(alpha1)*cos(th1);
l1_d=diff(l1,alpha1)*alpha1_d;% fisrt derivative of l1
l1_dd=jacobian(l1_d,[alpha1,alpha1_d])*[alpha1_d;alpha1_dd];% Sencond derivative of l1
% subs alpha1=0.5236, alpha1_d=0.2, alpha1_dd=0.01
L_dd=double(subs(l1_dd,[alpha1,alpha1_d,alpha1_dd],[0.5236,0.2,0.01]));
% Ans L_dd=-0.1789

 Akzeptierte Antwort

Hi Vishal,
You can try with "atan2" after making the following modifications
syms alpha1 alpha1_d alpha1_dd real
and add the line
l1=rewrite(l1,'sqrt');
before the line
l1_d=diff(l1,alpha1)*alpha1_d;
I have brought the issue to the notice of our developers. They will investigate the matter futher
Hope this helps

3 Kommentare

Sir, after additing the line 'l1=rewrite(l1,'sqrt')' before the line 'l1_d=diff(l1,alpha1)*alpha1_d', it doesn't work. I am getting the same answer 'NaN'.
Thank you...
Seemed to work for me:
>> syms alpha1 alpha1_d alpha1_dd real
a=3;
b=2;
th1=atan2(a*sin(alpha1),(b*cos(alpha1)));
l1=a*cos(alpha1)*sin(th1)-b*sin(alpha1)*cos(th1);
l1 = rewrite(l1,'sqrt');
l1_d=diff(l1,alpha1)*alpha1_d; % fisrt derivative of l1
l1_dd=jacobian(l1_d,[alpha1,alpha1_d])*[alpha1_d;alpha1_dd];% Sencond derivative of l1
% subs alpha1=0.5236, alpha1_d=0.2, alpha1_dd=0.01
L_dd=subs(l1_dd,[alpha1,alpha1_d,alpha1_dd],[0.5236,0.2,0.01]);
vpa(L_dd)
ans =
-0.17888259249992260757966824848436

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Produkte

Version

R2019b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by