根据sinx的taylor展开式计算sinx的函数值(用MATLAB编程实现)

来源:百度知道 编辑:UC知道 时间:2024/05/10 07:34:41

function y=mysin(x)
% 用泰勒展开式求sin(x)
x=mod(x,2*pi); % 限制在[0,2π]之间
e=10^(-15); % 精度
y=0;
last=x; % 记录上一循环累加项
k=1; % 循环变量
while(any(abs(last)>e)) % 当矩阵所有元素的精度都满足要求时退出循环
y = y + last;
last=last .* (-1) .*x.^2 /(k+1) /(k+2); % sinx=x-x^3/3!+x^5/5!+...+(-1)^(k-1)*x^(2k-1)/(2k-1)!
k=k+2; % 这里直接用k代表泰勒公式里的2k,只不过k是每次增加2的。
end

syms x
f=taylor(sin(x),10)%10阶,在x=0处
subs(f,2)%sin2