Azzera filtri
Azzera filtri

Taylor Series of e^x on point 1

1 visualizzazione (ultimi 30 giorni)
Panagiotis Panagopoulos Papageorgiou
Risposto: infinity il 27 Giu 2019
Greetings,
I am trying to make my own script where I can approximate a function using a Taylor polynomial. However, when I try to use this method to the function e^x on point 1, I get this odd result:
(3060513257434037*x)/1125899906842624 + (3060513257434037*(x - 1)^2)/2251799813685248 + (3060513257434037*(x - 1)^3)/6755399441055744
Is there any way I can fix this? Thanks in advance!
Here's my code:
g = input('Please enter the function you want to approach as a Taylor series: ', 's');
p = input('Please enter the point around which the Taylor series will expand: ');
o = input('Please enter the order of the Taylor polynomial: ');
f = str2func(['@(x,y,z) ' g]);
F(1,1) = f(p);
for i = 1:o
syms x
f = matlabFunction(diff(f(x)));
F(i+1,1) = f(p);
end
syms x N
T = symsum((F(o,1)*(x-p)^N)/factorial(N), N, 0, o);
disp(T);
hold on
fplot(matlabFunction(T));
fplot(f);
hold off

Risposte (1)

infinity
infinity il 27 Giu 2019
Hello,
At least, I found a mistake in your program. Let see the line
T = symsum((F(o,1)*(x-p)^N)/factorial(N), N, 0, o);
The value of "F(o,1)" is not changed in the symsum since you told the function symsum that the variable is "N". To fix this, first you need to change "F(o,1)" to "F(N,1)".

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by