       Re: 4th order DE, NDSolve no solution, why?

• To: mathgroup at smc.vnet.net
• Subject: [mg15694] Re: [mg15686] 4th order DE, NDSolve no solution, why?
• From: Jurgen Tischer <jtischer at col2.telecom.com.co>
• Date: Mon, 1 Feb 1999 14:54:14 -0500 (EST)
• References: <199901310806.DAA14387@smc.vnet.net>
• Sender: owner-wri-mathgroup at wolfram.com

```Doug,
first of all I recommend you read the examples of NDSolve in Help. There
realize that your problem is that you are dealing with a boundary value
problem, and this in principle has nothing to do with Method->
RungeKutta and so on. Last I recommend you just write your own code for
solving your problem, along the following lines: You rewrite your
problem as a initial value problem with a parameter (the initial value
you don't know). Then your boundary value at the endpoint becomes a
function of the parameter, and you solve for the parameter using
FindRoot. In a concrete case this shouldn't be very difficult, and as
an illustration I add the example I have for my students.

Shooting

We want to solve the following (generalized) boundary value problem:

{y'''[t] - t y'[t] + 2 y[t] == -10 + t, y[-1] == 3, y' == 4, y ==
3}

where -1 <= x <= 4

Proceed as follows: (I skipped the text in spain, but it should be
obvious what I'm doing here.)

In:= f1[a_, b_] := NDSolve[{y'''[t] - t*y'[t] + 2*y[t] == -10 + t,
y[-1] == 3, y'[-1] == a, y''[-1] == b}, y, {t, -1, 4}]

In:= f2[a_, b_] := With[{f = First[y /. f1[a, b]]}, {f', f}]

In:= sol=FindRoot[f2[a,b]=={4,3},{a,{0,1}},{b,{0,1}}]

Check the solution graphically

In:= Plot[Evaluate[y[t]/.f1[a/.sol,b/.sol]],{t,-1,4}]

Jurgen

Doug Webb wrote:
>
> Hello,
>   I'm trying to solve a 4th order diferential equation with NDSolve, and
> I get the following error, anyone know why? The equation is that for
> buckling of a column:
>
> GoverningEqn = modulus*inertia*w''''[x] + P[x]*w''[x] == 0
>
> with lower order equations to support it like so:
>
> Theta[x_] := -w'[x]
> M[x_] := -modulus*inertia*w''[x]
> V[x_] := -P[x]*w'[x] - modulus*inertia*w'''[x]
>
> where w[x] is the deflection, Theta[x] is the rotation, M[x] is the
> moment, and V[x] is the shear. I define the applied load P[x] as a
> simple constant in this case:
>
> P[x_] := 1
>
> modulus and inertia are also defined as constants for this first simple
> case:
>
> inertia = 5
> modulus = 100
>
> and make for simplicity this time, a column that is Pi units long: L =
> Pi
>
> Now, using the boundary conditions for a pinned-pinned column of w =
> w[L] = M = M[L] = 0, I try to solve using the following command:
>
> soln = NDSolve[ {GoverningEqn, w == 0, w[L] == 0, M == 0, M[L] ==
> 0},
>     w, {x, 0, L} ]
>
> I get the following errors:
>
> NDSolve::"unsol":
>     "Not possible to initiate boundary value problem with the chasing
> method"
> NDSolve::"unsol":
>     "Not possible to initiate boundary value problem with the chasing
> method"
>
> Why? What other method can I use? Everything I try with
> Method->"something" gives the same result, Runge-Kutta, Gear, etc.
> Anyone have any idea why I can't get a solution? DSolve runs, but
> returns an empty rule for the solution: {}
>
> Please, anyone that knows what I'm doing wrong, let me know. Thanks!
>
>         Doug
>         D_Webb at prodigy.net

```

• Prev by Date: Re: conditional pattern question
• Next by Date: Finding real part (newbie question)
• Previous by thread: Re: 4th order DE, NDSolve no solution, why?
• Next by thread: Re: 4th order DE, NDSolve no solution, why?