Matlab 正弦函数的泰勒多项式的绘制

Matlab 正弦函数的泰勒多项式的绘制,matlab,taylor-series,Matlab,Taylor Series,我试图在Matlab中对函数的泰勒求和进行编码,我实际计算了McLaurin makingx=0,在代码中以以下符号命名a: 这是我迄今为止试用过的代码: >> a = -100; b = 100; n = 20; vectorx = linspace(a,b,50); vectory = []; sumterms = []; syms x y a; y = sin(a); for i = 1:n t = (diff(y,i-1) / factorial(i-1)) * (x-0)

我试图在Matlab中对函数的泰勒求和进行编码,我实际计算了McLaurin making
x=0
,在代码中以以下符号命名a:

这是我迄今为止试用过的代码:

>> a = -100;
b = 100;
n = 20;
vectorx = linspace(a,b,50);
vectory = [];
sumterms = [];
syms x y a;
y = sin(a);
for i = 1:n
t = (diff(y,i-1) / factorial(i-1)) * (x-0)^(i-1);
sumterms = [sumterms;t];
end;
sumterms
for j = 1:length(vectorx)
x_i = vectorx(j);
aux = 0;
for k = 1:length(sumterms)
sumterm = sumterms(k);
aux = aux + subs(sumterm, [a,x], [0,x_i]);
end
vectory = [vectory;aux];
end
length(vectory)
length(vectorx)
plot (vectorx, vectory)
但我没有得到正确的结果 我把每一句话都看了一遍,看不出有什么不对

这是我对sin(x)的绘图结果:

这是指数(x)的曲线图


Sumterms的结果都出现在图像捕获中,看起来还可以,但我认为错误在评估中。

您的代码工作正常,并绘制了正确的泰勒多项式。您的错误是,您期望一个20次泰勒多项式在区间[-100100]上近似正弦函数。这太乐观了。它给出了[-5,5]的一个很好的近似值,仅此而已。以下是a=-9,b=9的代码输出,其中问题已经出现:


的确,x^n/n!大约为(e*x/n)^n,使用的是的粗略版本。因此,需要| x |你为什么要首先尝试采用500次泰勒多项式??要做到这一点,你会遇到各种各样的精度问题。