7.21 boundary problem (15.5.00)

7.21.1 Romek Kaminski

In Mathematica

DSolve[{y''''[x]==q,y[0],y[l]==0,y''[0]=0,y''[l]=0},y[x],x]
 

gives the answer

y[x]->l^3*q*x/24-l*q*x^3/12+q*x^4/24
 

I don’t know how to write this boundary problem in maple.

7.21.2 Jan Zijlstra (16.5.00)

I think the following command will accomplish what you are looking for:

> eq:=(D@@4)(y)(x)=q; 
  dsolve({eq,y(0)=0,y(l)=0,(D@@2)(y)(0)=0,(D@@2)(y)(l)=0},y(x)); 
 
 
                               (4) 
                        eq := (D   )(y)(x) = q 
 
                                  4             3           3 
                   y(x) = 1/24 q x  - 1/12 q l x  + 1/24 q l  x
 

7.21.3 Brian Kelly (16.5.00)

Try the following syntax:

dsolve( {(D@@4)(y)(x)=q,y(0)=0,y(l)=0,(D@@2)(y)(0)=0,(D@@2)(y)(l)=0},y(x));
 

Note the use of () versus [] and the use of (D@@k)(y)(x) to represent the k th derivatitive of \(y\) evaluated at \(x\)

7.21.4 Stanley J Houghton (22.5.00)

Just an observation but I am not sure if it helps.

Your earlier example had four arbitrary constants in the general solution and four initial conditions as a basis for their resolution.

The general solution to the two differential equations above has 8 arbitrary constants. Your initial conditions only provide 6 simultaneous equations.

Are two initial conditions missing?

7.21.5 Romek Kaminski (22.5.00)

I think the name boundary is better because it is a space unknow \(x\), not time t. In another way \(x=l\) is on another end of \(x\) axe, then \(x=0\) then name initial is not good.

I think the initial condition problems are more easy to solve then more complicated boundary problems. I think the problem is proper naturaly and has a solution in mathematica 3.0 In earlier version of mathematica we have only solutions for initial problems.

Sorry for my unwise answers but I am only a civil engineer and never studied mathematics.

The answers from mathematica are

y1[x]=(9/16*l^3*q*x-3/2*l*q*x^3+q*x^4)/24 
y2[x]=(-l^4*q/64+17/64*l^3*q*x-3/8*l^2*q*x^2+l*q*x^3/8)/6
 

7.21.6 Stanley J Houghton (22.5.00)

I will refer this to MUG to seek advice on the number of initial conditions required to provide a solution without arbitrary constants. Your general solution still has eight arbitrary constants and yet there are only 6 initial conditions.

I would be interested to see the input to Mathematica for comparison.

7.21.7 Romek Kaminski (22.5.00)

For mathematica:

DSolve[{y1''''[x]==q,y2''''[x]==0,y1[0]==0,y2[l]==0,y1''[0]==0, 
y2''[l]==0,y1[l/2]==y2[l/2],y1'[l/2]==y2'[l/2], y1''[l/2]==y2''[l/2], 
y1'''[l/2]==y2'''[l/2]},{y1[x],y2[x]},x]
 

7.21.8 Stanley J Houghton (22.5.00)

Your translation from Mathematica omitted two initial conditions .. \(Y1(0)=0\) and \(Y2(l)=0\).

Unfortunately, when I added them, function dsolve failed to produce an answer, ie from

> dsolve({(D@@4)(y1)(x)=q,(D@@4)(y2)(x)=0,  # 2 Diff Equations 
>        y1(0)=0,y2(l)=0,       # IC 1 and 2 
>        (D@@2)(y1)(0)=0,(D@@2)(y2)(l)=0,   # IC 3 and 4 
>        y1(l/2)=y2(l/2),                        # IC 5 
>        (D@@1)(y1)(l/2)=(D@@1)(y2)(l/2),    # IC 6 
>        (D@@2)(y1)(l/2)=(D@@2)(y2)(l/2),    # IC 7 
>        (D@@3)(y1)(l/2)=(D@@3)(y2)(l/2)},   # IC 8 
>        {y1(x),y2(x)});
 

I think it may be a fault in the way Maple tackles the problem but others may be able to advise on a work-round..

If I produce the general result and solve for the constants using the initial conditions, however, we do end up with the same solution as Mathematica. Thus

> dsol:=dsolve({(D@@4)(y1)(x)=q,(D@@4)(y2)(x)=0}, 
>        {y1(x),y2(x)});
 

now set up the functions y1 and y2, used to form the equations from the initial conditions

> y1,y2:=map(unapply,subs(dsol,[y1(x),y2(x)]),x)[];
 

now form the initial condition based equations

> IC:={y1(0)=0,y2(l)=0, 
        (D@@2)(y1)(0)=0,(D@@2)(y2)(l)=0, 
        y1(l/2)=y2(l/2), 
        (D@@1)(y1)(l/2)=(D@@1)(y2)(l/2), 
        (D@@2)(y1)(l/2)=(D@@2)(y2)(l/2), 
        (D@@3)(y1)(l/2)=(D@@3)(y2)(l/2)};
 

now solve these for the constants

> sols:=solve(IC,{_C1,_C2,_C3,_C4,_C5,_C6,_C7,_C8});
 

now reform the functions y1 and y2

> y1,y2:=map(unapply,subs(sols,[y1(x),y2(x)]),x)[];
 

The resulting functions are exactly the same as you had from Mathematica.

7.21.9 Edgardo S. Cheb-Terrab (30.5.00)

The reason for why Maple failed is because some of the initial conditions (ICS) - those you numbered 6, 7 and 8 - are more like constraints than ICs, in that you are not saying what the value of the {y1,y2} or their derivatives are. The logical interpretation of giving an IC like

   > (D@@1)(y1)(l/2)=(D@@1)(y2)(l/2)
 

then would be

   > (D@@1)(y1)(l/2) = k 
   > (D@@1)(y2)(l/2) = k
 

plus "adjust \(k\) to what would be necessary" in order to solve the problem. It is good that these emails are here so that next Maple can implement this.

This functionality is also available in Maple for releases 4, 5 and 6, if you install ODEtools (http://lie.uwaterloo.ca/odetools.htm); the ODE problem posted will then be solved as follows:

In Maple 4 use ’odsolve’ instead of ’dsolve’

> dsolve({(D@@4)(y1)(x)=q,(D@@4)(y2)(x)=0,   # 2 Diff Equations 
          y1(0)=0,y2(l)=0,                   # IC 1 and 2 
          (D@@2)(y1)(0)=0,(D@@2)(y2)(l)=0,   # IC 3 and 4 
          y1(l/2)=y2(l/2),                   # IC 5 
          (D@@1)(y1)(l/2)=(D@@1)(y2)(l/2),   # IC 6 
          (D@@2)(y1)(l/2)=(D@@2)(y2)(l/2),   # IC 7 
          (D@@3)(y1)(l/2)=(D@@3)(y2)(l/2)},  # IC 8 
          {y1(x),y2(x)}); 
 
                     3           2  2   17     3              4 
  {y2(x) = 1/48 q l x  - 1/16 q l  x  + --- q l  x - 1/384 q l , 
                                        384 
 
                        4             3            3 
        y1(x) = 1/24 q x  - 1/16 q l x  + 3/128 q l  x}