在 GNU Octave 中绘制 sin(x) 的泰勒多项式
Plotting Taylor polynomial for sin(x) in GNU Octave
我正在尝试在 a=0
处绘制 sin(x)
的泰勒多项式,输入为 m
度,在 GNU Octave 中。 sin(x)
与估计一起绘制。
m = int8(input('Input integer m in [0,10]: '));
if m<0 || m>10
disp('Thanks for playing');
return;
end
x = [-5:0.01:5];
y1 = sin(x);
for n=0:m
y2 = ((-1).^n/factorial(2*n+1))*x.^(2*n+1);
plot(y2);
hold on;
end
plot(y1,'linewidth',4)
ylim([-1.5,1.5]);
以上代码打印出下图:
是什么导致每个估计的拐点都这么少?我试过设置 xlim([-5,5])
但这并没有解决我的问题。
目前您只计算每一项而不求和。
您需要初始化 y2
并更新每次迭代的总和:
y2 = 0 % initialize y2
for n = 0:m
y2 = (-1).^n/factorial(2*n+1) * x.^(2*n+1) + y2; % add to previous y2
plot(y2);
hold on;
end
我正在尝试在 a=0
处绘制 sin(x)
的泰勒多项式,输入为 m
度,在 GNU Octave 中。 sin(x)
与估计一起绘制。
m = int8(input('Input integer m in [0,10]: '));
if m<0 || m>10
disp('Thanks for playing');
return;
end
x = [-5:0.01:5];
y1 = sin(x);
for n=0:m
y2 = ((-1).^n/factorial(2*n+1))*x.^(2*n+1);
plot(y2);
hold on;
end
plot(y1,'linewidth',4)
ylim([-1.5,1.5]);
以上代码打印出下图:
是什么导致每个估计的拐点都这么少?我试过设置 xlim([-5,5])
但这并没有解决我的问题。
目前您只计算每一项而不求和。
您需要初始化 y2
并更新每次迭代的总和:
y2 = 0 % initialize y2
for n = 0:m
y2 = (-1).^n/factorial(2*n+1) * x.^(2*n+1) + y2; % add to previous y2
plot(y2);
hold on;
end