6
$\begingroup$

According to the documentation of the NDSolve Method -> "Shooting" option, it is possible to pass to FindRoot (which is called by this option) a single starting value per boundary condition, and the FindRoot Method and MaxIterations option values. However, according to the Details and Options section of its documentation, FindRoot, called directly, also accepts pairs of starting values:

FindRoot[lhs == rhs, {x, Subscript[x, 0], Subscript[x, 1]}] searches for a solution using Subscript[x, 0] and Subscript[x, 1] as the first two values of x, avoiding the use of derivatives.

or starting values with search bounds:

FindRoot[lhs == rhs, {x, Subscript[x, start], Subscript[x, min], Subscript[x, max]}] searches for a solution, stopping the search if x ever gets outside the range Subscript[x, min] to Subscript[x, max].

Is there a way to pass either of these alternative starting value specifications through the NDSolve Method -> "Shooting" option to FindRoot?

I recognize that it is possible to achieve this functionality by replacing NDSolve with Method -> "Shooting" by ParametricNDSolve in combination with FindRoot but would prefer to use some "secret" Shooting suboption, if it exists.

$\endgroup$
3
  • 1
    $\begingroup$ No, this is not possible with the present implementation. Only single starting values are accepted and passed through to FindRoot. $\endgroup$
    – ilian
    Mar 22, 2016 at 19:04
  • $\begingroup$ @ilian, I fear that you are right. The second capability, starting-values with search bounds, would be especially useful, because it would provide a way to bound the "Shooting" process away from singularities. See, for instance, my answer to 110692. What would be the best way to prevail upon Wolfram, Inc to add this capability in the next release? Thanks. $\endgroup$
    – bbgodfrey
    Mar 22, 2016 at 19:32
  • $\begingroup$ @bb, you could try e-mailing your suggestion/proposal to them, and hopefully it gets taken up. $\endgroup$ Mar 23, 2016 at 11:51

1 Answer 1

5
$\begingroup$

To make my comment into an answer,

No, this is not possible with the present implementation. Only single starting values are accepted and passed through to FindRoot.

Thank you for sending this suggestion for a possible improvement of the functionality, it will be reviewed by the appropriate developers.

$\endgroup$
1
  • 1
    $\begingroup$ Thanks for encouraging the NDSolve developers to considering this improvement. the "Shooting" Method is important, and there are many ways that it could be improved. $\endgroup$
    – bbgodfrey
    Apr 1, 2016 at 22:36

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.