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

3 次查看(过去 30 天)
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);

回答(2 个)

Walter Roberson
Walter Roberson 2023-1-24
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

KSSV
KSSV 2023-1-24
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) = 

类别

Help CenterFile Exchange 中查找有关 Partial Differential Equation Toolbox 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by