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?

댓글 수: 1

Stephen23
Stephen23 2023년 2월 26일
편집: Stephen23 2023년 2월 26일
"How can I solve it?"
Look at the list of functions in the symbolic toolbox:
particularly under the title "Conversion Between Symbolic and Numeric", e.g.:

댓글을 달려면 로그인하십시오.

 채택된 답변

John D'Errico
John D'Errico 2023년 2월 26일

0 개 추천

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

추가 답변 (0개)

카테고리

질문:

2023년 2월 26일

편집:

2023년 2월 26일

Community Treasure Hunt

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

Start Hunting!

Translated by