cosine estimate taylor series

1 次查看(过去 30 天)
Elena
Elena 2022-2-22
评论: KSSV 2022-2-22
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

回答(2 个)

KSSV
KSSV 2022-2-22
编辑:KSSV 2022-2-22
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 个评论
KSSV
KSSV 2022-2-22
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.

请先登录,再进行评论。


Sulaymon Eshkabilov
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

产品


版本

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by