# Plot general solutions

Is it possible to plot the general solutions of the following pde:

pde = \!$$\*SubscriptBox[\(\[PartialD]$$, $${t}$$]$$u[x, t]$$\) ==  t (u[x, t] + (
2^(1/3) u[x, t]^2)/(-2 u[x, t]^3 + A +
Sqrt[-4 u[x, t]^3 A + A^2])^(
1/3) + (-2 u[x, t]^3 + A + Sqrt[-4 u[x, t]^3 A + A^2])^(1/3)/2^(
1/3))
ics = {u[x, 1] == x};
sol = DSolve[pde && ics, u[x, t], {x, t}][[1, 1]]


Generating the code, we get

    u[x, t] ->
InverseFunction[
Inactive[Integrate][(A - 2 K^3 + Sqrt[A] Sqrt[A - 4 K^3])^(
1/3)/(2 2^(1/3) K^2 +
2 K (A - 2 K^3 + Sqrt[A] Sqrt[A - 4 K^3])^(1/3) +
2^(2/3) (A - 2 K^3 + Sqrt[A] Sqrt[A - 4 K^3])^(2/3)), {K[
2], 1, #1}] &][
t^2/4 + 1/
4 (-1 + 4 Inactive[
Integrate][(A - 2 K^3 + Sqrt[A] Sqrt[A - 4 K^3])^(
1/3)/(2 2^(1/3) K^2 +
2 K (A - 2 K^3 + Sqrt[A] Sqrt[A - 4 K^3])^(1/3) +
2^(2/3) (A - 2 K^3 + Sqrt[A] Sqrt[A - 4 K^3])^(
2/3)), {K, 1, x}])]


Mathematica does not give an explicit solution, because it can't integrate the integrals.

In addition, even it it did, you can't plot the solution since $$A$$ is not known. Even giving $$A$$ a numerical value, the integrals remain unevaluated.

Instead, why not plot the solution using NDSolve?

pde = D[u[x, t], t] ==
t*(u[x, t] + (2^(1/3) u[x, t]^2)/(-2 u[x, t]^3 + A +
Sqrt[-4 u[x, t]^3 A + A^2])^(1/3) + (-2 u[x, t]^3 + A +
Sqrt[-4 u[x, t]^3 A + A^2])^(1/3)/2^(1/3))
ics = u[x, 1] == x
A = 1;
sol = NDSolveValue[{pde, ics}, u, {x, 0, 1}, {t, 0, 1}];
Animate[Plot[sol[x, t], {x, 0, 1}, PlotRange -> {Automatic, {-1, 1}},
GridLines -> Automatic, GridLinesStyle -> LightGray,
PlotStyle -> Red], {t, 0, 1, .01}] \$Version

(* "13.3.1 for Mac OS X ARM (64-bit) (July 24, 2023)" *)

Clear["Global*"]

pde = D[u[x, t], t] == t*(u[x, t] + (2^(1/3) u[x, t]^2)/
(-2 u[x, t]^3 + A + Sqrt[-4 u[x, t]^3 A + A^2])^(1/3) +
(-2 u[x, t]^3 + A + Sqrt[-4 u[x, t]^3 A +
A^2])^(1/3)/2^(1/3));
ics = {u[x, 1] == x};

sol = ParametricNDSolve[pde && ics, u[x, t], {x, 0, 1}, {t, 0, 1}, {A}] Manipulate[
Plot3D[u[x, t][av] /. sol, {x, 0, 1}, {t, 0, 1},
AxesLabel -> (Style[#, 14] & /@ {x, t, u})],
{{av, 1, "A"}, {1, 5, 10, 50, 100}},
SynchronousUpdating -> False,
TrackedSymbols :> {av}]
` 