[已解决] 怎么看intlinprog函数每次迭代计算的数据

[复制链接]
ccy159 发表于 2022-11-1 22:27:52
使用intlinprog函数求解整数线性规划问题,想看中间是怎么计算的,怎么看每次迭代的数据,或者怎么输出每次迭代的数据?

看了intlinprog函数的官方说明,只能看到分支定界节点的数量;
例子使用的是intlinprog函数官方说明(https://ww2.mathworks.cn/help/optim/ug/intlinprog.html)中的openExample('optim/UseInitialPointExample')

最佳答案


TouAkira 发表于 2022-11-2 00:08:23
去看《 intlinprog Output Function and Plot Function Syntax(超链接,自己点进去看) 》这篇文档,照着把调用选项设置中加入 'OutputFcn', @savemilpsolutions 这条。优化之后,可行解会存在 xIntSol 变量中,相应的函数值存在 fIntSol 中。
回复此楼

3 条回复


TouAkira 发表于 2022-11-2 00:08:23
去看《 intlinprog Output Function and Plot Function Syntax(超链接,自己点进去看) 》这篇文档,照着把调用选项设置中加入 'OutputFcn', @savemilpsolutions 这条。优化之后,可行解会存在 xIntSol 变量中,相应的函数值存在 fIntSol 中。
回复此楼

ccy159 发表于 2022-11-4 11:34:03
非常感谢TouAkira的回答,非常清楚。
但针对我自己的问题是我没有问清楚,我想知道在某次迭代计算中,该函数是怎么取的上下界值,上下界值是多少,分的每一支的值都是取的多少,怎么取得这些值。
后来我找到方法:使用 options 中指定的优化选项,并把优化选项中的'Display'设置为 'iter'
但是也只是显示上下界的值是多少,并没有显示怎么取得这个值。
难道是属于底层的计算就不会显示了吗?
我对计算机相关知识了解的太少了:Q

TouAkira 发表于 2022-11-5 22:11:36
ccy159 发表于 2022-11-3 23:34
非常感谢TouAkira的回答,非常清楚。
但针对我自己的问题是我没有问清楚,我想知道在某次迭代计算中,该函 ...

计算软件一般都是只给迭代结果,而不会显示每一步迭代的具体计算的。想知道具体计算,这个应该叫 algorithm 算法,需要查对应的书籍或论文才有的。
比如数值解方程的牛顿法,给定初值后,代码只会显示每轮迭代更新的数值,并不会告诉你本次更新值是如何计算的,需要查数值分析的书或者论文才能看到每轮具体是执行了哪些运算来得到新的逼近数值。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表