# How do i write the function for the taylor polynomial of cos(x) using for loops and no anonymous function

46 ビュー (過去 30 日間)
B 2021 年 9 月 1 日
コメント済み: B 2021 年 9 月 2 日
Pn is the taylor polynomial of the degree (at most) n centred at x0=0 for the function cos(x)
The function should take inputs a and n and return Pn evaluated at x=a
function Pn = taylor_cos(a,n)
x=a;
Pn=1;
for i=1:n;
end
% thats my version but for some reason its incorrect
##### 6 件のコメント表示非表示 5 件の古いコメント
B 2021 年 9 月 2 日
apologise i had inputed the modifed code incorrectly, its working now

サインインしてコメントする。

### 採用された回答

Wan Ji 2021 年 9 月 2 日
If a large x is selected, then use
function Pn = taylor_cos(a,n)
x=mod(abs(a),2*pi); %
if(x>=pi)
x = 2*pi-x;
end
Pn=1;
for i=1:n
end

サインインしてコメントする。

### その他の回答 (1 件)

John D'Errico 2021 年 9 月 2 日
We can see how well it works. Your code is below.
Now, let me test it out, in a symbolic form.
syms X
P8 = taylor_cos(X,4)
P8 =
Is that a correct Taylor expansion for cos(X)?
Yes. In fact, it is.
taylor(cos(X),'order',10)
ans =
Does it correctly extimate cos(X), for reasonably small X?
taylor_cos(0.1,4)
ans = 0.9950
cos(0.1)
ans = 0.9950
It seems to predict reasonably well.
My guess is you are hoping this will predict correctly for large values of X. And that is of course not true.
taylor_cos(20,10)
ans = 2.0966e+07
Yes, that is garbage. Perhaps you need to do some reading about convergence of infinite series. Even if this series will converge in theory, after a vast number of terms, this does not mean you will expect it to converge in practice, using computation with a finite number of decimal digits.
function Pn = taylor_cos(a,n)
x=a;
Pn=1;
for i=1:n;
end
end

サインインしてコメントする。

### カテゴリ

Find more on Spline Postprocessing in Help Center and File Exchange

R2021a

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by