|
594 | 594 | <tr class="memitem:a7401191d71f583717a795aeb2c689845"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdrake_1_1solvers_1_1_binding.html">Binding</a>< <a class="el" href="classdrake_1_1solvers_1_1_positive_semidefinite_constraint.html">PositiveSemidefiniteConstraint</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classdrake_1_1solvers_1_1_mathematical_program.html#a7401191d71f583717a795aeb2c689845">AddPrincipalSubmatrixIsPsdConstraint</a> (const Eigen::Ref< const <a class="el" href="namespacedrake_1_1solvers.html#ac04cfbe6b8d63ecb463fc087385ce061">MatrixXDecisionVariable</a> > &symmetric_matrix_var, const std::set< <a class="el" href="classint.html">int</a> > &minor_indices)</td></tr> |
595 | 595 | <tr class="memdesc:a7401191d71f583717a795aeb2c689845"><td class="mdescLeft"> </td><td class="mdescRight">Adds a constraint that the principal submatrix of a symmetric matrix composed of the indices in minor_indices is positive semidefinite. <a href="#a7401191d71f583717a795aeb2c689845">More...</a><br /></td></tr> |
596 | 596 | <tr class="separator:a7401191d71f583717a795aeb2c689845"><td class="memSeparator" colspan="2"> </td></tr> |
597 | | -<tr class="memitem:a7c8272bd2661933757cd8a0ae5c036b8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdrake_1_1solvers_1_1_binding.html">Binding</a>< <a class="el" href="classdrake_1_1solvers_1_1_positive_semidefinite_constraint.html">PositiveSemidefiniteConstraint</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classdrake_1_1solvers_1_1_mathematical_program.html#a7c8272bd2661933757cd8a0ae5c036b8">AddPrincipalSubmatrixIsPsdConstraint</a> (const Eigen::Ref< const <a class="el" href="namespacedrake.html#a28c58d881c60e96f48a7a4e32a699b95">MatrixX</a>< <a class="el" href="classdrake_1_1symbolic_1_1_expression.html">symbolic::Expression</a> >> &e, const std::set< <a class="el" href="classint.html">int</a> > &minor_indices)</td></tr> |
598 | | -<tr class="memdesc:a7c8272bd2661933757cd8a0ae5c036b8"><td class="mdescLeft"> </td><td class="mdescRight">Adds a constraint the that the principal submatrix of a symmetric matrix of expressions composed of the indices in minor_indices is positive semidefinite. <a href="#a7c8272bd2661933757cd8a0ae5c036b8">More...</a><br /></td></tr> |
599 | | -<tr class="separator:a7c8272bd2661933757cd8a0ae5c036b8"><td class="memSeparator" colspan="2"> </td></tr> |
| 597 | +<tr class="memitem:a99cba841165e2f839e0c16cbe47adc41"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdrake_1_1solvers_1_1_binding.html">Binding</a>< <a class="el" href="classdrake_1_1solvers_1_1_linear_matrix_inequality_constraint.html">LinearMatrixInequalityConstraint</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classdrake_1_1solvers_1_1_mathematical_program.html#a99cba841165e2f839e0c16cbe47adc41">AddPrincipalSubmatrixIsPsdConstraint</a> (const Eigen::Ref< const <a class="el" href="namespacedrake.html#a28c58d881c60e96f48a7a4e32a699b95">MatrixX</a>< <a class="el" href="classdrake_1_1symbolic_1_1_expression.html">symbolic::Expression</a> >> &e, const std::set< <a class="el" href="classint.html">int</a> > &minor_indices)</td></tr> |
| 598 | +<tr class="memdesc:a99cba841165e2f839e0c16cbe47adc41"><td class="mdescLeft"> </td><td class="mdescRight">Adds a constraint the that the principal submatrix of a symmetric matrix of expressions composed of the indices in minor_indices is positive semidefinite. <a href="#a99cba841165e2f839e0c16cbe47adc41">More...</a><br /></td></tr> |
| 599 | +<tr class="separator:a99cba841165e2f839e0c16cbe47adc41"><td class="memSeparator" colspan="2"> </td></tr> |
600 | 600 | <tr class="memitem:a204ca1afa3b89cbcacb88162fb4007d7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classdrake_1_1solvers_1_1_binding.html">Binding</a>< <a class="el" href="classdrake_1_1solvers_1_1_linear_matrix_inequality_constraint.html">LinearMatrixInequalityConstraint</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="classdrake_1_1solvers_1_1_mathematical_program.html#a204ca1afa3b89cbcacb88162fb4007d7">AddConstraint</a> (const <a class="el" href="classdrake_1_1solvers_1_1_binding.html">Binding</a>< <a class="el" href="classdrake_1_1solvers_1_1_linear_matrix_inequality_constraint.html">LinearMatrixInequalityConstraint</a> > &binding)</td></tr> |
601 | 601 | <tr class="memdesc:a204ca1afa3b89cbcacb88162fb4007d7"><td class="mdescLeft"> </td><td class="mdescRight">Adds a linear matrix inequality constraint to the program. <a href="#a204ca1afa3b89cbcacb88162fb4007d7">More...</a><br /></td></tr> |
602 | 602 | <tr class="separator:a204ca1afa3b89cbcacb88162fb4007d7"><td class="memSeparator" colspan="2"> </td></tr> |
@@ -4560,7 +4560,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a8f8ae66a7dc32a53fad92f34 |
4560 | 4560 | <p>For example, to add a constraint that </p><pre class="fragment">⌈x + 1 2x + 3 x+y⌉ |
4561 | 4561 | |2x+ 3 2 0| is positive semidefinite |
4562 | 4562 | ⌊x + y 0 x⌋ |
4563 | | -</pre><p> The user could call </p><div class="fragment"><div class="line">Matrix3<symbolic::Expression> e</div><div class="line">e << <a class="code" href="pixel__types_8h.html#a9336ebf25087d91c818ee6e9ec29f8c1">x</a>+1, 2*<a class="code" href="pixel__types_8h.html#a9336ebf25087d91c818ee6e9ec29f8c1">x</a>+3, <a class="code" href="pixel__types_8h.html#a9336ebf25087d91c818ee6e9ec29f8c1">x</a>+y,</div><div class="line"> 2*<a class="code" href="pixel__types_8h.html#a9336ebf25087d91c818ee6e9ec29f8c1">x</a>+3, 2, 0,</div><div class="line"> <a class="code" href="pixel__types_8h.html#a9336ebf25087d91c818ee6e9ec29f8c1">x</a>+y, 0, <a class="code" href="pixel__types_8h.html#a9336ebf25087d91c818ee6e9ec29f8c1">x</a>;</div><div class="line">prog.AddPositiveSemidefiniteConstraint(e);</div></div><!-- fragment --> |
| 4563 | +</pre><p> The user could call </p><div class="fragment"><div class="line">Matrix3<symbolic::Expression> e</div><div class="line">e << <a class="code" href="pixel__types_8h.html#a9336ebf25087d91c818ee6e9ec29f8c1">x</a>+1, 2*<a class="code" href="pixel__types_8h.html#a9336ebf25087d91c818ee6e9ec29f8c1">x</a>+3, <a class="code" href="pixel__types_8h.html#a9336ebf25087d91c818ee6e9ec29f8c1">x</a>+y,</div><div class="line"> 2*<a class="code" href="pixel__types_8h.html#a9336ebf25087d91c818ee6e9ec29f8c1">x</a>+3, 2, 0,</div><div class="line"> <a class="code" href="pixel__types_8h.html#a9336ebf25087d91c818ee6e9ec29f8c1">x</a>+y, 0, <a class="code" href="pixel__types_8h.html#a9336ebf25087d91c818ee6e9ec29f8c1">x</a>;</div><div class="line">prog.AddPositiveSemidefiniteConstraint(e);</div></div><!-- fragment --> <dl class="section note"><dt>Note</dt><dd>This function will add additional variables and linear equality constraints. Consider calling AddLinearMatrixInequalityConstraint(e), which doesn't introduce new variables or linear equality constraints. </dd></dl> |
| 4564 | + |
4564 | 4565 | </div> |
4565 | 4566 | </div> |
4566 | 4567 | <a id="a7401191d71f583717a795aeb2c689845"></a> |
@@ -4599,18 +4600,18 @@ <h2 class="memtitle"><span class="permalink"><a href="#a7401191d71f583717a795aeb |
4599 | 4600 | </table> |
4600 | 4601 | </dd> |
4601 | 4602 | </dl> |
4602 | | -<dl class="section see"><dt>See also</dt><dd><a class="el" href="classdrake_1_1solvers_1_1_mathematical_program.html#a4d8e0acb745cee5f6b8bb25248511406" title="Adds a positive semidefinite constraint on a symmetric matrix.">AddPositiveSemidefiniteConstraint</a>. </dd></dl> |
| 4603 | +<dl class="section see"><dt>See also</dt><dd><a class="el" href="classdrake_1_1solvers_1_1_mathematical_program.html#a4d8e0acb745cee5f6b8bb25248511406" title="Adds a positive semidefinite constraint on a symmetric matrix.">AddPositiveSemidefiniteConstraint</a> </dd></dl> |
4603 | 4604 |
|
4604 | 4605 | </div> |
4605 | 4606 | </div> |
4606 | | -<a id="a7c8272bd2661933757cd8a0ae5c036b8"></a> |
4607 | | -<h2 class="memtitle"><span class="permalink"><a href="#a7c8272bd2661933757cd8a0ae5c036b8">◆ </a></span>AddPrincipalSubmatrixIsPsdConstraint() <span class="overload">[2/2]</span></h2> |
| 4607 | +<a id="a99cba841165e2f839e0c16cbe47adc41"></a> |
| 4608 | +<h2 class="memtitle"><span class="permalink"><a href="#a99cba841165e2f839e0c16cbe47adc41">◆ </a></span>AddPrincipalSubmatrixIsPsdConstraint() <span class="overload">[2/2]</span></h2> |
4608 | 4609 |
|
4609 | 4610 | <div class="memitem"> |
4610 | 4611 | <div class="memproto"> |
4611 | 4612 | <table class="memname"> |
4612 | 4613 | <tr> |
4613 | | - <td class="memname"><a class="el" href="classdrake_1_1solvers_1_1_binding.html">Binding</a><<a class="el" href="classdrake_1_1solvers_1_1_positive_semidefinite_constraint.html">PositiveSemidefiniteConstraint</a>> AddPrincipalSubmatrixIsPsdConstraint </td> |
| 4614 | + <td class="memname"><a class="el" href="classdrake_1_1solvers_1_1_binding.html">Binding</a><<a class="el" href="classdrake_1_1solvers_1_1_linear_matrix_inequality_constraint.html">LinearMatrixInequalityConstraint</a>> AddPrincipalSubmatrixIsPsdConstraint </td> |
4614 | 4615 | <td>(</td> |
4615 | 4616 | <td class="paramtype">const Eigen::Ref< const <a class="el" href="namespacedrake.html#a28c58d881c60e96f48a7a4e32a699b95">MatrixX</a>< <a class="el" href="classdrake_1_1symbolic_1_1_expression.html">symbolic::Expression</a> >> & </td> |
4616 | 4617 | <td class="paramname"><em>e</em>, </td> |
@@ -4639,7 +4640,8 @@ <h2 class="memtitle"><span class="permalink"><a href="#a7c8272bd2661933757cd8a0a |
4639 | 4640 | </table> |
4640 | 4641 | </dd> |
4641 | 4642 | </dl> |
4642 | | -<dl class="section see"><dt>See also</dt><dd><a class="el" href="classdrake_1_1solvers_1_1_mathematical_program.html#a4d8e0acb745cee5f6b8bb25248511406" title="Adds a positive semidefinite constraint on a symmetric matrix.">AddPositiveSemidefiniteConstraint</a>. </dd></dl> |
| 4643 | +<dl class="section see"><dt>See also</dt><dd><a class="el" href="classdrake_1_1solvers_1_1_mathematical_program.html#a0a4cde582b9ec69ee068837000c1aff4" title="Adds a linear matrix inequality constraint to the program.">AddLinearMatrixInequalityConstraint</a>. </dd></dl> |
| 4644 | +<dl class="section note"><dt>Note</dt><dd>the return type is Binding<LinearMatrixInequalityConstraint>, different from the overloaded function above which returns Binding<PositiveSemidefiniteConstraint>. We impose the constraint as an LMI so as to add fewer additional variables and constraints. </dd></dl> |
4643 | 4645 |
|
4644 | 4646 | </div> |
4645 | 4647 | </div> |
|
0 commit comments