MATLAB与高等数学 |
您所在的位置:网站首页 › 多项式展开公式计算例题 › MATLAB与高等数学 |
函数的泰勒展开
基本知识
假如我们要得到sin(x)的泰勒展开式,输入以下命令: >> syms x; >> s = taylor(sin(x))结果: s = x^5/120 - x^3/6 + x虽然看似MATLAB只返回了3项,但实则返回了5项,因为MATLAB只返回非零项。 现在我们绘制图像: 要让我们展开多项式的图像更加接近sin(x),我们必须要让MATLAB返回更多项,假设我们要得到m项展开式,使用order命令,后面跟上想要展开的阶数: s = taylor(sin(x),'order',m);我们试一下前20项: syms x; s = taylor(sin(x),'order',10) s = - x^19/121645100408832000 + x^17/355687428096000 - x^15/1307674368000 + x^13/6227020800 - x^11/39916800 + x^9/362880 - x^7/5040 + x^5/120 - x^3/6 + x图像: 这次的图像比上次光滑。 还有一个问题是我们的展开式的阶数是从高到低,这不是我们想要的,我们要让它从低到高,可以使用sympref命令: sympref('PolynomialDisplayStyle','ascend'); s = x - x^3/6 + x^5/120 - x^7/5040 + x^9/362880 - x^11/39916800 + x^13/6227020800 - x^15/1307674368000 + x^17/355687428096000 - x^19/121645100408832000 在何处展开如我们所愿,阶数从低到高了。 我们知道,泰勒公式可以在任意一点展开,在零点处展开我们称为麦克劳林公式。 所以,我们还可以使用命令'ExpansionPoint'在指定点展开 s = taylor(sin(x),'order',20,'ExpansionPoint',1) s = sin(1) - (sin(1)*(- 1 + x)^2)/2 + (sin(1)*(- 1 + x)^4)/24 - (sin(1)*(- 1 + x)^6)/720 + (sin(1)*(- 1 + x)^8)/40320 - (sin(1)*(- 1 + x)^10)/3628800 + (sin(1)*(- 1 + x)^12)/479001600 - (sin(1)*(- 1 + x)^14)/87178291200 + (sin(1)*(- 1 + x)^16)/20922789888000 - (sin(1)*(- 1 + x)^18)/6402373705728000 + cos(1)*(- 1 + x) - (cos(1)*(- 1 + x)^3)/6 + (cos(1)*(- 1 + x)^5)/120 - (cos(1)*(- 1 + x)^7)/5040 + (cos(1)*(- 1 + x)^9)/362880 - (cos(1)*(- 1 + x)^11)/39916800 + (cos(1)*(- 1 + x)^13)/6227020800 - (cos(1)*(- 1 + x)^15)/1307674368000 + (cos(1)*(- 1 + x)^17)/355687428096000 - (cos(1)*(- 1 + x)^19)/121645100408832000 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |