What numerical method does Matlab's bvp4c use?












0












$begingroup$


Can anyone shed some light on how matlab's bvp4c function works? I've looked online but I haven't found any specifics on the method it uses.



With that question asked, what are some different ways on solving bvp problems. I am aware of the shooting method, but for my problem I know exactly what my initial and end conditions are, I'm more interested in what happens in between. And unless I understand the method wrong, the goal is to figure out what your initial conditions are with the shooting method.



For my particular problem "4th order, non-linear, variable coefficient, homogeneous ODE. And by 4th order, I'm referring to the highest derivative" I'm having trouble figuring out a way to solve this problem.



Any help useful information would be greatly appreciated.










share|cite|improve this question











$endgroup$












  • $begingroup$
    What do you mean "how it works"? How to use it and interpret the results you get or how to try to code your own method giving similar results? For the use of the python equivalent with a 4th order ODE see math.stackexchange.com/q/2971225/115115
    $endgroup$
    – LutzL
    Jan 2 at 21:36










  • $begingroup$
    What numerical method does it use.
    $endgroup$
    – tenichols
    Jan 2 at 21:40






  • 1




    $begingroup$
    Directly from the documentation page: Algorithms -- bvp4c is a finite difference code that implements the three-stage Lobatto IIIa formula. This is a collocation formula and the collocation polynomial provides a $C^1$-continuous solution that is fourth-order accurate uniformly in $[a,b]$. Mesh selection and error control are based on the residual of the continuous solution.
    $endgroup$
    – LutzL
    Jan 2 at 21:52












  • $begingroup$
    What is a "non-linear ... homogeneous ODE"? Do you mean that it has a zero solution, or that there is a certain scaling invariance or ...?
    $endgroup$
    – LutzL
    Jan 2 at 21:55
















0












$begingroup$


Can anyone shed some light on how matlab's bvp4c function works? I've looked online but I haven't found any specifics on the method it uses.



With that question asked, what are some different ways on solving bvp problems. I am aware of the shooting method, but for my problem I know exactly what my initial and end conditions are, I'm more interested in what happens in between. And unless I understand the method wrong, the goal is to figure out what your initial conditions are with the shooting method.



For my particular problem "4th order, non-linear, variable coefficient, homogeneous ODE. And by 4th order, I'm referring to the highest derivative" I'm having trouble figuring out a way to solve this problem.



Any help useful information would be greatly appreciated.










share|cite|improve this question











$endgroup$












  • $begingroup$
    What do you mean "how it works"? How to use it and interpret the results you get or how to try to code your own method giving similar results? For the use of the python equivalent with a 4th order ODE see math.stackexchange.com/q/2971225/115115
    $endgroup$
    – LutzL
    Jan 2 at 21:36










  • $begingroup$
    What numerical method does it use.
    $endgroup$
    – tenichols
    Jan 2 at 21:40






  • 1




    $begingroup$
    Directly from the documentation page: Algorithms -- bvp4c is a finite difference code that implements the three-stage Lobatto IIIa formula. This is a collocation formula and the collocation polynomial provides a $C^1$-continuous solution that is fourth-order accurate uniformly in $[a,b]$. Mesh selection and error control are based on the residual of the continuous solution.
    $endgroup$
    – LutzL
    Jan 2 at 21:52












  • $begingroup$
    What is a "non-linear ... homogeneous ODE"? Do you mean that it has a zero solution, or that there is a certain scaling invariance or ...?
    $endgroup$
    – LutzL
    Jan 2 at 21:55














0












0








0





$begingroup$


Can anyone shed some light on how matlab's bvp4c function works? I've looked online but I haven't found any specifics on the method it uses.



With that question asked, what are some different ways on solving bvp problems. I am aware of the shooting method, but for my problem I know exactly what my initial and end conditions are, I'm more interested in what happens in between. And unless I understand the method wrong, the goal is to figure out what your initial conditions are with the shooting method.



For my particular problem "4th order, non-linear, variable coefficient, homogeneous ODE. And by 4th order, I'm referring to the highest derivative" I'm having trouble figuring out a way to solve this problem.



Any help useful information would be greatly appreciated.










share|cite|improve this question











$endgroup$




Can anyone shed some light on how matlab's bvp4c function works? I've looked online but I haven't found any specifics on the method it uses.



With that question asked, what are some different ways on solving bvp problems. I am aware of the shooting method, but for my problem I know exactly what my initial and end conditions are, I'm more interested in what happens in between. And unless I understand the method wrong, the goal is to figure out what your initial conditions are with the shooting method.



For my particular problem "4th order, non-linear, variable coefficient, homogeneous ODE. And by 4th order, I'm referring to the highest derivative" I'm having trouble figuring out a way to solve this problem.



Any help useful information would be greatly appreciated.







ordinary-differential-equations numerical-methods matlab boundary-value-problem






share|cite|improve this question















share|cite|improve this question













share|cite|improve this question




share|cite|improve this question








edited Jan 2 at 21:39







tenichols

















asked Jan 2 at 20:48









tenicholstenichols

83




83












  • $begingroup$
    What do you mean "how it works"? How to use it and interpret the results you get or how to try to code your own method giving similar results? For the use of the python equivalent with a 4th order ODE see math.stackexchange.com/q/2971225/115115
    $endgroup$
    – LutzL
    Jan 2 at 21:36










  • $begingroup$
    What numerical method does it use.
    $endgroup$
    – tenichols
    Jan 2 at 21:40






  • 1




    $begingroup$
    Directly from the documentation page: Algorithms -- bvp4c is a finite difference code that implements the three-stage Lobatto IIIa formula. This is a collocation formula and the collocation polynomial provides a $C^1$-continuous solution that is fourth-order accurate uniformly in $[a,b]$. Mesh selection and error control are based on the residual of the continuous solution.
    $endgroup$
    – LutzL
    Jan 2 at 21:52












  • $begingroup$
    What is a "non-linear ... homogeneous ODE"? Do you mean that it has a zero solution, or that there is a certain scaling invariance or ...?
    $endgroup$
    – LutzL
    Jan 2 at 21:55


















  • $begingroup$
    What do you mean "how it works"? How to use it and interpret the results you get or how to try to code your own method giving similar results? For the use of the python equivalent with a 4th order ODE see math.stackexchange.com/q/2971225/115115
    $endgroup$
    – LutzL
    Jan 2 at 21:36










  • $begingroup$
    What numerical method does it use.
    $endgroup$
    – tenichols
    Jan 2 at 21:40






  • 1




    $begingroup$
    Directly from the documentation page: Algorithms -- bvp4c is a finite difference code that implements the three-stage Lobatto IIIa formula. This is a collocation formula and the collocation polynomial provides a $C^1$-continuous solution that is fourth-order accurate uniformly in $[a,b]$. Mesh selection and error control are based on the residual of the continuous solution.
    $endgroup$
    – LutzL
    Jan 2 at 21:52












  • $begingroup$
    What is a "non-linear ... homogeneous ODE"? Do you mean that it has a zero solution, or that there is a certain scaling invariance or ...?
    $endgroup$
    – LutzL
    Jan 2 at 21:55
















$begingroup$
What do you mean "how it works"? How to use it and interpret the results you get or how to try to code your own method giving similar results? For the use of the python equivalent with a 4th order ODE see math.stackexchange.com/q/2971225/115115
$endgroup$
– LutzL
Jan 2 at 21:36




$begingroup$
What do you mean "how it works"? How to use it and interpret the results you get or how to try to code your own method giving similar results? For the use of the python equivalent with a 4th order ODE see math.stackexchange.com/q/2971225/115115
$endgroup$
– LutzL
Jan 2 at 21:36












$begingroup$
What numerical method does it use.
$endgroup$
– tenichols
Jan 2 at 21:40




$begingroup$
What numerical method does it use.
$endgroup$
– tenichols
Jan 2 at 21:40




1




1




$begingroup$
Directly from the documentation page: Algorithms -- bvp4c is a finite difference code that implements the three-stage Lobatto IIIa formula. This is a collocation formula and the collocation polynomial provides a $C^1$-continuous solution that is fourth-order accurate uniformly in $[a,b]$. Mesh selection and error control are based on the residual of the continuous solution.
$endgroup$
– LutzL
Jan 2 at 21:52






$begingroup$
Directly from the documentation page: Algorithms -- bvp4c is a finite difference code that implements the three-stage Lobatto IIIa formula. This is a collocation formula and the collocation polynomial provides a $C^1$-continuous solution that is fourth-order accurate uniformly in $[a,b]$. Mesh selection and error control are based on the residual of the continuous solution.
$endgroup$
– LutzL
Jan 2 at 21:52














$begingroup$
What is a "non-linear ... homogeneous ODE"? Do you mean that it has a zero solution, or that there is a certain scaling invariance or ...?
$endgroup$
– LutzL
Jan 2 at 21:55




$begingroup$
What is a "non-linear ... homogeneous ODE"? Do you mean that it has a zero solution, or that there is a certain scaling invariance or ...?
$endgroup$
– LutzL
Jan 2 at 21:55










1 Answer
1






active

oldest

votes


















3












$begingroup$

You ask how the algorithm works, see here, especially




bvp4c is a finite difference code that implements the three-stage Lobatto IIIa formula. This is a collocation formula and the collocation polynomial provides a C1-continuous solution that is fourth-order accurate uniformly in [a,b]. Mesh selection and error control are based on the residual of the continuous solution.




You also say that you don't want to use the shooting method since this is for 'finding the initial conditions'. This is partially correct, but misses the point. The approach is to have parameterized initial conditions at $a$, in addition to the boundary conditions there, use a standard ODE solver to solve across the domain, and then use root finding to find the appropriate parameter values to enforce the boundary conditions at $b$. These can then be used to find the solution across the domain. The result of this is that a solver for IVPs can be turned into a solver for BVPs by combining with a root finder. This isn't necessary the most efficient or accurate way to solve the problem, but all the components are well understood.






share|cite|improve this answer









$endgroup$














    Your Answer





    StackExchange.ifUsing("editor", function () {
    return StackExchange.using("mathjaxEditing", function () {
    StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
    StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
    });
    });
    }, "mathjax-editing");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "69"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    noCode: true, onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3059957%2fwhat-numerical-method-does-matlabs-bvp4c-use%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    3












    $begingroup$

    You ask how the algorithm works, see here, especially




    bvp4c is a finite difference code that implements the three-stage Lobatto IIIa formula. This is a collocation formula and the collocation polynomial provides a C1-continuous solution that is fourth-order accurate uniformly in [a,b]. Mesh selection and error control are based on the residual of the continuous solution.




    You also say that you don't want to use the shooting method since this is for 'finding the initial conditions'. This is partially correct, but misses the point. The approach is to have parameterized initial conditions at $a$, in addition to the boundary conditions there, use a standard ODE solver to solve across the domain, and then use root finding to find the appropriate parameter values to enforce the boundary conditions at $b$. These can then be used to find the solution across the domain. The result of this is that a solver for IVPs can be turned into a solver for BVPs by combining with a root finder. This isn't necessary the most efficient or accurate way to solve the problem, but all the components are well understood.






    share|cite|improve this answer









    $endgroup$


















      3












      $begingroup$

      You ask how the algorithm works, see here, especially




      bvp4c is a finite difference code that implements the three-stage Lobatto IIIa formula. This is a collocation formula and the collocation polynomial provides a C1-continuous solution that is fourth-order accurate uniformly in [a,b]. Mesh selection and error control are based on the residual of the continuous solution.




      You also say that you don't want to use the shooting method since this is for 'finding the initial conditions'. This is partially correct, but misses the point. The approach is to have parameterized initial conditions at $a$, in addition to the boundary conditions there, use a standard ODE solver to solve across the domain, and then use root finding to find the appropriate parameter values to enforce the boundary conditions at $b$. These can then be used to find the solution across the domain. The result of this is that a solver for IVPs can be turned into a solver for BVPs by combining with a root finder. This isn't necessary the most efficient or accurate way to solve the problem, but all the components are well understood.






      share|cite|improve this answer









      $endgroup$
















        3












        3








        3





        $begingroup$

        You ask how the algorithm works, see here, especially




        bvp4c is a finite difference code that implements the three-stage Lobatto IIIa formula. This is a collocation formula and the collocation polynomial provides a C1-continuous solution that is fourth-order accurate uniformly in [a,b]. Mesh selection and error control are based on the residual of the continuous solution.




        You also say that you don't want to use the shooting method since this is for 'finding the initial conditions'. This is partially correct, but misses the point. The approach is to have parameterized initial conditions at $a$, in addition to the boundary conditions there, use a standard ODE solver to solve across the domain, and then use root finding to find the appropriate parameter values to enforce the boundary conditions at $b$. These can then be used to find the solution across the domain. The result of this is that a solver for IVPs can be turned into a solver for BVPs by combining with a root finder. This isn't necessary the most efficient or accurate way to solve the problem, but all the components are well understood.






        share|cite|improve this answer









        $endgroup$



        You ask how the algorithm works, see here, especially




        bvp4c is a finite difference code that implements the three-stage Lobatto IIIa formula. This is a collocation formula and the collocation polynomial provides a C1-continuous solution that is fourth-order accurate uniformly in [a,b]. Mesh selection and error control are based on the residual of the continuous solution.




        You also say that you don't want to use the shooting method since this is for 'finding the initial conditions'. This is partially correct, but misses the point. The approach is to have parameterized initial conditions at $a$, in addition to the boundary conditions there, use a standard ODE solver to solve across the domain, and then use root finding to find the appropriate parameter values to enforce the boundary conditions at $b$. These can then be used to find the solution across the domain. The result of this is that a solver for IVPs can be turned into a solver for BVPs by combining with a root finder. This isn't necessary the most efficient or accurate way to solve the problem, but all the components are well understood.







        share|cite|improve this answer












        share|cite|improve this answer



        share|cite|improve this answer










        answered Jan 2 at 21:56









        EddyEddy

        959612




        959612






























            draft saved

            draft discarded




















































            Thanks for contributing an answer to Mathematics Stack Exchange!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            Use MathJax to format equations. MathJax reference.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3059957%2fwhat-numerical-method-does-matlabs-bvp4c-use%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Wiesbaden

            Marschland

            Dieringhausen