Question: bug report: Maple dsolve throws internal error on invalid IC

THis IC for Abel ode is not valid and should result in no solution. But instead of returning NULL, dsolve throws internal error called Error, (in dsolve) invalid limiting point

restart;

interface(version);

`Standard Worksheet Interface, Maple 2024.2, Windows 10, October 29 2024 Build ID 1872373`

Physics:-Version();

`The "Physics Updates" version in the MapleCloud is 1844 and is the same as the version installed in this computer, created 2025, January 25, 22:5 hours Pacific Time.`

ode:=diff(y(x),x)-x^a*y(x)^3+3*y(x)^2-x^(-a)*y(x)-x^(-2*a)+a*x^(-a-1) = 0;

diff(y(x), x)-x^a*y(x)^3+3*y(x)^2-x^(-a)*y(x)-x^(-2*a)+a*x^(-a-1) = 0

DEtools:-odeadvisor(ode);
sol:=dsolve([ode,y(1)=1])

[_Abel]

Error, (in dsolve) invalid limiting point

tracelast;

 dsolve called with arguments: [diff(y(x), x)-x^a*y(x)^3+3*y(x)^2-x^(-a)*y(x)-x^(-2*a)+a*x^(-a-1) = 0, y(1) = 1], arbitraryconstants = subscripted, atomizenames = true, build = false, numeric = false, type = none
 #(dsolve,80): error

 \`dsolve/IC\` called with arguments: [diff(y(x), x)-x^a*y(x)^3+3*y(x)^2-x^(-a)*y(x)-x^(-2*a)+a*x^(-a-1) = 0, y(1) = 1], {y(x)}, skipimplicit = false, skippparticularsolforlinearODEs = true, solution = {}, usesolutions = particular and general
 #(\`dsolve/IC\`,64): draft := procname(_passed,':-usesolutions = "general"');

 \`dsolve/IC\` called with arguments: [diff(y(x), x)-x^a*y(x)^3+3*y(x)^2-x^(-a)*y(x)-x^(-2*a)+a*x^(-a-1) = 0, y(1) = 1], {y(x)}, skipimplicit = false, skippparticularsolforlinearODEs = true, solution = {}, usesolutions = general
 #(\`dsolve/IC\`,277): zz := map(op,{\`dsolve/IC/_C\`({ANS[i]},funcs,x,ics)});

 \`dsolve/IC/_C\` called with arguments: {y(x) = -exp(2*x^(-a+1)/(a-1))/(_C[1]-2*2^(2*(a+1)/(a-1))*(1/(-a+1))^((a+1)/(a-1))*(2^(-(5*a-3)/(a-1))*(1/(-a+1))^(-(a+1)/(a-1))*x^(2*a)*(-a+1)^2*(x^(-a+1)/(-a+1))^(1/(a-1))*(-4*x^(-a+1)*a^2/(-a+1)+8*a*x^(-a+1)/(-a+1)-4*x^(-a+1)/(-a+1)+2*a-2)*WhittakerM(-(a+1)/(a-1)+1/(a-1), -1/(a-1)+1/2, 4*x^(-a+1)/(-a+1))*exp(-2*x^(-a+1)/(-a+1))/((a+1)*(-3+a))-2^(-(3*a-1)/(a-1))*(1/(-a+1))^(-(a+1)/(a-1))*x^(2*a)*WhittakerM(-(a+1)/(a-1)+1/(a-1)+1, -1/(a-1)+1/2, 4*x^(-a+1)/(-a+1))*(-a+1)^2*(x^(-a+1)/(-a+1))^(1/(a-1))*exp(-2*x^(-a+1)/(-a+1))/((a+1)*(-3+a)))/(-a+1))^(1/2)+x^(-a)}, {y(x)}, x, [y(1) = 1]
 #(\`dsolve/IC/_C\`,1): ans := \`dsolve/IC/_C/do\`(solns,depvars,t,inits,'evaluated_ans', "default",':-giveup = giveup');

 \`dsolve/IC/_C/do\` called with arguments: {y(x) = -exp(2*x^(-a+1)/(a-1))/(_C[1]-2*2^(2*(a+1)/(a-1))*(1/(-a+1))^((a+1)/(a-1))*(2^(-(5*a-3)/(a-1))*(1/(-a+1))^(-(a+1)/(a-1))*x^(2*a)*(-a+1)^2*(x^(-a+1)/(-a+1))^(1/(a-1))*(-4*x^(-a+1)*a^2/(-a+1)+8*a*x^(-a+1)/(-a+1)-4*x^(-a+1)/(-a+1)+2*a-2)*WhittakerM(-(a+1)/(a-1)+1/(a-1), -1/(a-1)+1/2, 4*x^(-a+1)/(-a+1))*exp(-2*x^(-a+1)/(-a+1))/((a+1)*(-3+a))-2^(-(3*a-1)/(a-1))*(1/(-a+1))^(-(a+1)/(a-1))*x^(2*a)*WhittakerM(-(a+1)/(a-1)+1/(a-1)+1, -1/(a-1)+1/2, 4*x^(-a+1)/(-a+1))*(-a+1)^2*(x^(-a+1)/(-a+1))^(1/(a-1))*exp(-2*x^(-a+1)/(-a+1))/((a+1)*(-3+a)))/(-a+1))^(1/2)+x^(-a)}, {y(x)}, x, [y(1) = 1], evaluated_ans, default, giveup = giveup, usecansolve = false
 #(\`dsolve/IC/_C/do\`,133): Solns := map((u, S) -> map(limit,S,op(u)),csol,Solns);

 limit called with arguments: y(x) = -exp(2*x^(-a+1)/(a-1))/(_C[1]-2*2^(2*(a+1)/(a-1))*(1/(-a+1))^((a+1)/(a-1))*(2^(-(5*a-3)/(a-1))*(1/(-a+1))^(-(a+1)/(a-1))*x^(2*a)*(-a+1)^2*(x^(-a+1)/(-a+1))^(1/(a-1))*(-4*x^(-a+1)*a^2/(-a+1)+8*a*x^(-a+1)/(-a+1)-4*x^(-a+1)/(-a+1)+2*a-2)*WhittakerM(-(a+1)/(a-1)+1/(a-1), -1/(a-1)+1/2, 4*x^(-a+1)/(-a+1))*exp(-2*x^(-a+1)/(-a+1))/((a+1)*(-3+a))-2^(-(3*a-1)/(a-1))*(1/(-a+1))^(-(a+1)/(a-1))*x^(2*a)*WhittakerM(-(a+1)/(a-1)+1/(a-1)+1, -1/(a-1)+1/2, 4*x^(-a+1)/(-a+1))*(-a+1)^2*(x^(-a+1)/(-a+1))^(1/(a-1))*exp(-2*x^(-a+1)/(-a+1))/((a+1)*(-3+a)))/(-a+1))^(1/2)+x^(-a), _C[1] = exp((4*I)*Im(1/(a-1)))*infinity, parametric = false
 #(limit,2): return map(thisproc,_passed)

 limit called with arguments: y(x), _C[1] = exp((4*I)*Im(1/(a-1)))*infinity, parametric = false
 #(limit,33): error "invalid limiting point"

Error, (in dsolve) invalid limiting point

 locals defined as: ddir = ddir, dexpr = y(x), fexpr = fexpr, r = r, x = _C[1], fL = fL, L = exp((4*I)*Im(1/(a-1)))*infinity, efloat = efloat, lfloat = lfloat, ind_dexpr = ind_dexpr, ind_L = ind_L, lexpr = lexpr, t = t, limr = limr, liml = liml, pt = (_C[1] = exp((4*I)*Im(1/(a-1)))*infinity), inertfunctions = {}, limitX = limitX, parameters = parameters, Y = Y, limc = limc, cexpr = cexpr, texpr = texpr, bexpr = bexpr, limt = limt, limb = limb, param = param, c = c, N = N, Z = Z, P = P, o = o, e = e, uneval = uneval, i = i, A = A, cond = cond, ll = ll, rr = rr

 


 

Download internal_error_instead_of_no_solution.mw

Please Wait...