dsolve - Unable to find implicit solution

>> syms y(t)
>> eqn = diff(y) == y+exp(-y)
eqn(t) =
diff(y(t), t) == exp(-y(t)) + y(t)
>> sol = dsolve(eqn)
Warning: Unable to find explicit solution. Returning implicit
solution instead.
> In dsolve (line 197)
sol =
lambertw(0, -1)
>> sol = dsolve(eqn,'Implicit',true)
Error using char
Conversion to char from logical is not possible.
Error in dsolve>mupadDsolve (line 274)
if isvarname(char(args{end}))
Error in dsolve (line 183)
sol = mupadDsolve(args, options);

댓글 수: 1

Walter Roberson
Walter Roberson 2020년 7월 18일
Which release are you using? When I dsolve() I do not get the warning for the first case, and the second case does not give me an error (but the result is a bit odd)

댓글을 달려면 로그인하십시오.

답변 (1개)

Star Strider
Star Strider 2020년 7월 18일

0 개 추천

That is not very illumiunating.
Try this:
syms y(t) T Y
eqn = diff(y) == y+exp(-y);
[VF,Subs] = odeToVectorField(eqn);
eqnfcn = matlabFunction(VF, 'Vars',{T,Y});
[t,y] = ode45(eqnfcn, [0 1], 1);
figure
plot(t, y)
grid
Choose appropriate values for the time interval ([0 1] here) and initial condition (here 1).

카테고리

도움말 센터File Exchange에서 Symbolic Math Toolbox에 대해 자세히 알아보기

태그

질문:

2020년 7월 18일

댓글:

2020년 7월 18일

Community Treasure Hunt

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

Start Hunting!

Translated by