Taylor Series of e^x
조회 수: 89 (최근 30일)
이전 댓글 표시
The program calculates e^x by adding terms of the series and stopping when the absolute value of the term that was added last is smaller than 0.0001. Use a while-end loop, but limit the number of passes to 30. If in the 30th pass the value of the term that is added is not smaller than 0.0001, the program stops and displays a message that more than 30 terms are needed.
clear
clc
fprintf('Solving e^x using Taylor Series\n');
x=input('x = ');
n=30;
i=0;
f=1;
while i<n || i==n
f=f+(x.^i)/factorial(i);
i=i+1;
end
y=f-1
This is where I am stuck, I don't know how to limit the n to 30 and how can I make a condition that if the value of the term is smaller than 0.0001 it will stop.
Any help would be appreciated, Thank you!
댓글 수: 1
Walter Roberson
2020년 3월 21일
while term is in range && iterations is in range
Calculate a term
accumulate term into total
increment iterations
채택된 답변
Subhamoy Saha
2020년 3월 21일
clear
clc
fprintf('Solving e^x using Taylor Series\n');
x=input('x = ');
n=30;
i=0;
f=1;
while i<=n
last_term=(x.^i)/factorial(i);
if (x.^i)/factorial(i)<0.0001
msgbox('Last term is smaller than 0.0001 and hence stopped')
break
elseif i==n && last_term>0.0001
msgbox('More steps needed')
break
end
f=f+last_term;
i=i+1;
end
y=f-1
댓글 수: 4
추가 답변 (2개)
Mohamed Hakim
2021년 5월 20일
function [ts]=newton(x,n)
i=1;
ts=1;
while i<n || i==n
ts=ts+(x.^i)/factorial(i);
i=1+i;
end
end
댓글 수: 1
Walter Roberson
2021년 5월 20일
Is there a reason to write
i<n || i==n
instead of
i<=n
?
Mohamed Hakim
2021년 5월 21일
y= @(x) 2*x^2-5*x+3;
x1=input("enterfirst number");
x2=input("enterfirst number");
if f(x1)*f(x2)==0
disp("no");
end
댓글 수: 0
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!