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

조회 수: 1 (최근 30일)
Pablo Alonso
Pablo Alonso 2023년 1월 24일
답변: Walter Roberson 2023년 1월 24일
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