我如何写出cos(x)的泰勒多项式的函数使用for循环而没有匿名函数

8个视图(过去30天)
B
B 2021年9月1日
评论: B2021年9月2日
Pn是函数cos(x)以x0=0为中心的n次泰勒多项式
函数应采用输入a和n,并返回在x=a时计算的Pn
函数Pn=泰勒系数(a,n)
x=a;
Pn=1;
对于i=1:n;
addterm =((1) ^我)* (x ^(我)2 *)/阶乘(2 * (i));
Pn=Pn+addterm;
终止
%这是我的版本,但由于某些原因它是不正确的
6评论

登录以发表评论。

公认的答案

Wan霁
Wan霁 2021年9月2日
如果选择了一个大的x,那么使用
函数Pn=泰勒系数(a,n)
x =国防部(abs (a), 2 * pi);%
如果(x > =π)
x=2*pi-x;
终止
Pn=1;
对于i=1:n
addterm =((1) ^我)* (x ^(我)2 *)/阶乘(2 * (i));
Pn=Pn+addterm;
终止

更多答案(1)

约翰·德雷科
约翰·德雷科 2021年9月2日
我们可以看到它工作得有多好。你的代码在下面。
现在,让我用符号的形式来测试一下。
符号X
P8=泰勒系数(X,4)
P8=
这是cos(X)的泰勒展开式吗?
对事实上是这样。
泰勒(cos (X),“秩序”,10)
ans=
它能正确地计算出cos(X)吗?
泰勒系数(0.1,4)
ans=0.9950
因为(0.1)
ans=0.9950
它似乎可以很好地预测。
我的猜测是,你们希望这能正确地预测X的大值,但这当然不是真的。
taylor_cos(20,10)
ans=2.0966e+07
是的,那是垃圾。也许你们需要读一些关于无穷级数收敛性的书。即使这个数列在理论上会收敛,但经过大量的计算后,这并不意味着您会期望它在实际中收敛,使用有限个十进制数字进行计算。
函数Pn=泰勒系数(a,n)
x=a;
Pn=1;
对于i=1:n;
addterm =((1) ^我)* (x ^(我)2 *)/阶乘(2 * (i));
Pn=Pn+addterm;
终止
终止

下载188bet金宝搏


释放

R2021a

社区寻宝

在MATLAB Central中查找宝藏,了解社区如何帮助您!

开始狩猎!

翻译人