In this question DSolve(symbolic solution) gives wrong answer.
I analyzed the 13 equations in which DSolve gives the same solution.
ClearAll["Global`*"];
Remove["Global`*"];
eqn1 = y''[x] == 1 + y[x] - Integrate[y'[t], {t, 0, x}];
eqn2 = y''[x] == 1 + y[x] - Integrate[y'[x - t], {t, 0, x}];
eqn3 = y''[x] == 1 + y[x] - Integrate[y[x - t], {t, 0, x}];
eqn4 = y''[x] == 1 + y[x] - Integrate[y'[x + t], {t, 0, x}];
eqn5 = y''[x] == 1 + y[x] - Integrate[y[x + t], {t, 0, x}];
eqn6 = y''[x] == 1 + y[x] - Integrate[2*y'[t], {t, 0, x}];
eqn7 = y''[x] == 1 + y[x] - Integrate[t*y'[t], {t, 0, x}];
eqn8 = y''[x] == 1 + y[x] - Integrate[x*y'[t], {t, 0, x}];
eqn9 = y''[x] == 1 + y[x] - Integrate[y[t]/(1 + x), {t, 0, x}];
eqn10 = y''[x] == 1 + y[x] - Integrate[y'[t]/(1 + x), {t, 0, x}];
eqn11 = y''[x] == 1 + y[x] - Integrate[y'[t]/(1 + t), {t, 0, x}];
eqn12 = y''[x] == 1 + y[x] - Integrate[y'[t]*Sin[t], {t, 0, x}];
eqn13 = y''[x] == 1 + y[x] - Integrate[y'[t]*Sin[x], {t, 0, x}];
ic = {y[0] == 0, y'[0] == 0};
sol1 = y[x] /. First@DSolve[{eqn1, ic}, y@x, x](*Wrong solution.It should be: y[x]=x^2/2 *)
sol2 = y[x] /. First@DSolve[{eqn2, ic}, y@x, x](*Wrong solution*)
sol3 = y[x] /. First@DSolve[{eqn3, ic}, y@x, x](*Wrong solution*)
sol4 = y[x] /. First@DSolve[{eqn4, ic}, y@x, x](*Wrong solution*)
sol5 = y[x] /. First@DSolve[{eqn5, ic}, y@x, x](*Wrong solution*)
sol6 = y[x] /. First@DSolve[{eqn6, ic}, y@x, x](*Wrong solution*)
sol7 = y[x] /. First@DSolve[{eqn7, ic}, y@x, x](*Wrong solution*)
sol8 = y[x] /. First@DSolve[{eqn8, ic}, y@x, x](*Wrong solution*)
sol9 = y[x] /. First@DSolve[{eqn9, ic}, y@x, x](*Wrong solution*)
sol10 = y[x] /. First@DSolve[{eqn10, ic}, y@x, x](*Wrong solution*)
sol11 = y[x] /. First@DSolve[{eqn11, ic}, y@x, x](*Wrong solution*)
sol12 = y[x] /. First@DSolve[{eqn12, ic}, y@x, x](*Wrong solution*)
sol13 = y[x] /. First@DSolve[{eqn13, ic}, y@x, x](*Wrong solution*)
Gives (*1/2 E^-x (-1 + E^x)^2*) the same answer for 13 equations?
The question is: is a bug?
Other equations that DSolve give wrong answer:
eqn14 = y''[x] == 1 + y[x] - Integrate[1 + y'[t], {t, 0, x}];
eqn15 = y''[x] == 1 + y[x] - Integrate[x + y'[t], {t, 0, x}];
eqn16 = y''[x] == 1 + y[x] - Integrate[t + y'[t], {t, 0, x}];
eqn17 = y''[x] == 1 + y[x] - Integrate[x + y[t], {t, 0, x}];
eqn18 = y''[x] == 1 + y[x] - Integrate[t + y[t], {t, 0, x}];
eqn19 = y''[x] == 1 + y[x] - Integrate[1 + y[t], {t, 0, x}];
Checks eqn19 equation:
sol19 = y[x] /. First@DSolve[{eqn19, ic}, y@x, x]
(D[#, {x, 2}] == 1 + # - Integrate[(1 + (# /. x -> t)), {t, 0, x}]) & /@ {sol19} // FullSimplify
(* {2 + x^2 == 2 (E^-x + x)} *)
not True.
Edited:
From Wolfram Technical Support:
Thank you for contacting Wolfram Technical Support. I have confirmed that DSolve is giving the wrong result for the examples you provided by direct substitution. I have filed a report with our developers regarding this issue, and included the example equations you provided. Thank you for bringing this to our attention. RE: [CASE:3808125]
Answer
A clear pattern emerges. (The initial conditions are ignored for generality.)
(y[x] /. First@DSolve[#, y[x], x]) & /@ {eqn1, eqn2, eqn3, eqn4, eqn5,
eqn6, eqn7, eqn8, eqn9, eqn10, eqn11, eqn12, eqn13}
(* {-1 + E^x C[1] + E^-x C[2], -1 + E^x C[1] + E^-x C[2], -1 + E^x C[1] + E^-x C[2], ... *)
indeed gives the same answer in each case, and the answer is the same as that from
(y[x] /. First@DSolve[#, y[x], x]) &[y''[x] == 1 + y[x]]
(* -1 + E^x C[1] + E^-x C[2] *)
Evidently, the integral is set to zero by DSolve. Consider next the second set of equations
(y[x] /. First@DSolve[#, y[x], x]) & /@ {eqn14, eqn15, eqn16, eqn17, eqn18, eqn19}
(* {-1 + x + E^x C[1] + E^-x C[2], 1 + x^2 + E^x C[1] + E^-x C[2],
x^2/2 + E^x C[1] + E^-x C[2], 1 + x^2 + E^x C[1] + E^-x C[2],
x^2/2 + E^x C[1] + E^-x C[2], -1 + x + E^x C[1] + E^-x C[2]} *)
Now, compare these with the following, obtained by explicitly integrating the portions of the integrands independent of y and discarding the portions dependent on y.
(y[x] /. First@DSolve[y''[x] == 1 + y[x] - #, y[x], x]) & /@ {x, x^2, x^2/2, x^2, x^2/2, x}
The outputs are identical to those just above. DSolve simply ignores y-dependent integrands. Incidentally, this same behavior occurs in the equation of the earlier question cited in the first line of this question.
Surely, this is a bug.
Version 11.1 update (Still true for 11.3)
DSolve now returns unevaluated for all thirteen equations. Although perhaps unsatisfying, this certainly is better than returning the wrong answer.
Comments
Post a Comment