Semidefinite programming relaxation of linear dynamical system to find Lyapunov function
$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$?
optimization dynamical-systems linear-control semidefinite-programming
$endgroup$
add a comment |
$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$?
optimization dynamical-systems linear-control semidefinite-programming
$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
add a comment |
$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$?
optimization dynamical-systems linear-control semidefinite-programming
$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
optimization dynamical-systems linear-control semidefinite-programming
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
add a comment |
$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
add a comment |
1 Answer
1
active
oldest
votes
$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)
$endgroup$
add a comment |
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
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
$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)
$endgroup$
add a comment |
$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)
$endgroup$
add a comment |
$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)
$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)
answered Jan 18 at 8:58
Johan LöfbergJohan Löfberg
5,6301811
5,6301811
add a comment |
add a comment |
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.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
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
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
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
$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