Semidefinite programming relaxation of linear dynamical system to find Lyapunov function












1












$begingroup$


I am considering a linear dynamical system of the form



$$x_{k+1} = Ax_k$$



I know that when we have stability (that is, that $x_k$ goes to $0$ as $k$ approaches infinity), there exists an $n$-by-$n$ matrix $P$ such that $P$ is positive-definite and $P-A^TPA$ is positive definite; that is, there exists a Lyapunov function of the form



$$V(x) = x^T P , x$$



Suppose that we are given $A$, and I want to find the matrix $P$. I know that this problem is a semidefinite programming relaxation given the constraints on $P$, but I am unsure how to define this SDP in terms of writing the objective. How would I define the SDP to solve for $P$?










share|cite|improve this question











$endgroup$












  • $begingroup$
    I don't think an objective is necessary, you're just looking for a feasible solution for $P$. In which case, you can just choose the objective to be anything sensible, like $min_P e^T Pe$.
    $endgroup$
    – nathan.j.mcdougall
    Jan 17 at 20:00








  • 1




    $begingroup$
    You're right - thank you. Simply plugged null objective into CVX and it ran fine.
    $endgroup$
    – Ronald G
    Jan 17 at 20:25
















1












$begingroup$


I am considering a linear dynamical system of the form



$$x_{k+1} = Ax_k$$



I know that when we have stability (that is, that $x_k$ goes to $0$ as $k$ approaches infinity), there exists an $n$-by-$n$ matrix $P$ such that $P$ is positive-definite and $P-A^TPA$ is positive definite; that is, there exists a Lyapunov function of the form



$$V(x) = x^T P , x$$



Suppose that we are given $A$, and I want to find the matrix $P$. I know that this problem is a semidefinite programming relaxation given the constraints on $P$, but I am unsure how to define this SDP in terms of writing the objective. How would I define the SDP to solve for $P$?










share|cite|improve this question











$endgroup$












  • $begingroup$
    I don't think an objective is necessary, you're just looking for a feasible solution for $P$. In which case, you can just choose the objective to be anything sensible, like $min_P e^T Pe$.
    $endgroup$
    – nathan.j.mcdougall
    Jan 17 at 20:00








  • 1




    $begingroup$
    You're right - thank you. Simply plugged null objective into CVX and it ran fine.
    $endgroup$
    – Ronald G
    Jan 17 at 20:25














1












1








1





$begingroup$


I am considering a linear dynamical system of the form



$$x_{k+1} = Ax_k$$



I know that when we have stability (that is, that $x_k$ goes to $0$ as $k$ approaches infinity), there exists an $n$-by-$n$ matrix $P$ such that $P$ is positive-definite and $P-A^TPA$ is positive definite; that is, there exists a Lyapunov function of the form



$$V(x) = x^T P , x$$



Suppose that we are given $A$, and I want to find the matrix $P$. I know that this problem is a semidefinite programming relaxation given the constraints on $P$, but I am unsure how to define this SDP in terms of writing the objective. How would I define the SDP to solve for $P$?










share|cite|improve this question











$endgroup$




I am considering a linear dynamical system of the form



$$x_{k+1} = Ax_k$$



I know that when we have stability (that is, that $x_k$ goes to $0$ as $k$ approaches infinity), there exists an $n$-by-$n$ matrix $P$ such that $P$ is positive-definite and $P-A^TPA$ is positive definite; that is, there exists a Lyapunov function of the form



$$V(x) = x^T P , x$$



Suppose that we are given $A$, and I want to find the matrix $P$. I know that this problem is a semidefinite programming relaxation given the constraints on $P$, but I am unsure how to define this SDP in terms of writing the objective. How would I define the SDP to solve for $P$?







optimization dynamical-systems linear-control semidefinite-programming






share|cite|improve this question















share|cite|improve this question













share|cite|improve this question




share|cite|improve this question








edited Jan 19 at 8:32









Rodrigo de Azevedo

13.1k41961




13.1k41961










asked Jan 17 at 19:55









Ronald GRonald G

61




61












  • $begingroup$
    I don't think an objective is necessary, you're just looking for a feasible solution for $P$. In which case, you can just choose the objective to be anything sensible, like $min_P e^T Pe$.
    $endgroup$
    – nathan.j.mcdougall
    Jan 17 at 20:00








  • 1




    $begingroup$
    You're right - thank you. Simply plugged null objective into CVX and it ran fine.
    $endgroup$
    – Ronald G
    Jan 17 at 20:25


















  • $begingroup$
    I don't think an objective is necessary, you're just looking for a feasible solution for $P$. In which case, you can just choose the objective to be anything sensible, like $min_P e^T Pe$.
    $endgroup$
    – nathan.j.mcdougall
    Jan 17 at 20:00








  • 1




    $begingroup$
    You're right - thank you. Simply plugged null objective into CVX and it ran fine.
    $endgroup$
    – Ronald G
    Jan 17 at 20:25
















$begingroup$
I don't think an objective is necessary, you're just looking for a feasible solution for $P$. In which case, you can just choose the objective to be anything sensible, like $min_P e^T Pe$.
$endgroup$
– nathan.j.mcdougall
Jan 17 at 20:00






$begingroup$
I don't think an objective is necessary, you're just looking for a feasible solution for $P$. In which case, you can just choose the objective to be anything sensible, like $min_P e^T Pe$.
$endgroup$
– nathan.j.mcdougall
Jan 17 at 20:00






1




1




$begingroup$
You're right - thank you. Simply plugged null objective into CVX and it ran fine.
$endgroup$
– Ronald G
Jan 17 at 20:25




$begingroup$
You're right - thank you. Simply plugged null objective into CVX and it ran fine.
$endgroup$
– Ronald G
Jan 17 at 20:25










1 Answer
1






active

oldest

votes


















2












$begingroup$

It is not a semidefinite relaxation, it is a semidefinite program. Relaxation means outer approximation, but this is an exact model.



As mentioned, you can plug this feasibility problem into several available packages such as CVX or YALMIP. Here's an example in YALMIP (continuous time but the change you have to do is trivial)
https://yalmip.github.io/tutorial/semidefiniteprogramming/



Of course, if you don't have any more constraints, there is no need to pose the problem as an optimization problem, but you can simply solve the equation using more efficient numerical methods (such a dlyap in MATLAB)






share|cite|improve this answer









$endgroup$














    Your Answer








    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%2f3077431%2fsemidefinite-programming-relaxation-of-linear-dynamical-system-to-find-lyapunov%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









    2












    $begingroup$

    It is not a semidefinite relaxation, it is a semidefinite program. Relaxation means outer approximation, but this is an exact model.



    As mentioned, you can plug this feasibility problem into several available packages such as CVX or YALMIP. Here's an example in YALMIP (continuous time but the change you have to do is trivial)
    https://yalmip.github.io/tutorial/semidefiniteprogramming/



    Of course, if you don't have any more constraints, there is no need to pose the problem as an optimization problem, but you can simply solve the equation using more efficient numerical methods (such a dlyap in MATLAB)






    share|cite|improve this answer









    $endgroup$


















      2












      $begingroup$

      It is not a semidefinite relaxation, it is a semidefinite program. Relaxation means outer approximation, but this is an exact model.



      As mentioned, you can plug this feasibility problem into several available packages such as CVX or YALMIP. Here's an example in YALMIP (continuous time but the change you have to do is trivial)
      https://yalmip.github.io/tutorial/semidefiniteprogramming/



      Of course, if you don't have any more constraints, there is no need to pose the problem as an optimization problem, but you can simply solve the equation using more efficient numerical methods (such a dlyap in MATLAB)






      share|cite|improve this answer









      $endgroup$
















        2












        2








        2





        $begingroup$

        It is not a semidefinite relaxation, it is a semidefinite program. Relaxation means outer approximation, but this is an exact model.



        As mentioned, you can plug this feasibility problem into several available packages such as CVX or YALMIP. Here's an example in YALMIP (continuous time but the change you have to do is trivial)
        https://yalmip.github.io/tutorial/semidefiniteprogramming/



        Of course, if you don't have any more constraints, there is no need to pose the problem as an optimization problem, but you can simply solve the equation using more efficient numerical methods (such a dlyap in MATLAB)






        share|cite|improve this answer









        $endgroup$



        It is not a semidefinite relaxation, it is a semidefinite program. Relaxation means outer approximation, but this is an exact model.



        As mentioned, you can plug this feasibility problem into several available packages such as CVX or YALMIP. Here's an example in YALMIP (continuous time but the change you have to do is trivial)
        https://yalmip.github.io/tutorial/semidefiniteprogramming/



        Of course, if you don't have any more constraints, there is no need to pose the problem as an optimization problem, but you can simply solve the equation using more efficient numerical methods (such a dlyap in MATLAB)







        share|cite|improve this answer












        share|cite|improve this answer



        share|cite|improve this answer










        answered Jan 18 at 8:58









        Johan LöfbergJohan Löfberg

        5,6301811




        5,6301811






























            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%2f3077431%2fsemidefinite-programming-relaxation-of-linear-dynamical-system-to-find-lyapunov%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

            Questions related to Moebius Transform of Characteristic Function of the Primes

            List of scandals in India

            Can not write log (Is /dev/pts mounted?) - openpty in Ubuntu-on-Windows?