How to speed up plotting of Sophomore's Dream function
Reformulation as a ParametricNDSolve[]
problem is very fast:
ff = 10;
pfun = ParametricNDSolveValue[{y'[t] == (t + $MachineEpsilon)^(a t),
y[0] == 1}, y, {t, 0, ff}, {a}]
LogPlot[Evaluate[
Table[pfun[a][
x], {a, {-50, -30, -20, -10, -5, -1, 0, 0.5, 1, 2, 3, 5,
10}}]], {x, 0, 10}, PlotRange -> {1, 10^10}]
Perhaps slightly faster:
f[a_, x_] := NIntegrate[t^(a t), {t, 0, x}]
al = {-50, -30, -20, -10, -5, -1, 0, 0.5, 1, 2, 3, 5, 10};
tab[a_] := Table[{j, f[a, j]}, {j, 0, 10, 0.1}]
ListLogPlot[tab /@ al, Joined -> True, PlotRange -> {0.01, 10^10},
PlotLegends -> LineLegend[Automatic, al],
GridLines -> {Range[10], PowerRange[1, 10^10, 10]}, Frame -> True]