MATLAB: How to symbolically work with implicit functions (i.e., “x(t)”) within the Symbolic Math Toolbox

derivativediff()symSymbolic Math Toolboxtimex(t)-

I would like to find the derivative of:
E1 = x' * sin(x)
where "x" and "y" are functions of time "t".
I tried:
syms x t
Dx= diff(x,t)
I receive the result:
Dx =
0
In addition
syms x y t
Dx= diff(x(t),t)
??? Unable to find subsindex function for class sym.

Best Answer

The following example demonstrates how you can represent "x" as functions of time "t" and perform differentation on it:
Example 1:
syms t
x = sym('x(t)'); % x(t)
E1 = diff(x) * sin(x)
E2 = diff(E1,t)
pretty(E1)
pretty(E2)
The solution for E1:
/d \
|-- x(t)| sin(x(t))
\dt /
The solution for E2:
/ 2 \
|d | /d \2
|--- x(t)| sin(x(t)) + |-- x(t)| cos(x(t))
| 2 | \dt /
\dt /
The following example demonstrates how to substitute 'x(t)' with an explicit definition.
Example 2:
% Order of the derivative
n = 2
% Define symbolic variables.
syms t
x = sym('t^2');
f = sym('f(x)');
% SUBS is used to substitute definition of x
f_subs = subs(f);
disp('Diff f_subs wrt to t')
pretty(diff(5*f_subs + t^2,t,n))
disp(' ')
disp('Diff f_subs wrt to x(t)')
pretty(diff(5*f_subs + t^2,x,n))
disp(' ')