How to simply rearrange a symbolic equation to get an expression for one variable in terms of others

73 次查看(过去 30 天)
I'm building differential equations symbolically and ran into an error when doing a simple re-arranging of an equation.
For example, I am able to rearrange an equation with a symbolic variable x:
syms x a
eqn1 = x == a + x/2;
% Re-arrange to get an expression for x
solve(eqn1, x)
ans =
2*a
But when x(t) is time-varying, solve does something else:
syms x(t) a
eqn1 = x(t) == a + x(t)/2;
% Re-arrange to get an expression for x(t)
solve(eqn1, x(t))
Warning: Unable to find explicit solution. For options, see help.
> In sym/solve (line 317)
ans =
struct with fields:
a: [0×1 sym]
t: [0×1 sym]
I'm not sure what it's trying to do. All I want is to re-arrange the expression!

采纳的回答

Paul
Paul 2023-1-29
Not sure about solve, but isolate seems to work
syms x(t) a
eqn1 = x(t) == a + x(t)/2;
isolate(eqn1,x(t))
ans = 
  3 个评论
Paul
Paul 2025-10-4,14:25
As of R2025A, solve can solve equations for symbolic functions and derivatives:
syms x(t) a
eqn1 = x(t) == a + x(t)/2;
solve(eqn1,x(t))
ans = 
eqn1 = x(t) == a + diff(x(t),t,2)/2;
solve(eqn1,diff(x(t),t,2))
ans = 

请先登录,再进行评论。

更多回答(0 个)

标签

产品


版本

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by