我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:2019跑狗图高清彩图 > 约束函数 >

matlab 用fmincon求含9个未知变量的非线个非线性约束条件急!

归档日期:08-11       文本归类:约束函数      文章编辑:爱尚语录

  一直报错,一个是说函数里括号不对称,还有一个是说 error using fval,fmincon不能contiue。因为篇幅问题其实函数没有打全,但是括号肯定是成对正确的,又因为里面含log函数,我以为是初始值取0的问题,所以也改过从非0值开始,但是还是同样报错,不知道究竟哪里不对,新手,求大家帮忙!

  1、【括号肯定是成对正确的】,你太自信了,括号确实不匹配,还需要仔细检查。

  (1)方括号([ ])是不能当成圆括号使用的,它只能用于拼接数组,不能用于改变表达式的匹配优先级。

  (2)如果表达式太长,需要换行,最好在行尾加上续行符(三个小数点,即...),例如在函数ning里面。有些情况下不加好像也可以,例如在函数myfunc里,但需要注意,此时表达式的含义是错的(会把c(2)、c(3)的表达式看成只有一行,而后续的半行会被认为是另外一个没有左值的表达式),这点尤其可怕,因为语法上是正确的,但逻辑上是错误的,往往不容易检查到。

  3、改正上述问题后,程序可以运行,但无法求得最优解。我注意看了一下迭代过程,约束条件始终未能满足。请认真检查目标函数和约束条件是否正确,如果模型是错的,我再怎么尝试,也不可能得到正确的结果。

  十分感谢!因篇幅问题目标函数没输入完,x都在[0,1]之间,初始值设为1不满足约束条件。这个问题基本解决了,只是初值不同最后的极值略有差别,这个我在另外的问题里问过了,你也给了解答。我想在约束条件里加一条,象x(1)+x(2)log2(x(2)+x(3))=data 之类,然后画上面函数极值关于data在0到1间的图象,直接在主函数窗口设定data范围,然后画图(data,fopt)?

  使用嵌套函数的方式,在主函数中用循环对data赋值,然后调用fmincon求解,循环结束后画图。大致的程序框架如下(一定要注意那几个end):

本文链接:http://ksbuilders1.com/yueshuhanshu/393.html