我怎么写函数的泰勒多项式cos (x)使用for循环,没有匿名函数

26日视图(30天)
Pn的泰勒多项式(最多)n集中程度x0 cos (x) = 0的功能
函数应该输入一个和n和返回Pn评估x = a
函数Pn = taylor_cos (n),
x = a;
Pn = 1;
我= 1:n;
addterm =((1) ^我)* (x ^(我)2 *)/阶乘(2 * (i));
Pn = Pn + addterm;
结束
%这但出于某种原因我的版本不正确
6个评论

登录置评。

接受的答案

Wan霁
Wan霁 2021年9月2日
如果一个大型x被选中,然后使用
函数Pn = taylor_cos (n),
x =国防部(abs (a), 2 * pi);%
如果(x > =π)
x = 2 *πx;
结束
Pn = 1;
i = 1: n
addterm =((1) ^我)* (x ^(我)2 *)/阶乘(2 * (i));
Pn = Pn + addterm;
结束

答案(1)

约翰D 'Errico
约翰D 'Errico 2021年9月2日
我们可以看到它是如何工作的。下面的代码。
现在,让我来测试一下,在一个象征性的形式。
信谊X
P8 = taylor_cos (X, 4)
P8 =
是一个正确的泰勒展开式cos (X) ?
是的。事实上,它是。
泰勒(cos (X),“秩序”,10)
ans =
它正确地extimate cos (X), X为相当小?
taylor_cos (0.1 4)
ans = 0.9950
因为(0.1)
ans = 0.9950
它似乎预测相当不错。
我猜你是希望这将正确预测大型x的值,这当然不是真的。
taylor_cos (20、10)
ans = 2.0966 e + 7
是的,那是垃圾。也许你需要做一些阅读有关无穷级数的收敛性。即使本系列将收敛理论,经过大量的术语中,这并不意味着你会期望它收敛在实践中,使用计算有限数量的小数位数。
函数Pn = taylor_cos (n),
x = a;
Pn = 1;
我= 1:n;
addterm =((1) ^我)* (x ^(我)2 *)/阶乘(2 * (i));
Pn = Pn + addterm;
结束
结束

下载188bet金宝搏


释放

R2021a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!