Evaluating derivative using symbolic toolbox

Hello all, I am trying to evaluate a derivative using the symbolic tool box.
I chose a simpler exquation to show, but if I can get this to work my code will work.
Here's the issue:
syms x
f_of_x = x^2 * sin(x)
der = diff(f_of_x)
der_2 = der(2)
As you can see I'm trying to evaluate the function @x = 2; but I'm getting the error "index exceeds number of array elements"
I checked the documentation and I literally abandoned my code, and wrote the example code direct from the documentation, still doesn't work.

 Accepted Answer

Two ways to do this:
syms x
f_of_x = x^2 * sin(x);
der = diff(f_of_x,x) % I like to be explicit on the variable of differentiation
der = 
der_2 = subs(der,x,2)
der_2 = 
Or
f(x) = x^2 * sin(x);
der(x) = diff(f(x),x)
der(x) = 
der_2 = der(2)
der_2 = 

2 Comments

"Thank you! For the second example does that work because of the parenthesis on f(x)?"
Yes. f_of_x and f(x) are different types of objects:
syms x
f_of_x = x^2 * sin(x);
f(x) = x^2 * sin(x);
whos
Name Size Bytes Class Attributes f 1x1 8 symfun f_of_x 1x1 8 sym x 1x1 8 sym
A symfun works very similarly to a mathemetical function. I think there was a thread here not too long ago that discussed differences between sym and symfun objects, but I can't find it.
I’ll look for another thread, or the documentation. Thanks!

Sign in to comment.

More Answers (1)

Thank you! For the second example does that work because of the parenthesis on f(x)?

Products

Release

R2021b

Community Treasure Hunt

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

Start Hunting!