<div>The following is the math model,including objective function,constraints and variables.</div><div><br></div><div>obj:25-x[2]-x[4]+25/x[5]*(1+x[3]^2-2*x[3]*cos(x[1]))+x[6]+x[7]+...+x[15]</div><div><br></div><div>constraints:                                                Lower bounds        Upper bounds</div><div>-x[2]+x[3]*(-25*sin(x[1])+25*cos(x[1]))/x[5]-x[3]^2*25/(x[5]^2)+x[6]-x[7]             0                 0</div><div>25/x[5]-x[3](25*cos(x[1])+25*sin(x[1]))/x[5]+x[8]-x[9]                         -5                 5</div><div>0-x[1]<span style="line-height: 13.44px;">+x[10]-x[11]</span><span style="line-height: 1.2;">                                                 -pi/2              pi/2</span></div><div>-x[4]+x[3]*(25*sin(x[1])+25*cos(x[1]))/x[5]-x[3]^2*25/(x[5]^2)<span style="line-height: 13.44px;">+x[12]-x[13]</span><span style="line-height: 1.2;">            0                0</span></div><div>25/x[5]-x[3]*(-25*sin(x[1])+25*cos(x[1]))/x[5]<span style="line-height: 13.44px;">+x[14]-x[15]</span><span style="line-height: 1.2;">                      -1                1</span></div><div><br></div><div><div style="line-height: 13.44px;">variables:</div><div style="line-height: 13.44px;">x[1]                                                         -pi/2               pi/2</div><div style="line-height: 13.44px;">x[2]                                                          0                 10</div><div style="line-height: 13.44px;">x[3]                                                         0.9                1.1 </div><div style="line-height: 13.44px;">x[4]                                                          0                 15</div><div style="line-height: 13.44px;">x[5]                                                         0.95                1.05</div></div>x[6]~x[15]                                                      0                 10e7<br><br>I take x[6]~x[15] as slack variables for the constraints,so that the program can still find a solution as close as possible to the bounds of the constraints when the original problem is not feasible.<div><br></div><div>I <span style="line-height: normal; white-space: pre-wrap;">naively </span><span style="line-height: 1.2;">thought it may be difficult for the program to satisfy the tolerance of the complementary_inf,but it turns out that it's dual infeasibility that is difficult to satisfy.</span></div><div><span style="line-height: 1.2;"><br></span></div><div>I'd appreciate it a lot if you can give me some advice.</div><div><span style="line-height: 1.2;"><br></span></div><div><span style="line-height: 1.2;">Dongming Jin </span></div><div><blockquote name="replyContent" class="ReferenceQuote" style="padding-left:5px;margin-left:5px;border-left:#b6b6b6 2px solid;margin-right:0">-----原始邮件-----<br>
<b>发件人:</b><span id="rc_from">"Greg Horn" <gregmainland@gmail.com></span><br>
<b>发送时间:</b><span id="rc_senttime">2015-12-21 14:21:24 (星期一)</span><br>
<b>收件人:</b> 1252685@tongji.edu.cn, jonathan.hogg@stfc.ac.uk, ipopt@list.coin-or.org<br>
<b>抄送:</b> <br>
<b>主题:</b> Re: [Ipopt] changing linear solver to ma86 which is not an the option list<br><br><p dir="ltr">The number if variables and constraints is not enough information to determine how many iterations your problem should take to solve. What sort of problem are you working with?</p>
<br><div class="gmail_quote"><div dir="ltr">On Sun, Dec 20, 2015, 19:26  <<a href="mailto:1252685@tongji.edu.cn" target="_blank">1252685@tongji.edu.cn</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Thank you very much for your reply,and I don't have to try other linear solvers.<br>
<br>
But I still can't solve my initial problem.How can I reduce the iteration count?<br>
<br>
I'm solving an nlp,which has 2 equality constraints,5 inequality constraints and  19 variables with lower and upper bounds.It takes 358 iterations to find the final solution. It's quite unacceptable for such a small question.<br>
<br>
And in the program output,I found that the overall_error,constraint_viol and complementary_inf were all smaller than the corresponding tolerance in the 17th iteration except the dual_inf which has the value of 40.00341,and the program took another 341 steps only to reduce the dual_inf.Is there anyway to reduce the iteration count except increasing the tolerance of dual_inf?<br>
<br>
Thanks in advance.<br>
<br>
Dongming Jin<br>
<br>
> -----原始邮件-----<br>
> 发件人: <a href="mailto:jonathan.hogg@stfc.ac.uk" target="_blank">jonathan.hogg@stfc.ac.uk</a><br>
> 发送时间: 2015-12-20 20:53:08 (星期日)<br>
> 收件人: <a href="mailto:1252685@tongji.edu.cn" target="_blank">1252685@tongji.edu.cn</a>, <a href="mailto:ipopt@list.coin-or.org" target="_blank">ipopt@list.coin-or.org</a><br>
> 抄送:<br>
> 主题: RE: [Ipopt] changing linear solver to ma86 which is not an the option     list<br>
><br>
> This isn't terribly surprising - they should all give the same answer for solving the linear system!<br>
><br>
> The only time changing the linear solver might help reduce iteration count is if there is some form of breakdown (eg singular systems), where different solvers might offer different scaling techniques or similar that will determine if they can successfully extract meaningful information from the system.<br>
><br>
> Changing the linear system may, however, decrease time per iteration.<br>
><br>
> Jonathan.<br>
> ________________________________________<br>
> From: Ipopt [<a href="mailto:ipopt-bounces@coin-or.org" target="_blank">ipopt-bounces@coin-or.org</a>] on behalf of <a href="mailto:1252685@tongji.edu.cn" target="_blank">1252685@tongji.edu.cn</a> [<a href="mailto:1252685@tongji.edu.cn" target="_blank">1252685@tongji.edu.cn</a>]<br>
> Sent: 20 December 2015 11:18<br>
> To: <a href="mailto:ipopt@list.coin-or.org" target="_blank">ipopt@list.coin-or.org</a><br>
> Subject: [Ipopt] changing linear solver to ma86 which is not an the option      list<br>
><br>
> Hello.<br>
> I'm solving some nolinear problem with ipopt,and trying to change the linear solver to improve its efficiency.<br>
><br>
> And I have tried mumps,ma27 and ma57 so far.But the outcome isn't really satisfying.The solving process with these three linear solvers have almost the same number of iteration steps.I wondering if I have change the linear solver successfully,but the program output says that "this is ipopt version 3.7 stable,runing with linear solver ma57",Can this guarantee that i have changed the linear solver from default mumps to ma57 successfully?if so,maybe i should change some other linear solvers like HSL_MA86? But the ipopt only have linear solver options like mumps,ma27,ma57.The ma86,ma77 are not in the option list.how can I change the linear solvers to another one like ma86?<br>
><br>
> Can you give me some instructions,or if there is any website or post discussing about it?I'm changing linear solver by dynamically loading some separate DLL. Working on windows,using msvs and intel fortran compiler.<br>
><br>
> Sorry for my poor English,and thanks in advance!<br>
> Best regards,<br>
><br>
> Dongming Jin<br>
> _______________________________________________<br>
> Ipopt mailing list<br>
> <a href="mailto:Ipopt@list.coin-or.org" target="_blank">Ipopt@list.coin-or.org</a><br>
> <a href="http://list.coin-or.org/mailman/listinfo/ipopt" rel="noreferrer" target="_blank">http://list.coin-or.org/mailman/listinfo/ipopt</a><br>
<br>
_______________________________________________<br>
Ipopt mailing list<br>
<a href="mailto:Ipopt@list.coin-or.org" target="_blank">Ipopt@list.coin-or.org</a><br>
<a href="http://list.coin-or.org/mailman/listinfo/ipopt" rel="noreferrer" target="_blank">http://list.coin-or.org/mailman/listinfo/ipopt</a><br>
</blockquote></div>
</blockquote><lmk-translate data-hello="我是由“划词翻译”生成的,不要担心;)" class="" style="top: 49.2px; left: 805px;">译</lmk-translate></div>