📄 faq.htm
字号:
<p style="margin-bottom: 0; margin-top:0">Two options. The first one is to code your own
script based on a simple bisection. This is illustrated in
the example <code>decayex.m</code>. An alternative is to install the BMI solver
<a href="solvers.htm#penbmi">PENBMI</a>. This solver solves GEVP problems
globally.</p>
</td>
</tr>
</table>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<table border="0" cellpadding="0" style="border-collapse: collapse" width="100%" id="table6">
<tr>
<td width="26" valign="top">
<p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF">
<a name="gpconvex"></a>Q:</font></b></td>
<td>
<p style="margin-bottom: 0; margin-top:0"><b>I get strange
results when I use the option <code>'removeequalities'</code></b></td>
</tr>
<tr>
<td width="26" valign="top">
<p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td>
<td>
<p style="margin-bottom: 0; margin-top:0">When equality constraints are
removed by YALMIP by deriving a reduced basis (<code>'removeequalities'</code> set to <b>1</b> or <b>2</b>) dual variables will not be recovered. This may
lead to further complications in some cases. If you are solving a problem
that you have derived by using the function <a href="reference.htm#dualize">dualize</a>, you original variables
will not be computed, since they are computed from the missing duals.
Another case is when you solve a linearly parameterized sum of squares problem using
a kernel model (<code>'sos.model'</code> set to <b>0</b> or <b>1</b>). The
parameterization variables are computed from the dual variables, hence failure will
occur. To summarize, do not use the option <code>'removeequalities'</code> in sum-of-squares </b>
problems or dualized problems, unless you really now what you are doing.</p>
</td>
</tr>
</table>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<table border="0" cellpadding="0" style="border-collapse: collapse" width="100%" id="table7">
<tr>
<td width="26" valign="top">
<p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF">
<a name="convexity"></a>Q:</font></b></td>
<td>
<p style="margin-bottom: 0; margin-top:0"><b>YALMIP complains about
failing in convexity propagation</b></td>
</tr>
<tr>
<td width="26" valign="top">
<p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td>
<td>
<p style="margin-bottom: 0; margin-top:0">This means that you have used so
called <a href="extoperators.htm">nonlinear operators</a> to model your
problem, and most likely you have defined a problem which cannot be
represented using standard convex constraints. If you know that your model
is convex, try to model the nonlinear terms by hand to see if you actually are
correct (the convexity analysis is conservative, although in most cases
failure in the convexity propagation is due to actual nonconvexity.</p>
</td>
</tr>
</table>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<table border="0" cellpadding="0" style="border-collapse: collapse" width="100%">
<tr>
<td width="26" valign="top">
<p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF">
<a name="removeequalities"></a>Q:</font></b></td>
<td>
<p style="margin-bottom: 0; margin-top:0"><b>I have problems solving a
geometric program.</b></td>
</tr>
<tr>
<td width="26" valign="top">
<p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td>
<td>
<p style="margin-bottom: 0; margin-top:0">To begin with, you need a solver
that can solve geometric programs (YALMIP currently supports
<a href="solvers.htm#gpposy">GPPOSY</a>,
<a href="solvers.htm#mosek">Mosek</a> and <a href="solvers.htm#fmincon">
fmincon</a>). If you still have problems, the reason may be that YALMIP
converts convex quadratic constraints to seconds order constraints. This
should not be done in geometric programs (it is a known bug). To avoid this,
set the option <code>'convertconvexquad'</code> to
0. Another reason is that runs into problem during the expansion of
<a href="extoperators.htm">nonlinear operators</a>. To avoid this issue, explicitly
tell YALMIP that the
problem is a geometric problem by specifying the solver to <code>'gpposy'</code>, <code>'mosek-geometric'</code>
or <code>'fmincon-geometric'</code>.</p>
</td>
</tr>
</table>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<hr noShade SIZE="1" color="#FF0000">
<table border="0" cellpadding="0" style="border-collapse: collapse" width="100%" id="table11">
<tr>
<td width="26" valign="top">
<p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF">
<a name="subasgn"></a>Q:</font></b></td>
<td>
<p style="margin-bottom: 0; margin-top:0"><b>I can not write <code>X =
eye(2); X(1,1)=sdpvar(1,1)</code>!</b></td>
</tr>
<tr>
<td width="26" valign="top">
<p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td>
<td>
<p style="margin-bottom: 0; margin-top:0">This is because of the way the
object orientation works in MATLAB. There is currently no way to support
this feature (without overloading the @double class, which can cause
instability.)</p>
</td>
</tr>
</table>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<table border="0" cellpadding="0" style="border-collapse: collapse" width="100%" id="table10">
<tr>
<td width="26" valign="top">
<p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF">
<a name="vectorquadratic"></a>Q:</font></b></td>
<td>
<p style="margin-bottom: 0; margin-top:0"><b>Vector-valued quadratic constraints</b></td>
</tr>
<tr>
<td width="26" valign="top">
<p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td>
<td>
<p style="margin-bottom: 0; margin-top:0">If you have vector-valued
quadratic constraints with mixed convexity and concavity, things may
fail. To avoid problems, use the options <code>sdpsettings('convertconvexquad',0)</code>,
or simply do not use a vectorized constraint. Turning off the automatic
conversion of convex quadratic constraints to second order cones is
typically recommended if you know that you will not solve the problem using a
semidefinite solver.</td>
</tr>
</table>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<table border="0" cellpadding="0" style="border-collapse: collapse" width="100%" id="table12">
<tr>
<td width="26" valign="top">
<p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF">
<a name="implies"></a>Q:</font></b></td>
<td>
<p style="margin-bottom: 0; margin-top:0"><b>Using <code>implies</code> on set objects</b></td>
</tr>
<tr>
<td width="26" valign="top">
<p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td>
<td>
<p style="margin-bottom: 0; margin-top:0">Using the logical constraint
<code>implies</code> with the first argument being a constraint is currently causing problems in some cases,
and should thus be avoided.</td>
</tr>
</table>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<table border="0" cellpadding="0" style="border-collapse: collapse" width="100%" id="table14">
<tr>
<td width="26" valign="top">
<p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF">
<a name="constructbug"></a>Q:</font></b></td>
<td>
<p style="margin-bottom: 0; margin-top:0"><b>Sometimes MATLAB fails to
declare an SDPVAR object named i or j inside a function</b></td>
</tr>
<tr>
<td width="26" valign="top">
<p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td>
<td>
<p style="margin-bottom: 0; margin-top:0">This is one of the weirdest
bugs in MATLAB I have come across. If you define your own class (such as
SDPVAR) and use the constructor inside of a function body and assign the
name i or j to the object, MATLAB fails to perform the definition, and i
or j remains to point to the imaginary number. The bug has been reported
and been acknowledged by The Mathworks. If you stumble upon this problem
(very rare), just change the variable name.</td>
</tr>
</table>
<hr noShade SIZE="1" color="#FF0000">
<p style="margin-top: 0; margin-bottom: 0"> </p>
<table border="0" cellpadding="0" style="border-collapse: collapse" width="100%">
<tr>
<td width="26" valign="top">
<p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF">
<a name="foundbug"></a>Q:</font></b></td>
<td>
<p style="margin-bottom: 0; margin-top:0"><b>I have found a bug. What to do?</b></td>
</tr>
<tr>
<td width="26" valign="top">
<p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td>
<td>
<p style="margin-bottom: 0; margin-top:0">Send a mail to <a href="mailto:loefberg@control.ee.ethz.ch">
loefberg@control.ee.ethz.ch</a>. Type <code>ver</code> in MATLAB and include
the result in the mail. If possible, include the code (as simple as
possible) that generated the fault, otherwise, include at-least the error
message etc. The more information the better.</p>
</td>
</tr>
</table>
<p style="margin-bottom: 0; margin-top:0"> </p>
<table border="0" cellpadding="0" style="border-collapse: collapse" width="100%">
<tr>
<td width="26" valign="top">
<p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF">
<a name="feature"></a>Q:</font></b></td>
<td>
<p style="margin-bottom: 0; margin-top:0"><b>I have an idea for a new feature.
What to do?</b></td>
</tr>
<tr>
<td width="26" valign="top">
<p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td>
<td>
<p style="margin-bottom: 0; margin-top:0">Send a mail to <a href="mailto:loefberg@control.ee.ethz.ch">
loefberg@control.ee.ethz.ch</a>. However, I only add new features when I
need them my self, but if your idea is good enough, I might realize that I
need it!</td>
</tr>
</table>
<p style="margin-bottom: 0; margin-top:0"> </p>
<table border="0" cellpadding="0" style="border-collapse: collapse" width="100%">
<tr>
<td width="26" valign="top">
<p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF">
<a name="yalmipmeans"></a>Q:</font></b></td>
<td>
<p style="margin-bottom: 0; margin-top:0"><b>What does YALMIP mean?</b></td>
</tr>
<tr>
<td width="26" valign="top">
<p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td>
<td>
<p style="margin-bottom: 0; margin-top:0">Used to be short for Yet
Another LMI Parser. However, since YALMIP is much more than a LMI parser
now, it does not mean anything.
</td>
</tr>
</table>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </p>
<p style="margin-top: 0; margin-bottom: 0"> </td>
</tr>
</table>
</div>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -