dsolve - Unable to find implicit solution

1 visualizzazione (ultimi 30 giorni)
Jazmine Sydney Tanay
Jazmine Sydney Tanay il 18 Lug 2020
Commentato: Walter Roberson il 18 Lug 2020
>> 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 Commento
Walter Roberson
Walter Roberson il 18 Lug 2020
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)

Accedi per commentare.

Risposte (1)

Star Strider
Star Strider il 18 Lug 2020
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).

Categorie

Scopri di più su Symbolic Math Toolbox in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by