[37] | 1 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> |
---|
| 2 | <html> |
---|
| 3 | |
---|
| 4 | <head> |
---|
| 5 | <meta http-equiv="Content-Language" content="en-us"> |
---|
| 6 | <title>YALMIP FAQ</title> |
---|
| 7 | <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> |
---|
| 8 | <meta content="Microsoft FrontPage 6.0" name="GENERATOR"> |
---|
| 9 | <meta name="ProgId" content="FrontPage.Editor.Document"> |
---|
| 10 | <link href="yalmip.css" type="text/css" rel="stylesheet"> |
---|
| 11 | <base target="_self"> |
---|
| 12 | </head> |
---|
| 13 | |
---|
| 14 | <body leftMargin="0" topMargin="0"> |
---|
| 15 | |
---|
| 16 | <div align="left"> |
---|
| 17 | |
---|
| 18 | <table border="0" cellpadding="4" cellspacing="3" style="border-collapse: collapse" bordercolor="#000000" width="100%" align="left" height="100%"> |
---|
| 19 | <tr> |
---|
| 20 | <td width="100%" align="left" height="100%" valign="top"> |
---|
| 21 | <h2 style="margin-top: 0; margin-bottom: 0">Frequently asked question</h2> |
---|
| 22 | <hr noShade SIZE="1"> |
---|
| 23 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 24 | <h3 style="margin-bottom: 0; margin-top:0">Installation</h3> |
---|
| 25 | <ul> |
---|
| 26 | <li> |
---|
| 27 | <p style="margin-bottom: 0; margin-top:0"><a href="#nothing works">YALMIP |
---|
| 28 | does not work.</a></p></li> |
---|
| 29 | <li> |
---|
| 30 | <p style="margin-bottom: 0; margin-top:0"><a href="#slow"> |
---|
| 31 | <font color="#FF0000">It is so slow!</font></a></p></li> |
---|
| 32 | </ul> |
---|
| 33 | <h3 style="margin-bottom: 0; margin-top:0">Solvers</h3> |
---|
| 34 | <ul> |
---|
| 35 | <li> |
---|
| 36 | <p style="margin-bottom: 0; margin-top:0"><a href="#nosolver">YALMIP |
---|
| 37 | cannot find any solver</a></p></li> |
---|
| 38 | <li> |
---|
| 39 | <p style="margin-bottom: 0; margin-top:0"><a href="#penbmi update">My version of |
---|
| 40 | PENBMI does not work with |
---|
| 41 | YALMIP anymore</a></p></li> |
---|
| 42 | <li> |
---|
| 43 | <p style="margin-bottom: 0; margin-top:0"><a href="#compile sdpt">My version of |
---|
| 44 | SDPT3-3.02 does not work with |
---|
| 45 | YALMIP anymore</a></p></li> |
---|
| 46 | <li> |
---|
| 47 | <p style="margin-bottom: 0; margin-top:0"><a href="#sedumisdpt3">SDPT3 (or |
---|
| 48 | SeDuMi) does not work</a></p></li> |
---|
| 49 | <li> |
---|
| 50 | <p style="margin-bottom: 0; margin-top:0"><a href="#csdppath">CSDP does not work</a></p> |
---|
| 51 | </li> |
---|
| 52 | <li> |
---|
| 53 | <p style="margin-bottom: 0; margin-top:0"><a href="#csdpcrash">CSDP |
---|
| 54 | runs but crashes</a></p></li> |
---|
| 55 | <li> |
---|
| 56 | <p style="margin-bottom: 0; margin-top:0"><a href="#lmilabalready">I already have |
---|
| 57 | LMILAB and LINPROG |
---|
| 58 | installed, do I need any other solver?</a></p></li> |
---|
| 59 | <li> |
---|
| 60 | <p style="margin-bottom: 0; margin-top:0"><a href="#lmilabslow">LMILAB |
---|
| 61 | is slower when I use it with YALMIP</a></p></li> |
---|
| 62 | <li> |
---|
| 63 | <p style="margin-bottom: 0; margin-top:0"><a href="#cddhangs">CDD hangs</a></p> |
---|
| 64 | </li> |
---|
| 65 | <li> |
---|
| 66 | <p style="margin-bottom: 0; margin-top:0"><a href="#fminconcrashes">fmincon |
---|
| 67 | crashes</a></p> |
---|
| 68 | </li> |
---|
| 69 | <li> |
---|
| 70 | <p style="margin-bottom: 0; margin-top:0"><a href="#maxdetcrashes">MAXDET fails or crashes</a></p> |
---|
| 71 | </li> |
---|
| 72 | <li> |
---|
| 73 | <p style="margin-bottom: 0; margin-top:0"><a href="#xpress">XPRESS |
---|
| 74 | performs badly, claims infeasibility etc.</a></p></li> |
---|
| 75 | <li> |
---|
| 76 | <p style="margin-bottom: 0; margin-top:0"><a href="#selectsolver">There are so many solvers, which |
---|
| 77 | one should I use?</a></p></li> |
---|
| 78 | <li> |
---|
| 79 | <p style="margin-bottom: 0; margin-top:0"><a href="#infeasible">The solution I get in an SDP is not |
---|
| 80 | feasible but has eigenvalues around, say, -1e-6</a></p></li> |
---|
| 81 | <li> |
---|
| 82 | <p style="margin-bottom: 0; margin-top:0"><a href="#bmi">Can I solve BMIs without |
---|
| 83 | PENBMI?</a></p></li> |
---|
| 84 | </ul> |
---|
| 85 | <h3 style="margin-bottom: 0; margin-top:0">YALMIP</h3> |
---|
| 86 | <ul> |
---|
| 87 | <li> |
---|
| 88 | <p style="margin-bottom: 0; margin-top:0"><a href="#typical">My solution |
---|
| 89 | is not what I expected.</a></p></li> |
---|
| 90 | <li> |
---|
| 91 | <p style="margin-bottom: 0; margin-top:0"><a href="#typeset">Typing <code>help set</code> gives |
---|
| 92 | me no information on the YALMIP function <code>set</code>.</a></p></li> |
---|
| 93 | <li> |
---|
| 94 | <p style="margin-bottom: 0; margin-top:0"><a href="#setclass">Is there really a <code>set</code> class?</a></p> |
---|
| 95 | </li> |
---|
| 96 | <li> |
---|
| 97 | <p style="margin-bottom: 0; margin-top:0"><a href="#normalset">Is <code>set</code> related to |
---|
| 98 | the "normal" set command in MATLAB.</a></p></li> |
---|
| 99 | <li> |
---|
| 100 | <p style="margin-bottom: 0; margin-top:0"><a href="#lmielement">I define a |
---|
| 101 | semidefinite constraint, but YALMIP declares it "element-wise".</a></p></li> |
---|
| 102 | <li> |
---|
| 103 | <p style="margin-bottom: 0; margin-top:0"><a href="#reallystrict">Are inequalities really |
---|
| 104 | strict?</a></p></li> |
---|
| 105 | <li> |
---|
| 106 | <p style="margin-bottom: 0; margin-top:0"><a href="#gevp">How do I |
---|
| 107 | solve generalized eigenvalue problems (like <code>gevp</code> in LMILAB)?</a></p> |
---|
| 108 | </li> |
---|
| 109 | <li> |
---|
| 110 | <p style="margin-bottom: 0; margin-top:0"><a href="#removeequalities">I get strange |
---|
| 111 | results when I use the option <code>'removeequalities'</code></a>.</p> |
---|
| 112 | </li> |
---|
| 113 | <li> |
---|
| 114 | <p style="margin-bottom: 0; margin-top:0"><a href="#convexity ">YALMIP complains about failing in convexity propagation.</a></p> |
---|
| 115 | </li> |
---|
| 116 | <li> |
---|
| 117 | <p style="margin-bottom: 0; margin-top:0"><a href="#gpconvex">I |
---|
| 118 | have problems solving a geometric program.</a></p></li> |
---|
| 119 | </ul> |
---|
| 120 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 121 | <h3 style="margin-bottom: 0; margin-top:0">Known bugs</h3> |
---|
| 122 | <ul> |
---|
| 123 | <li> |
---|
| 124 | <p style="margin-bottom: 0; margin-top:0"><a href="#subasgn">I can not write |
---|
| 125 | <code>X = |
---|
| 126 | eye(2); X(1,1)=sdpvar(1,1)</code></a></p></li> |
---|
| 127 | <li> |
---|
| 128 | <p style="margin-bottom: 0; margin-top:0"><a href="#vectorquadratic"> |
---|
| 129 | Vector-valued quadratic constraints</a></p></li> |
---|
| 130 | <li> |
---|
| 131 | <p style="margin-bottom: 0; margin-top:0"><a href="#implies"> |
---|
| 132 | Using <code>implies</code> on set objects</a></p></li> |
---|
| 133 | <li> |
---|
| 134 | <p style="margin-bottom: 0; margin-top:0"><a href="#constructbug"> |
---|
| 135 | Sometimes MATLAB fails to declare a SDPVAR object with the name i or j |
---|
| 136 | inside a function</a></p></li> |
---|
| 137 | </ul> |
---|
| 138 | <p style="margin-bottom: 0; margin-top:0"></p> |
---|
| 139 | <h3 style="margin-bottom: 0; margin-top:0"> </h3> |
---|
| 140 | <h3 style="margin-bottom: 0; margin-top:0">Other</h3> |
---|
| 141 | <ul> |
---|
| 142 | <li> |
---|
| 143 | <p style="margin-bottom: 0; margin-top:0"><a href="#foundbug">I have found a bug. What to do?</a></p> |
---|
| 144 | </li> |
---|
| 145 | <li> |
---|
| 146 | <p style="margin-bottom: 0; margin-top:0"><a href="#feature">I have an idea for a new feature. |
---|
| 147 | What to do?</a></p></li> |
---|
| 148 | <li> |
---|
| 149 | <p style="margin-bottom: 0; margin-top:0"><a href="#yalmipmeans">What does YALMIP mean?</a></p> |
---|
| 150 | </li> |
---|
| 151 | </ul> |
---|
| 152 | <hr noShade SIZE="1" color="#FF0000"> |
---|
| 153 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 154 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 155 | <tr> |
---|
| 156 | <td width="26" valign="top" class="AQ"> |
---|
| 157 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 158 | <a name="nothing works"></a>Q:</font></b></td> |
---|
| 159 | <td> |
---|
| 160 | <p style="margin-bottom: 0; margin-top:0"><b>I have been using a previous version |
---|
| 161 | of YALMIP, but after installing the new version nothing works.</b></td> |
---|
| 162 | </tr> |
---|
| 163 | <tr> |
---|
| 164 | <td width="26" valign="top" class="AQ"> |
---|
| 165 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 166 | <td> |
---|
| 167 | <p style="margin-bottom: 0; margin-top:0">Restart MATLAB.</td> |
---|
| 168 | </tr> |
---|
| 169 | </table> |
---|
| 170 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 171 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 172 | <tr> |
---|
| 173 | <td width="26" valign="top"> |
---|
| 174 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 175 | <a name="remove old"></a>Q:</font></b></td> |
---|
| 176 | <td> |
---|
| 177 | <p style="margin-bottom: 0; margin-top:0"><b>..still doesn't work!</b></td> |
---|
| 178 | </tr> |
---|
| 179 | <tr> |
---|
| 180 | <td width="26" valign="top"> |
---|
| 181 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 182 | <td> |
---|
| 183 | <p style="margin-bottom: 0; margin-top:0">Remove any old version of |
---|
| 184 | YALMIP before you install the new version. Do not just copy the new |
---|
| 185 | version into the old YALMIP directory.</td> |
---|
| 186 | </tr> |
---|
| 187 | </table> |
---|
| 188 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 189 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 190 | <tr> |
---|
| 191 | <td width="26" valign="top"> |
---|
| 192 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 193 | <a name="add path"></a>Q:</font></b></td> |
---|
| 194 | <td> |
---|
| 195 | <p style="margin-bottom: 0; margin-top:0"><b>..still doesn't work!</b></td> |
---|
| 196 | </tr> |
---|
| 197 | <tr> |
---|
| 198 | <td width="26" valign="top"> |
---|
| 199 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 200 | <td> |
---|
| 201 | <p style="margin-bottom: 0; margin-top:0">Added all the paths? (<i>/yalmip</i>, |
---|
| 202 | <i>/yalmip/extras, /yalmip/demos, /yalmip/solvers</i>)</td> |
---|
| 203 | </tr> |
---|
| 204 | </table> |
---|
| 205 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 206 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%" id="table13"> |
---|
| 207 | <tr> |
---|
| 208 | <td width="26" valign="top"> |
---|
| 209 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 210 | <a name="add path2"></a>Q:</font></b></td> |
---|
| 211 | <td> |
---|
| 212 | <p style="margin-bottom: 0; margin-top:0"><b>..still doesn't work!</b></td> |
---|
| 213 | </tr> |
---|
| 214 | <tr> |
---|
| 215 | <td width="26" valign="top"> |
---|
| 216 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 217 | <td> |
---|
| 218 | <p style="margin-bottom: 0; margin-top:0">Did your unzip application |
---|
| 219 | really decompress the files to the path structure, instead of placing |
---|
| 220 | all files in one directory.</td> |
---|
| 221 | </tr> |
---|
| 222 | </table> |
---|
| 223 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 224 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 225 | <tr> |
---|
| 226 | <td width="26" valign="top"> |
---|
| 227 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 228 | <a name="add path0"></a>Q:</font></b></td> |
---|
| 229 | <td> |
---|
| 230 | <p style="margin-bottom: 0; margin-top:0"><b>..still doesn't work!</b></td> |
---|
| 231 | </tr> |
---|
| 232 | <tr> |
---|
| 233 | <td width="26" valign="top"> |
---|
| 234 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 235 | <td> |
---|
| 236 | <p style="margin-bottom: 0; margin-top:0">Are you sure you added all the paths! (<i>/yalmip</i>, |
---|
| 237 | <i>/yalmip/extras, /yalmip/demos, /yalmip/solvers</i>)</td> |
---|
| 238 | </tr> |
---|
| 239 | </table> |
---|
| 240 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 241 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%" id="table3"> |
---|
| 242 | <tr> |
---|
| 243 | <td width="26" valign="top"> |
---|
| 244 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 245 | <a name="add path1"></a>Q:</font></b></td> |
---|
| 246 | <td> |
---|
| 247 | <p style="margin-bottom: 0; margin-top:0"><b>..still doesn't work!</b></td> |
---|
| 248 | </tr> |
---|
| 249 | <tr> |
---|
| 250 | <td width="26" valign="top"> |
---|
| 251 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 252 | <td> |
---|
| 253 | <p style="margin-bottom: 0; margin-top:0">Could be related to toolbox |
---|
| 254 | path caching (open menu File/Preferences/General and run "Update Toolbox |
---|
| 255 | Path Cache")</td> |
---|
| 256 | </tr> |
---|
| 257 | </table> |
---|
| 258 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 259 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 260 | <tr> |
---|
| 261 | <td width="26" valign="top"> |
---|
| 262 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 263 | <a name="remove path"></a>Q:</font></b></td> |
---|
| 264 | <td> |
---|
| 265 | <p style="margin-bottom: 0; margin-top:0"><b>..still doesn't work!</b></td> |
---|
| 266 | </tr> |
---|
| 267 | <tr> |
---|
| 268 | <td width="26" valign="top"> |
---|
| 269 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 270 | <td> |
---|
| 271 | <p style="margin-bottom: 0; margin-top:0">Removed your old YALMIP |
---|
| 272 | version from the MATLAB path?</td> |
---|
| 273 | </tr> |
---|
| 274 | </table> |
---|
| 275 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 276 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 277 | <tr> |
---|
| 278 | <td width="26" valign="top"> |
---|
| 279 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 280 | <a name="added solver path"></a>Q:</font></b></td> |
---|
| 281 | <td> |
---|
| 282 | <p style="margin-bottom: 0; margin-top:0"><b>..still doesn't work!</b></td> |
---|
| 283 | </tr> |
---|
| 284 | <tr> |
---|
| 285 | <td width="26" valign="top"> |
---|
| 286 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 287 | <td> |
---|
| 288 | <p style="margin-bottom: 0; margin-top:0">Added all the paths to your solver?</td> |
---|
| 289 | </tr> |
---|
| 290 | </table> |
---|
| 291 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 292 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 293 | <tr> |
---|
| 294 | <td width="26" valign="top"> |
---|
| 295 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 296 | <a name="compile solver1"></a>Q:</font></b></td> |
---|
| 297 | <td> |
---|
| 298 | <p style="margin-bottom: 0; margin-top:0"><b>...still doesn't work!</b></td> |
---|
| 299 | </tr> |
---|
| 300 | <tr> |
---|
| 301 | <td width="26" valign="top"> |
---|
| 302 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 303 | <td> |
---|
| 304 | <p style="margin-bottom: 0; margin-top:0">Do you have any solver |
---|
| 305 | installed?</p> |
---|
| 306 | </td> |
---|
| 307 | </tr> |
---|
| 308 | </table> |
---|
| 309 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 310 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 311 | <tr> |
---|
| 312 | <td width="26" valign="top"> |
---|
| 313 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 314 | <a name="compile solver"></a>Q:</font></b></td> |
---|
| 315 | <td> |
---|
| 316 | <p style="margin-bottom: 0; margin-top:0"><b>...still doesn't work!</b></td> |
---|
| 317 | </tr> |
---|
| 318 | <tr> |
---|
| 319 | <td width="26" valign="top"> |
---|
| 320 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 321 | <td> |
---|
| 322 | <p style="margin-bottom: 0; margin-top:0">Compiled the solver (if needed)? |
---|
| 323 | Compiled it for the correct MATLAB version?</p> |
---|
| 324 | </td> |
---|
| 325 | </tr> |
---|
| 326 | </table> |
---|
| 327 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 328 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 329 | <tr> |
---|
| 330 | <td width="26" valign="top"> |
---|
| 331 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 332 | <a name="compile solver2"></a>Q:</font></b></td> |
---|
| 333 | <td> |
---|
| 334 | <p style="margin-bottom: 0; margin-top:0"><b>...still doesn't work!</b></td> |
---|
| 335 | </tr> |
---|
| 336 | <tr> |
---|
| 337 | <td width="26" valign="top"> |
---|
| 338 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 339 | <td> |
---|
| 340 | <p style="margin-bottom: 0; margin-top:0">Using MATLAB 5.3.1 or later?</p> |
---|
| 341 | </td> |
---|
| 342 | </tr> |
---|
| 343 | </table> |
---|
| 344 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 345 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 346 | <tr> |
---|
| 347 | <td width="26" valign="top"> |
---|
| 348 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 349 | <a name="compile solver0"></a>Q:</font></b></td> |
---|
| 350 | <td> |
---|
| 351 | <p style="margin-bottom: 0; margin-top:0"><b>...still doesn't work!</b></td> |
---|
| 352 | </tr> |
---|
| 353 | <tr> |
---|
| 354 | <td width="26" valign="top"> |
---|
| 355 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 356 | <td> |
---|
| 357 | <p style="margin-bottom: 0; margin-top:0">Probably a PICNIC problem ;-P</p> |
---|
| 358 | </td> |
---|
| 359 | </tr> |
---|
| 360 | </table> |
---|
| 361 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 362 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%" id="table1"> |
---|
| 363 | <tr> |
---|
| 364 | <td width="26" valign="top"> |
---|
| 365 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 366 | <a name="slow"></a>Q:</font></b></td> |
---|
| 367 | <td> |
---|
| 368 | <p style="margin-bottom: 0; margin-top:0"><b>It is so slow!</b></td> |
---|
| 369 | </tr> |
---|
| 370 | <tr> |
---|
| 371 | <td width="26" valign="top"> |
---|
| 372 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 373 | <td> |
---|
| 374 | <p style="margin-bottom: 0; margin-top:0">As a rule of thumb, the time |
---|
| 375 | reported as <code>'yalmiptime'</code> in the output diagnostic should be around fractions |
---|
| 376 | of a second for small problems, and typically a fraction of the actual |
---|
| 377 | solution time for larger problems. If this is not the case, you probably |
---|
| 378 | have a problem with your installation.</p> |
---|
| 379 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 380 | <p style="margin-bottom: 0; margin-top:0">As another rule of thumb, <code>yalmiptest(sdpsettings('verbose',0,'solver','sedumi'))</code> |
---|
| 381 | takes 2-5 seconds (including initial search for solvers) on my PC machines |
---|
| 382 | (2GHz and 3GHz).</p> |
---|
| 383 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 384 | <p style="margin-bottom: 0; margin-top:0">Do you have FEMLAB on your MATLAB |
---|
| 385 | path? Removing FEMLAB from the path can improve performance significantly. |
---|
| 386 | Another way to make YALMIP faster is to set the field <code>cachesolvers</code> |
---|
| 387 | in <a href="#sdpsettings">sdpsettings</a> to 1. (One reason for the |
---|
| 388 | extremely poor performance of YALMIP in these cases is typically due to slow |
---|
| 389 | network functionalities, making the command <code>exist</code> , which is |
---|
| 390 | used in <a href="#solvesdp">solvesdp</a> when detecting solvers, very slow.</p> |
---|
| 391 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 392 | <p style="margin-bottom: 0; margin-top:0">Are you running over a network? |
---|
| 393 | This can be extremely detrimental for general performance in YALMIP. On some |
---|
| 394 | networked Linux version, YALMIP runs 10-100 times slower!</p> |
---|
| 395 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 396 | <p style="margin-bottom: 0; margin-top:0">Do you have a poor sparse matrix |
---|
| 397 | library in your installation? Some distributions seem to have extremely poor |
---|
| 398 | performance for sparse matrices (observed on Linux), which is used a lot in YALMIP. One |
---|
| 399 | way to test this is to run the script below. If the displayed result is |
---|
| 400 | substantially larger than 20, you have problems (and I have no idea how you |
---|
| 401 | can resolve this...)</p> |
---|
| 402 | <blockquote> |
---|
| 403 | <blockquote> |
---|
| 404 | <pre>d = sprandn(1e5,1,0.5); |
---|
| 405 | tic;for i= 1:1000;d([2000:3000]);end;t1 = toc; |
---|
| 406 | d = d'; |
---|
| 407 | tic;for i= 1:1000;d([2000:3000]);end;t2 = toc;t1/t2</pre> |
---|
| 408 | </blockquote> |
---|
| 409 | </blockquote> |
---|
| 410 | <p style="margin-bottom: 0; margin-top:0">Do |
---|
| 411 | you have <a href="solvers.htm#mosek">MOSEK</a> installed? This solver overloads |
---|
| 412 | the function <code>optimset</code> in Mathworks optimization toolbox, but is much slower. <code>optimset</code> is called in <a href="#sdpsettings">sdpsettings</a> |
---|
| 413 | to initialize the option fields for <a href="solvers.htm#linprog">LINPROG</a> and |
---|
| 414 | <a href="solvers.htm#quadprog">QUADPROG</a>. Note that |
---|
| 415 | <a href="#sdpsettings">sdpsettings</a> is called in <a href="#solvesdp">solvesdp</a> |
---|
| 416 | if no options structure is passed in the call. Hence, for optimal speed, |
---|
| 417 | define the options structure once, and always use three arguments when |
---|
| 418 | calling <a href="#solvesdp">solvesdp</a>. This is recommended even if you do |
---|
| 419 | not have <a href="solvers.htm#mosek">MOSEK</a>.</p> |
---|
| 420 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 421 | <p style="margin-bottom: 0; margin-top:0">Are you working with nonlinear |
---|
| 422 | expressions? In that case, clear the internals of YALMIP regularly using |
---|
| 423 | <code>yalmip('clear')</code>.</p> |
---|
| 424 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 425 | <p style="margin-bottom: 0; margin-top:0">Are you working with large |
---|
| 426 | polynomial |
---|
| 427 | expressions? Try to compile the file findhash.c (<code>mex findhash.c</code>)</p> |
---|
| 428 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 429 | <p style="margin-bottom: 0; margin-top:0">Have you formulated a standard |
---|
| 430 | primal SDP form problem and expected YALMIP to solve it that way? Make sure |
---|
| 431 | to read the section on <a href="dual.htm#dualization">dualization</a>.</p> |
---|
| 432 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 433 | <p style="margin-bottom: 0; margin-top:0">Finally, standard MATLAB coding |
---|
| 434 | practice applies. This means that you should try to vectorize code, define |
---|
| 435 | things once etc.</p> |
---|
| 436 | </td> |
---|
| 437 | </tr> |
---|
| 438 | </table> |
---|
| 439 | <hr noShade SIZE="1" color="#FF0000"> |
---|
| 440 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 441 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 442 | <tr> |
---|
| 443 | <td width="26" valign="top"> |
---|
| 444 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 445 | <a name="nosolver"></a>Q:</font></b></td> |
---|
| 446 | <td> |
---|
| 447 | <p style="margin-bottom: 0; margin-top:0"><b>YALMIP cannot find any |
---|
| 448 | solver.</b></td> |
---|
| 449 | </tr> |
---|
| 450 | <tr> |
---|
| 451 | <td width="26" valign="top"> |
---|
| 452 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 453 | <td> |
---|
| 454 | <p style="margin-bottom: 0; margin-top:0">Do you have any solver? You typically |
---|
| 455 | need to install a (or several) solver and update you path. See |
---|
| 456 | <a target="topic" href="solvers.htm">interfaced solver</a>.</p> |
---|
| 457 | </td> |
---|
| 458 | </tr> |
---|
| 459 | </table> |
---|
| 460 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 461 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 462 | <tr> |
---|
| 463 | <td width="26" valign="top"> |
---|
| 464 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 465 | <a name="penbmi update"></a>Q:</font></b></td> |
---|
| 466 | <td> |
---|
| 467 | <p style="margin-bottom: 0; margin-top:0"><b><a href="solvers.htm#penbmi"> |
---|
| 468 | PENBMI</a> does not work with |
---|
| 469 | YALMIP anymore.</b></td> |
---|
| 470 | </tr> |
---|
| 471 | <tr> |
---|
| 472 | <td width="26" valign="top"> |
---|
| 473 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 474 | <td> |
---|
| 475 | <p style="margin-bottom: 0; margin-top:0">Version 1.1 and earlier will not |
---|
| 476 | work directly anymore. However, this is easily fixed. Edit the file |
---|
| 477 | callpenbmim.m (if you use the |
---|
| 478 | <a target="_blank" href="http://www.penopt.com">PENOPT</a> version) or |
---|
| 479 | callpenbmi.m (if you use the <a target="_blank" href="http://tomlab.biz">TOMLAB</a> |
---|
| 480 | version). Uncomment the code below the comment "UNCOMMENT THIS".</p> |
---|
| 481 | </td> |
---|
| 482 | </tr> |
---|
| 483 | </table> |
---|
| 484 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 485 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 486 | <tr> |
---|
| 487 | <td width="26" valign="top"> |
---|
| 488 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 489 | <a name="compile sdpt"></a>Q:</font></b></td> |
---|
| 490 | <td> |
---|
| 491 | <p style="margin-bottom: 0; margin-top:0"><b><a href="solvers.htm#sdpt3">SDPT3</a>-3.02 does not work with |
---|
| 492 | YALMIP anymore.</b></td> |
---|
| 493 | </tr> |
---|
| 494 | <tr> |
---|
| 495 | <td width="26" valign="top"> |
---|
| 496 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 497 | <td> |
---|
| 498 | <p style="margin-bottom: 0; margin-top:0">Download <a href="solvers.htm#sdpt3">SDPT3</a>-3.02 and compile (code |
---|
| 499 | updated without version increment)</p> |
---|
| 500 | </td> |
---|
| 501 | </tr> |
---|
| 502 | </table> |
---|
| 503 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 504 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 505 | <tr> |
---|
| 506 | <td width="26" valign="top"> |
---|
| 507 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 508 | <a name="compile sdpt0"></a>Q:</font></b></td> |
---|
| 509 | <td> |
---|
| 510 | <p style="margin-bottom: 0; margin-top:0"><b>My version of |
---|
| 511 | <a href="solvers.htm#sdpt3">SDPT3</a>-3.02 does not work and complains about |
---|
| 512 | the file <code>svec</code>.</b></td> |
---|
| 513 | </tr> |
---|
| 514 | <tr> |
---|
| 515 | <td width="26" valign="top"> |
---|
| 516 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 517 | <td> |
---|
| 518 | <p style="margin-bottom: 0; margin-top:0">Do you have the solver SDPPACK |
---|
| 519 | installed? Remove the path to this solver.</p> |
---|
| 520 | </td> |
---|
| 521 | </tr> |
---|
| 522 | </table> |
---|
| 523 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 524 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 525 | <tr> |
---|
| 526 | <td width="26" valign="top"> |
---|
| 527 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 528 | <a name="sedumisdpt3"></a>Q:</font></b></td> |
---|
| 529 | <td> |
---|
| 530 | <p style="margin-bottom: 0; margin-top:0"> <b> <a href="solvers.htm#sdpt3">SDPT3</a> (or |
---|
| 531 | <a href="solvers.htm#sedumi">SeDuMi</a>) does not work<font color="#0000FF">.</font></b></td> |
---|
| 532 | </tr> |
---|
| 533 | <tr> |
---|
| 534 | <td width="26" valign="top"> |
---|
| 535 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 536 | <td> |
---|
| 537 | <p style="margin-bottom: 0; margin-top:0">Make sure not to have both <a href="solvers.htm#sdpt3">SDPT3</a> |
---|
| 538 | (version 3.02) and |
---|
| 539 | <a href="solvers.htm#sedumi">SeDuMi</a> on the MATLAB path. This problem is |
---|
| 540 | resolved in <a href="solvers.htm#sdpt3">SDPT3</a> 3.1</p> |
---|
| 541 | </td> |
---|
| 542 | </tr> |
---|
| 543 | </table> |
---|
| 544 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 545 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 546 | <tr> |
---|
| 547 | <td width="26" valign="top"> |
---|
| 548 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 549 | <a name="csdppath"></a>Q:</font></b></td> |
---|
| 550 | <td> |
---|
| 551 | <p style="margin-bottom: 0; margin-top:0"> <b> <a href="solvers.htm#csdp">CSDP</a> does not work<font color="#0000FF">.</font></b></td> |
---|
| 552 | </tr> |
---|
| 553 | <tr> |
---|
| 554 | <td width="26" valign="top"> |
---|
| 555 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 556 | <td> |
---|
| 557 | <p style="margin-bottom: 0; margin-top:0">Do you have <a href="solvers.htm#csdp">CSDP</a> in your <i>system</i> path?</p> |
---|
| 558 | </td> |
---|
| 559 | </tr> |
---|
| 560 | </table> |
---|
| 561 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 562 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 563 | <tr> |
---|
| 564 | <td width="26" valign="top"> |
---|
| 565 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 566 | <a name="csdpcrash"></a>Q:</font></b></td> |
---|
| 567 | <td> |
---|
| 568 | <p style="margin-bottom: 0; margin-top:0"> <b> <a href="solvers.htm#csdp">CSDP</a> |
---|
| 569 | runs but crashes<font color="#0000FF">.</font></b></td> |
---|
| 570 | </tr> |
---|
| 571 | <tr> |
---|
| 572 | <td width="26" valign="top"> |
---|
| 573 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 574 | <td> |
---|
| 575 | <p style="margin-bottom: 0; margin-top:0">Running MATLAB 6.1 and <a href="solvers.htm#csdp">CSDP</a> |
---|
| 576 | 4.6? In that case, edit readsol.m in the <a href="solvers.htm#csdp">CSDP</a> |
---|
| 577 | directory and replace all occurrences of && with &. Even better, |
---|
| 578 | download the latest version of <a href="solvers.htm#csdp">CSDP</a>.</p> |
---|
| 579 | </td> |
---|
| 580 | </tr> |
---|
| 581 | </table> |
---|
| 582 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 583 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 584 | <tr> |
---|
| 585 | <td width="26" valign="top"> |
---|
| 586 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 587 | <a name="lmilabalready"></a>Q:</font></b></td> |
---|
| 588 | <td> |
---|
| 589 | <p style="margin-bottom: 0; margin-top:0"><b>I already have |
---|
| 590 | <a href="solvers.htm#lmilab">LMILAB</a> and <a href="solvers.htm#linprog">LINPROG</a> |
---|
| 591 | installed, do I need any other solver?</b></td> |
---|
| 592 | </tr> |
---|
| 593 | <tr> |
---|
| 594 | <td width="26" valign="top"> |
---|
| 595 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 596 | <td> |
---|
| 597 | <p style="margin-bottom: 0; margin-top:0">Yes, at-least if you intend to |
---|
| 598 | solve anything but a few small problems. See next issue.</p> |
---|
| 599 | </td> |
---|
| 600 | </tr> |
---|
| 601 | </table> |
---|
| 602 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 603 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 604 | <tr> |
---|
| 605 | <td width="26" valign="top"> |
---|
| 606 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 607 | <a name="lmilabslow"></a>Q:</font></b></td> |
---|
| 608 | <td> |
---|
| 609 | <p style="margin-bottom: 0; margin-top:0"><b><a href="solvers.htm#lmilab">LMILAB</a> |
---|
| 610 | is slower when I use it with YALMIP</b></td> |
---|
| 611 | </tr> |
---|
| 612 | <tr> |
---|
| 613 | <td width="26" valign="top"> |
---|
| 614 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 615 | <td> |
---|
| 616 | <p style="margin-bottom: 0; margin-top:0">Yes. YALMIP, and all other |
---|
| 617 | supported solvers, works with a completely general SDP formulation in |
---|
| 618 | contrast to <a href="solvers.htm#lmilab">LMILAB</a> that requires the |
---|
| 619 | problem structure to be explicitely described by the user for speed (in |
---|
| 620 | particular for control related problems). Rule of |
---|
| 621 | thumb : <font color="#FF0000">Do not use LMILAB with YALMIP</font>. If you |
---|
| 622 | have made the effort to download YALMIP, take 5 more minutes and install a |
---|
| 623 | more efficient and general solver. Future versions of YALMIP may resolve |
---|
| 624 | this issue. Constraints defined using the <a href="kyp.htm">KYP</a> operator |
---|
| 625 | is efficiently handled in some cases already.</p> |
---|
| 626 | </td> |
---|
| 627 | </tr> |
---|
| 628 | </table> |
---|
| 629 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 630 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 631 | <tr> |
---|
| 632 | <td width="26" valign="top"> |
---|
| 633 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 634 | <a name="cddhangs"></a>Q:</font></b></td> |
---|
| 635 | <td> |
---|
| 636 | <p style="margin-bottom: 0; margin-top:0"><b><a href="solvers.htm#penbmi"> |
---|
| 637 | CDD</a> hangs</b></td> |
---|
| 638 | </tr> |
---|
| 639 | <tr> |
---|
| 640 | <td width="26" valign="top"> |
---|
| 641 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 642 | <td> |
---|
| 643 | <p style="margin-bottom: 0; margin-top:0">Try |
---|
| 644 | <code>sdpsettings('cdd.method','dual-simplex')</code></p> |
---|
| 645 | </td> |
---|
| 646 | </tr> |
---|
| 647 | </table> |
---|
| 648 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 649 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%" id="table2"> |
---|
| 650 | <tr> |
---|
| 651 | <td width="26" valign="top"> |
---|
| 652 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 653 | <a name="fminconcrashes"></a>Q:</font></b></td> |
---|
| 654 | <td> |
---|
| 655 | <p style="margin-bottom: 0; margin-top:0"><b><a href="solvers.htm#fmincon"> |
---|
| 656 | fmincon</a> crashes</b></td> |
---|
| 657 | </tr> |
---|
| 658 | <tr> |
---|
| 659 | <td width="26" valign="top"> |
---|
| 660 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 661 | <td> |
---|
| 662 | <p style="margin-bottom: 0; margin-top:0">Do you have <a href="solvers.htm#mosek">MOSEK</a> |
---|
| 663 | installed? This can cause problems due to an inconsistency between MATLABs |
---|
| 664 | and <a href="solvers.htm#mosek">MOSEKs</a> implementation of the file |
---|
| 665 | optimget.m. Remove <a href="solvers.htm#mosek">MOSEK</a> |
---|
| 666 | from your path.</p> |
---|
| 667 | </td> |
---|
| 668 | </tr> |
---|
| 669 | </table> |
---|
| 670 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 671 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%" id="table4"> |
---|
| 672 | <tr> |
---|
| 673 | <td width="26" valign="top"> |
---|
| 674 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 675 | <a name="maxdetcrashes"></a>Q:</font></b></td> |
---|
| 676 | <td> |
---|
| 677 | <p style="margin-bottom: 0; margin-top:0"><b><a href="solvers.htm#maxdet"> |
---|
| 678 | MAXDET</a> fails</b></td> |
---|
| 679 | </tr> |
---|
| 680 | <tr> |
---|
| 681 | <td width="26" valign="top"> |
---|
| 682 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 683 | <td> |
---|
| 684 | <p style="margin-bottom: 0; margin-top:0"><a href="solvers.htm#maxdet"> |
---|
| 685 | MAXDET</a> seems to be sensitive to unbounded feasible regions and |
---|
| 686 | unconstrained variables. Try to add redundant bound constraints on all your |
---|
| 687 | variables.</p> |
---|
| 688 | </td> |
---|
| 689 | </tr> |
---|
| 690 | </table> |
---|
| 691 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 692 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 693 | <tr> |
---|
| 694 | <td width="26" valign="top"> |
---|
| 695 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 696 | <a name="xpress"></a>Q:</font></b></td> |
---|
| 697 | <td> |
---|
| 698 | <p style="margin-bottom: 0; margin-top:0"><b><a href="solvers.htm#xpress"> |
---|
| 699 | XPRESS</a> performs badly, claims infeasibility etc.</a></b></td> |
---|
| 700 | </tr> |
---|
| 701 | <tr> |
---|
| 702 | <td width="26" valign="top"> |
---|
| 703 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 704 | <td> |
---|
| 705 | <p style="margin-bottom: 0; margin-top:0">Adding bounds on the involved |
---|
| 706 | variables solves this issue in many cases.</p> |
---|
| 707 | </td> |
---|
| 708 | </tr> |
---|
| 709 | </table> |
---|
| 710 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 711 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 712 | <tr> |
---|
| 713 | <td width="26" valign="top"> |
---|
| 714 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 715 | <a name="selectsolver"></a>Q:</font></b></td> |
---|
| 716 | <td> |
---|
| 717 | <p style="margin-bottom: 0; margin-top:0"><b>There are so many solvers, which |
---|
| 718 | one should I use?</b></td> |
---|
| 719 | </tr> |
---|
| 720 | <tr> |
---|
| 721 | <td width="26" valign="top"> |
---|
| 722 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 723 | <td> |
---|
| 724 | <p style="margin-bottom: 0; margin-top:0"> <a href="solvers.htm#sedumi">SeDuMi</a> |
---|
| 725 | and |
---|
| 726 | <a href="solvers.htm#sdpt3">SDPT3</a> are good general purpose SDP |
---|
| 727 | solvers (not necessarily the |
---|
| 728 | best solvers though), efficient also on LP and SOCP problems and reasonably |
---|
| 729 | efficient on small QP problems. Hans D. Mittelmanns |
---|
| 730 | <a target="_blank" href="http://www.optimization-online.org/DB_HTML/2001/07/358.html">benchmark</a> might be helpful. |
---|
| 731 | If you mainly solve LPs, make sure to try the free solvers |
---|
| 732 | <a href="solvers.htm#glpk">GLPK</a>, |
---|
| 733 | <a href="solvers.htm#qsopt">QSOPT</a>, |
---|
| 734 | <a href="solvers.htm#clp">CLP</a> and |
---|
| 735 | <a href="solvers.htm#cdd">CDD</a></td> |
---|
| 736 | </tr> |
---|
| 737 | </table> |
---|
| 738 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 739 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 740 | <tr> |
---|
| 741 | <td width="26" valign="top"> |
---|
| 742 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 743 | <a name="infeasible"></a>Q:</font></b></td> |
---|
| 744 | <td> |
---|
| 745 | <p style="margin-bottom: 0; margin-top:0"><b>The solution I get in an SDP is not |
---|
| 746 | feasible but has eigenvalues around, say, -1e-6.</b></td> |
---|
| 747 | </tr> |
---|
| 748 | <tr> |
---|
| 749 | <td width="26" valign="top"> |
---|
| 750 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 751 | <td> |
---|
| 752 | <p style="margin-bottom: 0; margin-top:0">Most solvers actually use |
---|
| 753 | infeasible/exterior algorithms, so slightly infeasible |
---|
| 754 | solutions are common.</p> |
---|
| 755 | </td> |
---|
| 756 | </tr> |
---|
| 757 | </table> |
---|
| 758 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 759 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 760 | <tr> |
---|
| 761 | <td width="26" valign="top"> |
---|
| 762 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 763 | <a name="bmi"></a>Q:</font></b></td> |
---|
| 764 | <td> |
---|
| 765 | <p style="margin-bottom: 0; margin-top:0"><b>Can I solve BMIs without |
---|
| 766 | <a href="solvers.htm#penbmi">PENBMI</a>?</b></td> |
---|
| 767 | </tr> |
---|
| 768 | <tr> |
---|
| 769 | <td width="26" valign="top"> |
---|
| 770 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 771 | <td> |
---|
| 772 | <p style="margin-bottom: 0; margin-top:0">The BMI-examples in |
---|
| 773 | <a href="reference.htm#yalmipdemo">yalmipdemo</a> show some alternative |
---|
| 774 | ways to code your own solver rather easily, but for performance and |
---|
| 775 | robustness, |
---|
| 776 | <a href="solvers.htm#penbmi">PENBMI</a> is highly recommended.</p> |
---|
| 777 | </td> |
---|
| 778 | </tr> |
---|
| 779 | </table> |
---|
| 780 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 781 | <hr noShade SIZE="1" color="#FF0000"> |
---|
| 782 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 783 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 784 | <tr> |
---|
| 785 | <td width="26" valign="top"> |
---|
| 786 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 787 | <a name="typical"></a>Q:</font></b></td> |
---|
| 788 | <td> |
---|
| 789 | <p style="margin-bottom: 0; margin-top:0"><b>My solution is not what I |
---|
| 790 | expected.</b></td> |
---|
| 791 | </tr> |
---|
| 792 | <tr> |
---|
| 793 | <td width="26" valign="top"> |
---|
| 794 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 795 | <td> |
---|
| 796 | <p style="margin-bottom: 0; margin-top:0">Is your problem what you expected? |
---|
| 797 | Use the command checkset to see that you actually have the constraints that |
---|
| 798 | you meant to declare (does it say matrix inequality or element-wise |
---|
| 799 | inequality etc). </p> |
---|
| 800 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 801 | <p style="margin-bottom: 0; margin-top:0">Are your variables really what you |
---|
| 802 | meant to declare (display them to see if they are symmetric, Hermitian, |
---|
| 803 | full, etc.). </p> |
---|
| 804 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 805 | <p style="margin-bottom: 0; margin-top:0">Most common error is that you have |
---|
| 806 | declared a square matrix but accidentally forgotten to declare it as full |
---|
| 807 | and obtained a symmetric matrix instead (square matrices are full by |
---|
| 808 | default!)</p></td> |
---|
| 809 | </tr> |
---|
| 810 | </table> |
---|
| 811 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 812 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%" id="table15"> |
---|
| 813 | <tr> |
---|
| 814 | <td width="26" valign="top"> |
---|
| 815 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 816 | <a name="typeset"></a>Q:</font></b></td> |
---|
| 817 | <td> |
---|
| 818 | <p style="margin-bottom: 0; margin-top:0"><b>Typing <code>help set</code> gives |
---|
| 819 | me no information on the YALMIP function <code>set</code>.</b></td> |
---|
| 820 | </tr> |
---|
| 821 | <tr> |
---|
| 822 | <td width="26" valign="top"> |
---|
| 823 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 824 | <td> |
---|
| 825 | <p style="margin-bottom: 0; margin-top:0">Yep, a bit tricky since <code>set</code> also is a built-in |
---|
| 826 | function. Type <code>help sdpvar/set</code> and you will find what you are |
---|
| 827 | looking for.</p></td> |
---|
| 828 | </tr> |
---|
| 829 | </table> |
---|
| 830 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 831 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 832 | <tr> |
---|
| 833 | <td width="26" valign="top"> |
---|
| 834 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 835 | <a name="setclass"></a>Q:</font></b></td> |
---|
| 836 | <td> |
---|
| 837 | <p style="margin-bottom: 0; margin-top:0"><b>Is there really a <code>set</code> class?</b></td> |
---|
| 838 | </tr> |
---|
| 839 | <tr> |
---|
| 840 | <td width="26" valign="top"> |
---|
| 841 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 842 | <td> |
---|
| 843 | <p style="margin-bottom: 0; margin-top:0">No...<code>set</code> is only a wrapper to |
---|
| 844 | call the old class <code>lmi</code>. To much work to re-write all code |
---|
| 845 | just for a name change.</p> |
---|
| 846 | </td> |
---|
| 847 | </tr> |
---|
| 848 | </table> |
---|
| 849 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 850 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 851 | <tr> |
---|
| 852 | <td width="26" valign="top"> |
---|
| 853 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 854 | <a name="normalset"></a>Q:</font></b></td> |
---|
| 855 | <td> |
---|
| 856 | <p style="margin-bottom: 0; margin-top:0"><b>Is <code>set</code> related to |
---|
| 857 | the "normal" set command in MATLAB</b></td> |
---|
| 858 | </tr> |
---|
| 859 | <tr> |
---|
| 860 | <td width="26" valign="top"> |
---|
| 861 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 862 | <td> |
---|
| 863 | <p style="margin-bottom: 0; margin-top:0">No... The name <code>set</code> |
---|
| 864 | was selected since it is short. An alternative would be to define |
---|
| 865 | constraints, or feasible sets, using a command named, e.g., <code> |
---|
| 866 | constraint</code>. However, my keyboard typing speed is too slow to |
---|
| 867 | allow for such a long command name. In my opinion, the name <code>set</code> |
---|
| 868 | is at-least better than the old name <code>lmi</code>.</p> |
---|
| 869 | </td> |
---|
| 870 | </tr> |
---|
| 871 | </table> |
---|
| 872 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 873 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 874 | <tr> |
---|
| 875 | <td width="26" valign="top"> |
---|
| 876 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 877 | <a name="lmielement"></a>Q:</font></b></td> |
---|
| 878 | <td> |
---|
| 879 | <p style="margin-bottom: 0; margin-top:0"><b>I define a |
---|
| 880 | semidefinite constraint, but YALMIP declares it "element-wise".</b></td> |
---|
| 881 | </tr> |
---|
| 882 | <tr> |
---|
| 883 | <td width="26" valign="top"> |
---|
| 884 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 885 | <td> |
---|
| 886 | <p style="margin-bottom: 0; margin-top:0">YALMIP detects semidefinite |
---|
| 887 | constraints by checking symmetry. In some cases (working with very |
---|
| 888 | ill-conditioned data), numerical problems may lead to a small violation |
---|
| 889 | of symmetry in MATLAB, and YALMIP will declare the constraint as |
---|
| 890 | element-wise. To solve this problem, just symmetrize your variable |
---|
| 891 | first.</p> |
---|
| 892 | </td> |
---|
| 893 | </tr> |
---|
| 894 | </table> |
---|
| 895 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 896 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 897 | <tr> |
---|
| 898 | <td width="26" valign="top"> |
---|
| 899 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 900 | <a name="reallystrict"></a>Q:</font></b></td> |
---|
| 901 | <td> |
---|
| 902 | <p style="margin-bottom: 0; margin-top:0"><b>Are inequalities really |
---|
| 903 | strict?</b></td> |
---|
| 904 | </tr> |
---|
| 905 | <tr> |
---|
| 906 | <td width="26" valign="top"> |
---|
| 907 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 908 | <td> |
---|
| 909 | <p style="margin-bottom: 0; margin-top:0">By default, strict (<,>) and |
---|
| 910 | non-strict (<=,>=) inequalities are treated in the same way in YALMIP, |
---|
| 911 | and the result depends on the solver. However, by using the field <code> |
---|
| 912 | shift</code> in <a href="reference.htm#sdpsettings">sdpsetttings</a>, |
---|
| 913 | inequalities defined using < and > will be treated slightly different. |
---|
| 914 | YALMIP will add a small perturbation to these inequalities to |
---|
| 915 | increase the likelihood of a strictly feasible solution. Warning : If you |
---|
| 916 | have an integer variable, and add a constraint <code>set(x<2)</code>, this will not be interpreted as <code>set(x<=1)</code> |
---|
| 917 | . To avoid confusion, use <code>set(x<=1)</code>. The same holds for rank constraints <code>set(rank(x)<2)<n)</code>.</code></td> |
---|
| 918 | </tr> |
---|
| 919 | </table> |
---|
| 920 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 921 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%" id="table5"> |
---|
| 922 | <tr> |
---|
| 923 | <td width="26" valign="top"> |
---|
| 924 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 925 | <a name="gevp"></a>Q:</font></b></td> |
---|
| 926 | <td> |
---|
| 927 | <p style="margin-bottom: 0; margin-top:0"><b>How do I solve generalized |
---|
| 928 | eigenvalue problems (like <code>gevp</code> in <a href="solvers.htm#lmilab">LMILAB</a>)?</b></td> |
---|
| 929 | </tr> |
---|
| 930 | <tr> |
---|
| 931 | <td width="26" valign="top"> |
---|
| 932 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 933 | <td> |
---|
| 934 | <p style="margin-bottom: 0; margin-top:0">Two options. The first one is to code your own |
---|
| 935 | script based on a simple bisection. This is illustrated in |
---|
| 936 | the example <code>decayex.m</code>. An alternative is to install the BMI solver |
---|
| 937 | <a href="solvers.htm#penbmi">PENBMI</a>. This solver solves GEVP problems |
---|
| 938 | globally.</p> |
---|
| 939 | </td> |
---|
| 940 | </tr> |
---|
| 941 | </table> |
---|
| 942 | |
---|
| 943 | |
---|
| 944 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 945 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%" id="table6"> |
---|
| 946 | <tr> |
---|
| 947 | <td width="26" valign="top"> |
---|
| 948 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 949 | <a name="gpconvex"></a>Q:</font></b></td> |
---|
| 950 | <td> |
---|
| 951 | <p style="margin-bottom: 0; margin-top:0"><b>I get strange |
---|
| 952 | results when I use the option <code>'removeequalities'</code></b></td> |
---|
| 953 | </tr> |
---|
| 954 | <tr> |
---|
| 955 | <td width="26" valign="top"> |
---|
| 956 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 957 | <td> |
---|
| 958 | <p style="margin-bottom: 0; margin-top:0">When equality constraints are |
---|
| 959 | 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 |
---|
| 960 | lead to further complications in some cases. If you are solving a problem |
---|
| 961 | that you have derived by using the function <a href="reference.htm#dualize">dualize</a>, you original variables |
---|
| 962 | will not be computed, since they are computed from the missing duals. |
---|
| 963 | Another case is when you solve a linearly parameterized sum of squares problem using |
---|
| 964 | a kernel model (<code>'sos.model'</code> set to <b>0</b> or <b>1</b>). The |
---|
| 965 | parameterization variables are computed from the dual variables, hence failure will |
---|
| 966 | occur. To summarize, do not use the option <code>'removeequalities'</code> in sum-of-squares </b> |
---|
| 967 | problems or dualized problems, unless you really now what you are doing.</p> |
---|
| 968 | </td> |
---|
| 969 | </tr> |
---|
| 970 | </table> |
---|
| 971 | |
---|
| 972 | |
---|
| 973 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 974 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%" id="table7"> |
---|
| 975 | <tr> |
---|
| 976 | <td width="26" valign="top"> |
---|
| 977 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 978 | <a name="convexity"></a>Q:</font></b></td> |
---|
| 979 | <td> |
---|
| 980 | <p style="margin-bottom: 0; margin-top:0"><b>YALMIP complains about |
---|
| 981 | failing in convexity propagation</b></td> |
---|
| 982 | </tr> |
---|
| 983 | <tr> |
---|
| 984 | <td width="26" valign="top"> |
---|
| 985 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 986 | <td> |
---|
| 987 | <p style="margin-bottom: 0; margin-top:0">This means that you have used so |
---|
| 988 | called <a href="extoperators.htm">nonlinear operators</a> to model your |
---|
| 989 | problem, and most likely you have defined a problem which cannot be |
---|
| 990 | represented using standard convex constraints. If you know that your model |
---|
| 991 | is convex, try to model the nonlinear terms by hand to see if you actually are |
---|
| 992 | correct (the convexity analysis is conservative, although in most cases |
---|
| 993 | failure in the convexity propagation is due to actual nonconvexity.</p> |
---|
| 994 | </td> |
---|
| 995 | </tr> |
---|
| 996 | </table> |
---|
| 997 | |
---|
| 998 | |
---|
| 999 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1000 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 1001 | <tr> |
---|
| 1002 | <td width="26" valign="top"> |
---|
| 1003 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 1004 | <a name="removeequalities"></a>Q:</font></b></td> |
---|
| 1005 | <td> |
---|
| 1006 | <p style="margin-bottom: 0; margin-top:0"><b>I have problems solving a |
---|
| 1007 | geometric program.</b></td> |
---|
| 1008 | </tr> |
---|
| 1009 | <tr> |
---|
| 1010 | <td width="26" valign="top"> |
---|
| 1011 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 1012 | <td> |
---|
| 1013 | <p style="margin-bottom: 0; margin-top:0">To begin with, you need a solver |
---|
| 1014 | that can solve geometric programs (YALMIP currently supports |
---|
| 1015 | <a href="solvers.htm#gpposy">GPPOSY</a>, |
---|
| 1016 | <a href="solvers.htm#mosek">Mosek</a> and <a href="solvers.htm#fmincon"> |
---|
| 1017 | fmincon</a>). If you still have problems, the reason may be that YALMIP |
---|
| 1018 | converts convex quadratic constraints to seconds order constraints. This |
---|
| 1019 | should not be done in geometric programs (it is a known bug). To avoid this, |
---|
| 1020 | set the option <code>'convertconvexquad'</code> to |
---|
| 1021 | 0. Another reason is that runs into problem during the expansion of |
---|
| 1022 | <a href="extoperators.htm">nonlinear operators</a>. To avoid this issue, explicitly |
---|
| 1023 | tell YALMIP that the |
---|
| 1024 | problem is a geometric problem by specifying the solver to <code>'gpposy'</code>, <code>'mosek-geometric'</code> |
---|
| 1025 | or <code>'fmincon-geometric'</code>.</p> |
---|
| 1026 | </td> |
---|
| 1027 | </tr> |
---|
| 1028 | </table> |
---|
| 1029 | |
---|
| 1030 | |
---|
| 1031 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1032 | |
---|
| 1033 | |
---|
| 1034 | <hr noShade SIZE="1" color="#FF0000"> |
---|
| 1035 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%" id="table11"> |
---|
| 1036 | <tr> |
---|
| 1037 | <td width="26" valign="top"> |
---|
| 1038 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 1039 | <a name="subasgn"></a>Q:</font></b></td> |
---|
| 1040 | <td> |
---|
| 1041 | <p style="margin-bottom: 0; margin-top:0"><b>I can not write <code>X = |
---|
| 1042 | eye(2); X(1,1)=sdpvar(1,1)</code>!</b></td> |
---|
| 1043 | </tr> |
---|
| 1044 | <tr> |
---|
| 1045 | <td width="26" valign="top"> |
---|
| 1046 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 1047 | <td> |
---|
| 1048 | <p style="margin-bottom: 0; margin-top:0">This is because of the way the |
---|
| 1049 | object orientation works in MATLAB. There is currently no way to support |
---|
| 1050 | this feature (without overloading the @double class, which can cause |
---|
| 1051 | instability.)</p> |
---|
| 1052 | </td> |
---|
| 1053 | </tr> |
---|
| 1054 | </table> |
---|
| 1055 | |
---|
| 1056 | |
---|
| 1057 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1058 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%" id="table10"> |
---|
| 1059 | <tr> |
---|
| 1060 | <td width="26" valign="top"> |
---|
| 1061 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 1062 | <a name="vectorquadratic"></a>Q:</font></b></td> |
---|
| 1063 | <td> |
---|
| 1064 | <p style="margin-bottom: 0; margin-top:0"><b>Vector-valued quadratic constraints</b></td> |
---|
| 1065 | </tr> |
---|
| 1066 | <tr> |
---|
| 1067 | <td width="26" valign="top"> |
---|
| 1068 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 1069 | <td> |
---|
| 1070 | <p style="margin-bottom: 0; margin-top:0">If you have vector-valued |
---|
| 1071 | quadratic constraints with mixed convexity and concavity, things may |
---|
| 1072 | fail. To avoid problems, use the options <code>sdpsettings('convertconvexquad',0)</code>, |
---|
| 1073 | or simply do not use a vectorized constraint. Turning off the automatic |
---|
| 1074 | conversion of convex quadratic constraints to second order cones is |
---|
| 1075 | typically recommended if you know that you will not solve the problem using a |
---|
| 1076 | semidefinite solver.</td> |
---|
| 1077 | </tr> |
---|
| 1078 | </table> |
---|
| 1079 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1080 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%" id="table12"> |
---|
| 1081 | <tr> |
---|
| 1082 | <td width="26" valign="top"> |
---|
| 1083 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 1084 | <a name="implies"></a>Q:</font></b></td> |
---|
| 1085 | <td> |
---|
| 1086 | <p style="margin-bottom: 0; margin-top:0"><b>Using <code>implies</code> on set objects</b></td> |
---|
| 1087 | </tr> |
---|
| 1088 | <tr> |
---|
| 1089 | <td width="26" valign="top"> |
---|
| 1090 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 1091 | <td> |
---|
| 1092 | <p style="margin-bottom: 0; margin-top:0">Using the logical constraint |
---|
| 1093 | <code>implies</code> with the first argument being a constraint is currently causing problems in some cases, |
---|
| 1094 | and should thus be avoided.</td> |
---|
| 1095 | </tr> |
---|
| 1096 | </table> |
---|
| 1097 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1098 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%" id="table14"> |
---|
| 1099 | <tr> |
---|
| 1100 | <td width="26" valign="top"> |
---|
| 1101 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 1102 | <a name="constructbug"></a>Q:</font></b></td> |
---|
| 1103 | <td> |
---|
| 1104 | <p style="margin-bottom: 0; margin-top:0"><b>Sometimes MATLAB fails to |
---|
| 1105 | declare an SDPVAR object named i or j inside a function</b></td> |
---|
| 1106 | </tr> |
---|
| 1107 | <tr> |
---|
| 1108 | <td width="26" valign="top"> |
---|
| 1109 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 1110 | <td> |
---|
| 1111 | <p style="margin-bottom: 0; margin-top:0">This is one of the weirdest |
---|
| 1112 | bugs in MATLAB I have come across. If you define your own class (such as |
---|
| 1113 | SDPVAR) and use the constructor inside of a function body and assign the |
---|
| 1114 | name i or j to the object, MATLAB fails to perform the definition, and i |
---|
| 1115 | or j remains to point to the imaginary number. The bug has been reported |
---|
| 1116 | and been acknowledged by The Mathworks. If you stumble upon this problem |
---|
| 1117 | (very rare), just change the variable name.</td> |
---|
| 1118 | </tr> |
---|
| 1119 | </table> |
---|
| 1120 | |
---|
| 1121 | |
---|
| 1122 | <hr noShade SIZE="1" color="#FF0000"> |
---|
| 1123 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1124 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 1125 | <tr> |
---|
| 1126 | <td width="26" valign="top"> |
---|
| 1127 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 1128 | <a name="foundbug"></a>Q:</font></b></td> |
---|
| 1129 | <td> |
---|
| 1130 | <p style="margin-bottom: 0; margin-top:0"><b>I have found a bug. What to do?</b></td> |
---|
| 1131 | </tr> |
---|
| 1132 | <tr> |
---|
| 1133 | <td width="26" valign="top"> |
---|
| 1134 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 1135 | <td> |
---|
| 1136 | <p style="margin-bottom: 0; margin-top:0">Send a mail to <a href="mailto:loefberg@control.ee.ethz.ch"> |
---|
| 1137 | loefberg@control.ee.ethz.ch</a>. Type <code>ver</code> in MATLAB and include |
---|
| 1138 | the result in the mail. If possible, include the code (as simple as |
---|
| 1139 | possible) that generated the fault, otherwise, include at-least the error |
---|
| 1140 | message etc. The more information the better.</p> |
---|
| 1141 | </td> |
---|
| 1142 | </tr> |
---|
| 1143 | </table> |
---|
| 1144 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 1145 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 1146 | <tr> |
---|
| 1147 | <td width="26" valign="top"> |
---|
| 1148 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 1149 | <a name="feature"></a>Q:</font></b></td> |
---|
| 1150 | <td> |
---|
| 1151 | <p style="margin-bottom: 0; margin-top:0"><b>I have an idea for a new feature. |
---|
| 1152 | What to do?</b></td> |
---|
| 1153 | </tr> |
---|
| 1154 | <tr> |
---|
| 1155 | <td width="26" valign="top"> |
---|
| 1156 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 1157 | <td> |
---|
| 1158 | <p style="margin-bottom: 0; margin-top:0">Send a mail to <a href="mailto:loefberg@control.ee.ethz.ch"> |
---|
| 1159 | loefberg@control.ee.ethz.ch</a>. However, I only add new features when I |
---|
| 1160 | need them my self, but if your idea is good enough, I might realize that I |
---|
| 1161 | need it!</td> |
---|
| 1162 | </tr> |
---|
| 1163 | </table> |
---|
| 1164 | <p style="margin-bottom: 0; margin-top:0"> </p> |
---|
| 1165 | <table border="0" cellpadding="0" style="border-collapse: collapse" width="100%"> |
---|
| 1166 | <tr> |
---|
| 1167 | <td width="26" valign="top"> |
---|
| 1168 | <p style="margin-bottom: 0; margin-top:0"><b><font color="#0000FF"> |
---|
| 1169 | <a name="yalmipmeans"></a>Q:</font></b></td> |
---|
| 1170 | <td> |
---|
| 1171 | <p style="margin-bottom: 0; margin-top:0"><b>What does YALMIP mean?</b></td> |
---|
| 1172 | </tr> |
---|
| 1173 | <tr> |
---|
| 1174 | <td width="26" valign="top"> |
---|
| 1175 | <p style="margin-bottom: 0; margin-top:0"><font color="#0000FF"><b>A</b></font><b><font color="#0000FF">:</font></b></td> |
---|
| 1176 | <td> |
---|
| 1177 | <p style="margin-bottom: 0; margin-top:0">Used to be short for Yet |
---|
| 1178 | Another LMI Parser. However, since YALMIP is much more than a LMI parser |
---|
| 1179 | now, it does not mean anything. |
---|
| 1180 | </td> |
---|
| 1181 | </tr> |
---|
| 1182 | </table> |
---|
| 1183 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1184 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1185 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1186 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1187 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1188 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1189 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1190 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1191 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1192 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1193 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1194 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1195 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1196 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1197 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1198 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1199 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1200 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1201 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1202 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1203 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1204 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1205 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1206 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1207 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1208 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1209 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1210 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1211 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1212 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1213 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1214 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1215 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1216 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1217 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1218 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1219 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1220 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1221 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1222 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1223 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1224 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1225 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1226 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1227 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1228 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1229 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1230 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1231 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1232 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1233 | <p style="margin-top: 0; margin-bottom: 0"> </p> |
---|
| 1234 | <p style="margin-top: 0; margin-bottom: 0"> </td> |
---|
| 1235 | </tr> |
---|
| 1236 | </table> |
---|
| 1237 | |
---|
| 1238 | </div> |
---|
| 1239 | |
---|
| 1240 | </body> |
---|
| 1241 | |
---|
| 1242 | </html> |
---|