How can I fix this error?

"Unable to perform assignment because the left and right sides have a different number of elements."
I'm trying to write a code that will approximate sin(0.3*pi) using a Taylor series expansion to 20 terms. What I currently have is:
a=0; x=0.3*pi; n=0; f(1)=0; y=sin(a);
for i=[1:20]
f(i+1)=(y*((x-a)^n))/factorial(n) y=diff(y); n=n+1;
end
Any advice or ways to help fix this problem would be greatly appreciated, I'm a novice still at using MATLAB.

1 件のコメント

Andrew Williams
Andrew Williams 2018 年 9 月 5 日
or better yet, how can i get my program to take successive derivatives in a loop?

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

回答 (1 件)

Naman Chaturvedi
Naman Chaturvedi 2018 年 9 月 10 日

0 投票

You are getting the error because after performing 'y=diff(y)', y becomes '[]' which makes the RHS '[]' as well. The correct code to find the expansion would be:-
n = 20;
x = pi/3;
y = zeros(1,20);
for i = 0:n
y(i+1) = (-1)^i*x^(2*i+1)/factorial(2*i+1);
end
approx_sinx=sum(y); %Approximated value

カテゴリ

ヘルプ センター および File ExchangeCreating and Concatenating Matrices についてさらに検索

製品

リリース

R2018a

質問済み:

2018 年 9 月 5 日

回答済み:

2018 年 9 月 10 日

Community Treasure Hunt

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

Start Hunting!

Translated by