Hello, I've got the problem. Can any one help me with that error?

3 views (last 30 days)
syms x(t)
D3x = diff(x, t, 3);
D2x = diff(x, t, 2);
Dx = diff(x, t);
eqn = diff(x, t, 2)+2*diff(x, t)+x == 2;
cond = [x(0)==0, diff(x, t)==0];
xSol(t) = dsolve (eqn,cond)
Warning: Number of equations greater than number of indeterminates. Trying heuristics to reduce to square system.
> In symengine
In mupadengine/evalin_internal
In mupadengine/feval_internal
In dsolve>mupadDsolve (line 334)
In dsolve (line 203)
Error using mupadengine/feval_internal
Unable to reduce to square system because the number of equations differs from the number of indeterminates.
Error in dsolve>mupadDsolve (line 334)
T = feval_internal(symengine,'symobj::dsolve',sys,x,options);
Error in dsolve (line 203)
sol = mupadDsolve(args, options);

Answers (2)

KSSV on 24 Jan 2023
It looks there is some problem with conditions. Check the conditions. Without the conditions it is working fine.
syms x(t)
Dx = diff(x);
D2x = diff(Dx) ;
D3x = diff(D2x) ;
eqn = diff(x, t, 2)+2*diff(x, t)+x == 2;
cond = [x(0)==0, diff(x, t)==0];
xSol(t) = dsolve (eqn)
xSol(t) = 

Walter Roberson
Walter Roberson on 24 Jan 2023
cond = [x(0)==0, diff(x, t)==0];
The first part of that sets a boundary condition. The second part of it says that the derivative of x(t) is zero, which is a second equation rather than a boundary condition. The only way to satisfy diff(x, t) == 0 is if x(t) is constant
You probably wanted Dx(0)==0 or similar

Community Treasure Hunt

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

Start Hunting!