Problem with derivative function

11 views (last 30 days)
Alexis
Alexis on 26 Feb 2023
Edited: Stephen23 on 26 Feb 2023
Hello, I have a problem with dfunc(x) which is my derivative function. The problem is that when using derivative we have to use symbolic value but I want dfunc(x) to actually return f'(x) which is a numerical result.I tried to use subs but it would give me answers like 2*2^(1/2) - (2*exp(1/2))/(exp(1/2) - 1)^2 instead of the actual numerical value. How can I solve it?

Accepted Answer

John D'Errico
John D'Errico on 26 Feb 2023
What you don't seem to appreciate is that in the eyes of the symbolic toolbox, something like 2^(-1/2) Is a numerical result. Sort of. Yes, I suppose the difference is a subtle one. There are no unknown parameters in there.
What you want is a floating point result. For that you can use a tool like VPA to turn the result into a symbolic floating point number, so a high precision float.
X = str2sym('2^(-1/2)')
X = 
vpa(X)
ans = 
0.70710678118654752440084436210485
Or you can use double, which converts the result into a double precision float.
format long g
double(X)
ans =
0.707106781186548

More Answers (0)

Community Treasure Hunt

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

Start Hunting!