       Can FindMinimum solve boundary value problems?

• To: mathgroup at smc.vnet.net
• Subject: [mg23421] Can FindMinimum solve boundary value problems?
• From: Hans-Peter Kunzle <HP.Kunzle at UAlberta.ca>
• Date: Sun, 7 May 2000 21:18:06 -0400 (EDT)
• Organization: University of Alberta
• Sender: owner-wri-mathgroup at wolfram.com

Hi,

I am trying to use 'FindMinimum' to solve a complicated
boundary value problem using the shooting method.

As a simple example I made up a function that generates
values from some parameters using NDSolve:

sh[b_List]:= Module[{f,x,y},
f = y/.Flatten[NDSolve[
{y''[x]+b[]^2 x y[x]==0,y==0,y'==b[]},y,{x,0,1}
]];
Abs[f-2]
];

and tried to feed it into the FindMinimum function using

<<LinearAlgebra`MatrixManipulation`

fmSh[fct_,par0_] := Module[
{ par=ToExpression["a"], l=Length[par0], vars },
vars = Transpose[AppendColumns[{Array[par,l]},{par0,1.01*par0}]];
FindMinimum[ Evaluate[sh[Array[par,l]]], Evaluate[Sequence@@vars] ]
];

I get, for example,

In:=  sh[{5.3,-10.7869}]
Out:= 4.355775244491156*10^(-6)

So, this is probably close to a minimum.
But my function 'fmSh' is quite unable to find these parameter values:

In:=  fmSh[sh,{5.2,-10.8}]

produces error messages,

NDSolve::ndinn: Initial condition 1. a[2.] is not a number.

ReplaceAll::reps: {NDSolve[<<1>>]} is neither a list of
replacement rules nor a valid dispatch table, and so
cannot be used for replacing.

Function::flpar: Parameter specification a,a} in
Function[{a,a}, {(y\$53 /.NDSolve[<<1>>))}]
should be a symbol or a list of symbols.

etc.

and returns

FindMinimum[
Abs[-2+(y\$1/.NDSolve[{x\$1 a^2 y\$1[x\$1]''[x\$1]==0,
y\$1==0,y\$1'==a},y\$1,{x\$1,0,1}])],
{a,5.2,5.252},{a,-10.8,-10.908}]

The problem seems to be that NDSolve does not get
numerical values for its initial conditions.

Is there a way to pass the parameters so that NDSolve

I have tried to put 'Evaluate's inside the NDSolve in the
function 'sh', but this did not help.

Any comments will be appreciated.

Hans

--
H.P. Künzle                    | Office: (780)492-3798,492-3396
Dept. of Mathematical Sciences | Fax:    (780)492-6826
University of Alberta          | E-mail: HP.Kunzle at UAlberta.ca
Edmonton, Canada T6G 2G1 | WWW:http://www.math.ualberta.ca/~hpk

• Prev by Date: Re: Symbols & Legend Fonts in MultipleListPlot...
• Next by Date: Re: [Q] Solve?
• Previous by thread: Re: Modifying Fit[] using SingularValues
• Next by thread: contours