cosine estimate taylor series

1 view (last 30 days)
Elena
Elena on 22 Feb 2022
Commented: KSSV on 22 Feb 2022
sos, trying to fix in 30 min, not sure what is going wrong, im getiing 1.6985 e 5 and answer should be 0.6916.
function res = cosineEstimate(ang, k)
ang = '045-00-00'
k = 2
%DMS to degrees
angSplit = strsplit(ang, '-')
firstCell = angSplit(1)
angForm = str2double(firstCell)
%degree to rad
rad = (angForm/180)*pi;
r = 0;
for n = 1:k;
e = 2*n
f= factorial(e)
m = (-1)^(n)
r = r + m*(angForm^e)/f
res = r
end
end

Answers (2)

KSSV
KSSV on 22 Feb 2022
Edited: KSSV on 22 Feb 2022
x = 45*pi/180 ;
n = 10 ;
thesum = 0 ;
for i = 0:n
thesum = thesum+(-1)^i*x^(2*i)/factorial(2*i) ;
end
[cos(x) thesum]
ans = 1×2
0.7071 0.7071
  1 Comment
KSSV
KSSV on 22 Feb 2022
cos(pi/4)
ans = 0.7071
How it is 0.6916? Are you targetting different angle? If not reduce the value of n and see.

Sign in to comment.


Sulaymon Eshkabilov
Sulaymon Eshkabilov on 22 Feb 2022
Here is the corrected code:
ang = '045-00-00';
k = 2;
res = cosineEstimate(ang, k)
res = -0.6169
function res = cosineEstimate(ang, k)
%DMS to degrees
angSplit = strsplit(ang, '-');
firstCell = angSplit(1);
angForm = str2double(firstCell);
%degree to rad
RAD = (angForm/180)*pi;
res= 0;
for n = 1:k
res = res + ((-1) .^ (k-1) .* RAD .^ k) ./ factorial(k);
end
end

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!