Question: A problem in dsolve

I have a problem with dsolve that is explained bellow:

 


In Maple 14, I get the following result
restart:
eqts:=diff(u(x),x$2)=-M(x)/EI;
d / d \ M(x)
--- |--- u(x)| = - ----
dx \ dx / EI
cnds:=u(0)=0,u(l)=0;
u(0) = 0, u(l) = 0
M:=x->piecewise(x<=l/2,P/2*x,-P*(x-l)/2);
/ 1 1 1 \
x -> piecewise|x <= - l, - P x, - - P (x - l)|
\ 2 2 2 /
dsolve({eqts,cnds},u(x)):assign(%):u(x):=simplify(u(x));
/ /
| |
uApplyFunction(x):={Typesetting:-mtable|Typesetting:-mtr|
\ \

/ / /
| | |
Typesetting:-mtd|{Typesetting:-mtable|Typesetting:-mtr|
\ \ \

/ / 3 2 3\
| 1 P \4 x - 3 l x - l /
Typesetting:-mtd|uminus0-- ----------------------,
\ 48 EI

rowalign = "", columnalign = "", groupalign = "",

\
|
rowspan = "1", columnspan = "1"|, Typesetting:-mtd(lle0,
/

rowalign = "", columnalign = "", groupalign = "",

rowspan = "1", columnspan = "1"), rowalign = "",

\ /
| |
columnalign = "", groupalign = ""|, Typesetting:-mtr|
/ \

/ / 2 2\
| 1 P x \4 x - 3 l /
Typesetting:-mtd|uminus0-- -----------------, rowalign = "",
\ 48 EI

columnalign = "", groupalign = "", rowspan = "1",

\
|
columnspan = "1"|, Typesetting:-mtd(0<l, rowalign = "",
/

columnalign = "", groupalign = "", rowspan = "1",

columnspan = "1"), rowalign = "", columnalign = "",

\
|
groupalign = ""|, align = "axis", rowalign = "baseline",
/

columnalign = "center", groupalign = "{left}",

alignmentscope = "true", columnwidth = "auto", width = "auto",

rowspacing = "1.0ex", columnspacing = "2em", rowlines = "none",

columnlines = "none", frame = "none",

framespacing = "0.4em 0.5ex", equalrows = "false",

equalcolumns = "false", displaystyle = "false", side = "right",

\
|
minlabelspacing = "0.8em"|, rowalign = "", columnalign = "",
/

\
|
groupalign = "", rowspan = "1", columnspan = "1"|,
/

/ 1
Typesetting:-mtd|xle- l, rowalign = "", columnalign = "",
\ 2

\
groupalign = "", rowspan = "1", columnspan = "1"|,
/

\
|
rowalign = "", columnalign = "", groupalign = ""|,
/

/ / /
| | |
Typesetting:-mtr|Typesetting:-mtd|{Typesetting:-mtable|
\ \ \

/ / / 2 2 \
| |1 P x \4 x +9 l - 12 l x/
Typesetting:-mtr|Typesetting:-mtd|-- ------------------------,
\ \48 EI

rowalign = "", columnalign = "", groupalign = "",

\
|
rowspan = "1", columnspan = "1"|, Typesetting:-mtd(lle0,
/

rowalign = "", columnalign = "", groupalign = "",

rowspan = "1", columnspan = "1"), rowalign = "",

\ /
| |
columnalign = "", groupalign = ""|, Typesetting:-mtr|
/ \

/ / 3 3 2 2\
|1 P \4 x - l +9 l x - 12 l x /
Typesetting:-mtd|-- ------------------------------,
\48 EI

rowalign = "", columnalign = "", groupalign = "",

\
|
rowspan = "1", columnspan = "1"|, Typesetting:-mtd(0<l,
/

rowalign = "", columnalign = "", groupalign = "",

rowspan = "1", columnspan = "1"), rowalign = "",

\
|
columnalign = "", groupalign = ""|, align = "axis",
/

rowalign = "baseline", columnalign = "center",

groupalign = "{left}", alignmentscope = "true",

columnwidth = "auto", width = "auto", rowspacing = "1.0ex",

columnspacing = "2em", rowlines = "none", columnlines = "none",

frame = "none", framespacing = "0.4em 0.5ex",

equalrows = "false", equalcolumns = "false",

displaystyle = "false", side = "right",

\
|
minlabelspacing = "0.8em"|, rowalign = "", columnalign = "",
/

\
|
groupalign = "", rowspan = "1", columnspan = "1"|,
/

/1
Typesetting:-mtd|- l<x, rowalign = "", columnalign = "",
\2

\
groupalign = "", rowspan = "1", columnspan = "1"|,
/

\
|
rowalign = "", columnalign = "", groupalign = ""|,
/

align = "axis", rowalign = "baseline", columnalign = "center",

groupalign = "{left}", alignmentscope = "true",

columnwidth = "auto", width = "auto", rowspacing = "1.0ex",

columnspacing = "2em", rowlines = "none", columnlines = "none",

frame = "none", framespacing = "0.4em 0.5ex",

equalrows = "false", equalcolumns = "false",

displaystyle = "false", side = "right",

\
|
minlabelspacing = "0.8em"|
/
Now, in Maple 15, why I cannot get any solution ?
restart:
eqts:=diff(u(x),x$2)=-M(x)/EI;
d / d \ M(x)
--- |--- u(x)| = - ----
dx \ dx / EI
cnds:=u(0)=0,u(l)=0;
u(0) = 0, u(l) = 0
M:=x->piecewise(x<=l/2,P/2*x,-P*(x-l)/2);
/ 1 1 1 \
x -> piecewise|x <= - l, - P x, - - P (x - l)|
\ 2 2 2 /
dsolve({eqts,cnds},u(x)):assign(%):u(x):=simplify(u(x));
Error, (in dsolve) invalid input: eval expects its 2nd argument, eqns, to be of type {integer, equation, set(equation)}, but received C_val
Error, invalid left hand side in assignment
u(x)

Please Wait...