# How do I symbolically work with implicit functions (i.e., "x(t)") within the Symbolic Math Toolbox?

40 views (last 30 days)
MathWorks Support Team on 8 Nov 2011
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)
Dx =
0
syms x y t
Dx= diff(x(t),t)
??? Unable to find subsindex function for class sym.

MathWorks Support Team on 8 Nov 2011
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(' ')
Walter Roberson on 22 Feb 2016
syms t
x = sym('x(t)');
you can also use
syms t x(t)
or even
syms x(t)
which will notice if t is not already defined as a symbol and will define it as a symbol if it needs to.

### Categories

Find more on Symbolic Variables, Expressions, Functions, and Preferences 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!

Translated by