Write a MATLAB code to estimate the exponential function. Inputs should be x and n. The outputs must include approximate value, true value, error, absolute error, and relative error.
Show older comments
This is what I have but it's not working.
function e_to_x = exp_taylor(x,n)
e_to_x = 0;
for k = 1:n
e_to_x = e_to_x + (x^(k-1))/factorial(k-1);
end
end
approx =exp_taylor(1,3);
fprintf("Approximate value %.8f\n",approx);
fprintf("True value %.8f\n",exp(1));
truevalue = exp(1);
relerror = abs(truevalue - approx)/truevalue;
fprintf("Relative error is: ");
disp(relerror);
aberror = abs(truevalue - approx)/approx;
fprintf("Absolute error is: ");
disp(aberror);
1 Comment
James Tursa
on 21 Sep 2019
Please be specific about what "not working" means. E.g., when I run your code I get:
>> exp(1)
ans =
2.718281828459046
>> exp_taylor(1,3)
ans =
2.500000000000000
>> exp_taylor(1,10)
ans =
2.718281525573192
>> exp_taylor(1,20)
ans =
2.718281828459046
which looks good to me ...
Answers (1)
James Tursa
on 21 Sep 2019
0 votes
Put your function code for e_to_x() in a separate file called e_to_x.m somewhere on the MATLAB path. Then put your other code that calls e_to_x() in a separate file and run that separate file.
Categories
Find more on Linear Algebra in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!