太多的输出参数,同时解决约束优化问题。

8视图(30天)
你好,
我试图解决与几个非线性约束优化问题。当解决问题我得到以下错误:
错误使用writeCompiledFun2VirtualFile
太多的输出参数。
我尝试了不同的约束条件和功能,我注意到每当我错误的出现两个optimvars使用乘法和/或部门。这可能是由于ot optimvar只支持。* /。万博1manbetx然而,取代/和*。/ . *没有解决这个问题。
你可以找到我的代码。
优化
OptimizationProblem:解:K_eq、m_eq x_max最小化:- (((1.822 - (K_eq。* x_max))。/ m_eq)。* x_max)。^ 0.5变量范围:0 < = x_max < = 0.0064使用fmincon解决问题。
错误使用optim.problemdef.OptimizationProblem /解决
解决需要一个非空的初始点结构来解决非线性问题。

优化误差(第103行)
prob.solve ()
谢谢提前
2的评论
迈克尔基督教林德
迈克尔基督教林德 2021年5月8日
嗯我刚下载代码并运行一遍。我仍然会“太多输出vairables”的错误。然后我在虚拟机运行代码(R2018a)我也有访问导致的错误:
错误使用optim.internal.problemdef.Times.getTimesOperator
至少一个参数必须是一个数字。
错误*
优化误差(37)行
K_eq = = J_p / (l_l2 * l_l2) + (l_l1 / l_l2) * (l_l1 / l_l2) * J_m,
这个错误更参议员但取代*。*并不解决问题(同样的错误)

登录置评。

接受的答案

马特·J
马特·J 2021年5月8日
编辑:马特·J 2021年5月8日
你报告多个错误在多个不同的地方从多个不同的Matlab版本,所以这是一个很难解析你的问题。基本上,在Matlab的早期版本,具体问题具体分析框架的范围是有限的,线性规划。非线性OptimizationVariables表达式只是不支持。万博1manbetx我在其他的答案,在最近的Matlab代码运行好版本,一旦你供应一个初始猜测。如果你不能升级到最新版本,然而,你将不得不采取优化工具箱的solver-based优化工具。
1评论
迈克尔基督教林德
迈克尔基督教林德 2021年5月9日
谢谢。我不知道这些版本之间的差异。更新到2021年解决了这个问题。

登录置评。

答案(1)

马特·J
马特·J 2021年5月8日
编辑:马特·J 2021年5月8日
我没有问题在R2020b一旦被修改,最后一行
prob.solve (x0)
1评论
马特·J
马特·J 2021年5月8日
编辑:马特·J 2021年5月8日
Matlab在线引擎似乎没有任何问题(R2021a)。
优化
OptimizationProblem:解:K_eq、m_eq x_max最小化:- (((1.822 - (K_eq。* x_max))。/ m_eq)。* x_max)。^ 0.5变量范围:0 < = x_max < = 0.0064使用fmincon解决问题。局部最小值。约束满足。fmincon停止因为当前步骤的大小小于一步尺寸公差的值和约束满足约束的值公差内。
ans =结构体字段:
K_eq: 4.0684 e-06 m_eq: 1.5679 e-11 x_max: 4.1737 e-04

登录置评。

类别

找到更多的在非线性优化帮助中心文件交换

标签

s manbetx 845


释放

R2019b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!

翻译的