MATLAB与高等数学--泰勒展开

编程入门 行业动态 更新时间:2024-10-22 11:25:35

MATLAB与高等数学--<a href=https://www.elefans.com/category/jswz/34/1721245.html style=泰勒展开"/>

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

更多推荐

MATLAB与高等数学--泰勒展开

本文发布于:2023-07-27 22:09:50,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1226524.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:泰勒   高等数学   MATLAB

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!