Matlab:创建一个while循环,在达到指定的错误后停止Taylor Series近似?

时间:2017-11-04 22:24:03

标签: matlab

假设我采用taylor系列的e ^ x,对于n个项,以a = 0为中心的某个随机值,直到误差达到指定值。

错误为error=(exp(x)-approx)/(exp(x)),错误应达到的指定值为err=0.01

我设法生成了泰勒系列

x=2;
j=1;
for s=[0:1:10]
approx=approx+(x^s)/(factorial(s))
end

但是,我无法集成一个while循环来扩展该系列,直到语句error>err为false。

我试过

x=2;
j=1;
err=0.01

error=(exp(x)-approx)/(exp(x));
while error>err
for s=[0:1:10]
approx=approx+(x^s)/(factorial(s))
end
end  

x=2;
j=1;
err=0.01;
s=-1

error=(exp(x)-approx)/(exp(x));
while error>err
s=s+1
approx=approx+(x^s)/(factorial(s))
end  

他们都没有给出正确的答案。

如何解决问题。

1 个答案:

答案 0 :(得分:1)

确保您的错误计算在for循环内并初始化术语:

x=2;
j=1;
err=0.01;
s=0;
error = 1e10;
approx = 0;
while error>err
    approx=approx+(x^s)/(factorial(s));
    error=(exp(x)-approx)/(exp(x));
    s=s+1
end