MathGroup Archive 2005

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: FindRoot/NDSolve problem in VS5


Tony, Due to changes in FindRoot in version 5 you need  to add the
following line to your code

BC[s_?NumericQ] := ((y[x] /. eqsol[s][[1]] ) /. x -> 1)

Then the algorithm for the shooting method is

deq = y''[x] - x^2 y[x] == x + x^3;
eqsol[s_] := NDSolve[{deq, y[-1] == 0, y'[-1] == s}, y[x], {x, -1, 1}]
y[x] /. eqsol[1][[1]] /. x -> 1;
BC[s_?NumericQ] := ((y[x] /. eqsol[s][[1]] ) /. x -> 1)
ss = FindRoot[BC[s] == 0, {s, 0, 10}]
ysol[x_] = y[x] /. eqsol[s /. ss][[1]]

Out[5]=
{s -> 0.5197957482122294}

Out[6]=
InterpolatingFunction[][x]

Cheers,

Brian


  • Prev by Date: Re: Goto Line ?
  • Next by Date: Re: Goto Line ?
  • Previous by thread: FindRoot/NDSolve problem in VS5
  • Next by thread: FindRoot/NDSolve problem in VS5