具有求和目标函数和数据集的非线性优化

14意见(最近30天)
MP.
MP. 2020年4月20日
评论道: Ameer Hamza. 11月11日11月11日
你好,
我正在寻找有人帮助我用一个约束和数据集来实现非线性优化问题。
目标函数是一个多和自然语言处理函数
约束是:
数据集x是一个有两列的向量,其中x(i) =列1,x(j) =列2。x(i)和x(j)分别映射到数据集y(i)和y(j)。变量p(i)和p(j)未知。
我如何在MATLAB中构建一个NLP问题来解决p(I)和p(j)的不同迭代?
3评论
Ameer Hamza.
Ameer Hamza. 2020年4月20日
你提到x(i)与x相同(i,1)。然后将哪个变量对应于第2列。我建议重写方程式,显示矩阵x和y的列和行之间的差异。

登录评论。

接受答案

Ameer Hamza.
Ameer Hamza. 2020年4月20日
查看fmincon(): //www.tianjin-qmedu.com/help/optim/ug/fmincon.html 用于Matlab中的非线性编程。
5个评论
Ameer Hamza.
Ameer Hamza. 11月11日11月11日
因为p是一个4x2矩阵。我使用了一个线性向量,稍后可以重塑为4x2。

登录评论。

答案(1)

MP.
MP. 2020年4月20日
谢谢你,Ameer,这很有帮助!如果我有多个约束方程,我可以把A, B, Aeq和Beq作为空白矩阵留在fmincon()函数中,并使用一个约束函数作为输入吗?只是出于好奇。
另外,是否有可能“看到”fmincon()函数遍历目标函数,直到它达到最佳状态?无论是表格还是图形格式?我不确定这是否有意义。
1评论
Ameer Hamza.
Ameer Hamza. 2020年4月20日
1.是的,这也可以。我想唯一的区别是,这个函数可能会花更长的时间,因为在实现中,当A和B被指定,MATLAB知道这些是线性约束,所以它可以应用优化的方法。但如果使用约束函数,则会认为这是一个非线性约束,需要付出更多的努力才能解决。然而,结果应该是相似的。
2.是的,这也是可能的。可以使用fmincon的outputFcn属性在迭代结束时执行任何操作。请看这里,例如: //www.tianjin-qmedu.com/help/optim/ug/utputportions.html. 在这里有更多详细信息: https://www.mathwands.com/help/optim/ug/utputport.html. .我写了一个简单的例子来说明这个概念。
F = @(x) sum(x.^2.*exp(-x.^2));%目标职能
选择= optimoptions ('粉丝'“OutputFcn”,@myoutfcn,'展示''离开');
[x_sol, f_sol] = fmincon (f,兰德(10,1 ), [], [], [], [], [], [], [], 选择);
功能stop = myOutFcn(x, optimValues, state)
持续的
如果Isempty(i)
我= 1;
结束
流('迭代:%d,目标函数值:%.16f\n',我,优化values.fval)
我=我+ 1;
停止= 0;
结束

登录评论。

社区宝藏狩猎

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!